Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.dynjs.runtime.linker;
  
  
 
 
 public class LinkerUtils {
     
     public static boolean isJavascriptDereferencedReference(Object o) {
         return ( o instanceof DereferencedReference ) && ( ( (DereferencedReference)o).getValue() instanceof JSObject );
     }
     
     public static boolean isFunctionDereferencedReference(Object o) {
         return ( o instanceof DereferencedReference ) && ( ( (DereferencedReference)o).getValue() instanceof JSFunction );
     }
     
     public static boolean isPrimitiveDereferencedReference(Object object) {
         if ( ! (object instanceof DereferencedReference) ) {
             return false;
         }
         
         Object value = ((DereferencedReference)object).getValue();
         
         return value instanceof String || value instanceof Number || value instanceof Boolean;
     }
 
     public static boolean isJavascriptObjectReference(Object object) {
         return (object instanceof Reference) && (((Referenceobject).getBase() instanceof JSObject );
     }
     
     public static boolean isJavascriptPrimitiveReference(Object object) {
         if ( ! (object instanceof Reference) ) {
             return false;
         }
         
         Object base = ((Reference)object).getBase();
         
         return base instanceof String || base instanceof Number || base instanceof Boolean;
     }
     
     public static boolean isJavascriptUndefinedReference(Object object) {
         return (object instanceof Reference) && (((Referenceobject).getBase() == . ) && ! (((Reference)object).isStrictReference());
     }
     
     public static boolean isJavascriptStrictUndefinedReference(Object object) {
         return (object instanceof Reference) && (((Referenceobject).getBase() == . ) && (((Reference)object).isStrictReference());
     }
     
     public static boolean isJavascriptFunctionReference(Object object) {
         return (object instanceof Reference) && (((Referenceobject).getBase() instanceof JSFunction);
     }
 
     public static boolean isJavascriptEnvironmnetReference(Object object) {
         return (object instanceof Reference) && (((Referenceobject).getBase() instanceof EnvironmentRecord);
     }
 
     public static boolean isJavaObjectReference(Object object) {
         return (object instanceof Reference) && !(((Referenceobject).getBase() == .);
     }
 
     // ------------------------------------------------------------------------
     // ------------------------------------------------------------------------
     
         return binder.drop(1, binder.type().parameterCount() - 1)
                 .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptDereferencedReference", MethodType.methodType(boolean.classObject.class)));
     }
     
         return binder.drop(1, binder.type().parameterCount() - 1)
                 .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isFunctionDereferencedReference", MethodType.methodType(boolean.classObject.class)));
     }
     
         return binder.drop(1, binder.type().parameterCount() - 1)
                 .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isPrimitiveDereferencedReference", MethodType.methodType(boolean.classObject.class)));
     }
     
         return binder.drop(1, binder.type().parameterCount() - 1)
                 .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptObjectReference", MethodType.methodType(boolean.classObject.class)));
     }
     
         return binder.drop(1, binder.type().parameterCount() - 1)
                 .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptPrimitiveReference", MethodType.methodType(boolean.classObject.class)));
     }
     
        return binder.drop(1, binder.type().parameterCount() - 1)
                .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptUndefinedReference", MethodType.methodType(boolean.classObject.class)));
    }
    
        return binder.drop(1, binder.type().parameterCount() - 1)
                .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptStrictUndefinedReference", MethodType.methodType(boolean.classObject.class)));
    }
    
        return binder.drop(1, binder.type().parameterCount() - 1)
                .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptFunctionReference", MethodType.methodType(boolean.classObject.class)));
    }
        return binder.drop(1, binder.type().parameterCount() - 1)
                .invoke(MethodHandles.lookup().findStatic(LinkerUtils.class"isJavascriptEnvironmnetReference", MethodType.methodType(boolean.classObject.class)));
    }
    
    public static MethodHandle identityGuard(Object expectedBinder binderthrows NoSuchMethodExceptionIllegalAccessException {
        MethodHandle guard = MethodHandles.lookup().findStatic(LinkerUtils.class"identityGuard", MethodType.methodTypeboolean.classObject.classObject.class ) );
        
        return binder.drop( 1, binder.type().parameterCount() - 1 ) 
                .insert(1, expected )
                .invoke(guard );
    }
    
    public static boolean identityGuard(Object actualObject expected) {
        return expected == actual;
    }
    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------
        return MethodHandles.lookup().findStatic(LinkerUtils.class"primitiveReferenceBaseFolder", MethodType.methodType(JSObject.classExecutionContext.classReference.class ));
    }
    
        return MethodHandles.lookup().findStatic(LinkerUtils.class"referenceBaseFilter", MethodType.methodType(Object.classReference.class));
    }
        return MethodHandles.lookup().findStatic(LinkerUtils.class"referenceStrictnessFilter", MethodType.methodType(boolean.classReference.class));
    }
    
        return MethodHandles.lookup().findStatic(LinkerUtils.class"globalObjectFilter", MethodType.methodType(JSObject.classExecutionContext.class));
    }
    
    public static JSObject primitiveReferenceBaseFolder(ExecutionContext contextReference reference) {
        return Types.toObjectcontextreference.getBase() );
    }
    public static Object referenceBaseFilter(Reference reference) {
        return reference.getBase();
    }
    public static boolean referenceStrictnessFilter(Reference reference) {
        return reference.isStrictReference();
    }
    public static Object referenceValueFilter(Reference referenceExecutionContext context) {
        return reference.getValue(context);
    }
    
    public static JSObject globalObjectFilter(ExecutionContext context) {
        return context.getGlobalObject();
    }
New to GrepCode? Check out our FAQ X