src/jdk/nashorn/internal/runtime/ScriptRuntime.java

Print this page




 808     /**
 809      * ECMA 11.8.6 - The strict instanceof operator - generic implementation
 810      *
 811      * @param obj first object to compare
 812      * @param clazz type to check against
 813      *
 814      * @return true if {@code obj} is an instanceof {@code clazz}
 815      */
 816     public static boolean INSTANCEOF(final Object obj, final Object clazz) {
 817         if (clazz instanceof ScriptFunction) {
 818             if (obj instanceof ScriptObject) {
 819                 return ((ScriptObject)clazz).isInstance((ScriptObject)obj);
 820             }
 821             return false;
 822         }
 823 
 824         if (clazz instanceof StaticClass) {
 825             return ((StaticClass)clazz).getRepresentedClass().isInstance(obj);
 826         }
 827 







 828         throw typeError("instanceof.on.non.object");
 829     }
 830 
 831     /**
 832      * ECMA 11.8.1 - The less than operator ({@literal <}) - generic implementation
 833      *
 834      * @param x first object to compare
 835      * @param y second object to compare
 836      *
 837      * @return true if x is less than y
 838      */
 839     public static boolean LT(final Object x, final Object y) {
 840         final Object value = lessThan(x, y, true);
 841         return (value == UNDEFINED) ? false : (Boolean)value;
 842     }
 843 
 844     /**
 845      * ECMA 11.8.2 - The greater than operator ({@literal >}) - generic implementation
 846      *
 847      * @param x first object to compare




 808     /**
 809      * ECMA 11.8.6 - The strict instanceof operator - generic implementation
 810      *
 811      * @param obj first object to compare
 812      * @param clazz type to check against
 813      *
 814      * @return true if {@code obj} is an instanceof {@code clazz}
 815      */
 816     public static boolean INSTANCEOF(final Object obj, final Object clazz) {
 817         if (clazz instanceof ScriptFunction) {
 818             if (obj instanceof ScriptObject) {
 819                 return ((ScriptObject)clazz).isInstance((ScriptObject)obj);
 820             }
 821             return false;
 822         }
 823 
 824         if (clazz instanceof StaticClass) {
 825             return ((StaticClass)clazz).getRepresentedClass().isInstance(obj);
 826         }
 827 
 828         if (clazz instanceof ScriptObjectMirror) {
 829             if (obj instanceof ScriptObjectMirror) {
 830                 return ((ScriptObjectMirror)clazz).isInstance((ScriptObjectMirror)obj);
 831             }
 832             return false;
 833         }
 834 
 835         throw typeError("instanceof.on.non.object");
 836     }
 837 
 838     /**
 839      * ECMA 11.8.1 - The less than operator ({@literal <}) - generic implementation
 840      *
 841      * @param x first object to compare
 842      * @param y second object to compare
 843      *
 844      * @return true if x is less than y
 845      */
 846     public static boolean LT(final Object x, final Object y) {
 847         final Object value = lessThan(x, y, true);
 848         return (value == UNDEFINED) ? false : (Boolean)value;
 849     }
 850 
 851     /**
 852      * ECMA 11.8.2 - The greater than operator ({@literal >}) - generic implementation
 853      *
 854      * @param x first object to compare