jdk.nashorn.internal.runtime.linker.InvokeByName Java Examples
The following examples show how to use
jdk.nashorn.internal.runtime.linker.InvokeByName.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: NativeArray.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #2
Source File: NativeArray.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #3
Source File: NativeArray.java From openjdk-8 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #4
Source File: NativeObject.java From TencentKona-8 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #5
Source File: NativeArray.java From openjdk-8-source with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #6
Source File: NativeArray.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #7
Source File: NativeObject.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #8
Source File: NativeObject.java From jdk8u_nashorn with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #9
Source File: NativeObject.java From hottub with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #10
Source File: NativeObject.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #11
Source File: NativeArray.java From hottub with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #12
Source File: NativeArray.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #13
Source File: NativeObject.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #14
Source File: Global.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
/** * Initialize standard builtin objects like "Object", "Array", "Function" etc. * as well as our extension builtin objects like "Java", "JSAdapter" as properties * of the global scope object. * * @param eng ScriptEngine to initialize */ public void initBuiltinObjects(final ScriptEngine eng) { if (this.builtinObject != null) { // already initialized, just return return; } TO_STRING = new InvokeByName("toString", ScriptObject.class); VALUE_OF = new InvokeByName("valueOf", ScriptObject.class); this.engine = eng; if (this.engine != null) { this.scontext = new ThreadLocal<>(); } init(eng); }
Example #15
Source File: NativeObject.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.2.4.3 Object.prototype.toLocaleString ( ) * * @param self self reference * @return localized ToString */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toLocaleString(final Object self) { final Object obj = JSType.toScriptObject(self); if (obj instanceof ScriptObject) { final InvokeByName toStringInvoker = getTO_STRING(); final ScriptObject sobj = (ScriptObject)obj; try { final Object toString = toStringInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(toString)) { return toStringInvoker.getInvoker().invokeExact(toString, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } throw typeError("not.a.function", "toString"); } return ScriptRuntime.builtinObjectToString(self); }
Example #16
Source File: NativeArray.java From jdk8u_nashorn with GNU General Public License v2.0 | 6 votes |
/** * ECMA 15.4.4.2 Array.prototype.toString ( ) * * @param self self reference * @return string representation of array */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toString(final Object self) { final Object obj = Global.toObject(self); if (obj instanceof ScriptObject) { final InvokeByName joinInvoker = getJOIN(); final ScriptObject sobj = (ScriptObject)obj; try { final Object join = joinInvoker.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(join)) { return joinInvoker.getInvoker().invokeExact(join, sobj); } } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } } // FIXME: should lookup Object.prototype.toString and call that? return ScriptRuntime.builtinObjectToString(self); }
Example #17
Source File: ListAdapter.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
@Override public final void addFirst(final Object e) { try { final InvokeByName unshiftInvoker = getUNSHIFT(); final Object fn = unshiftInvoker.getGetter().invokeExact(obj); checkFunction(fn, unshiftInvoker); unshiftInvoker.getInvoker().invokeExact(fn, obj, e); } catch(RuntimeException | Error ex) { throw ex; } catch(Throwable t) { throw new RuntimeException(t); } }
Example #18
Source File: NativeArray.java From hottub with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getTO_LOCALE_STRING() { return Global.instance().getInvokeByName(TO_LOCALE_STRING, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("toLocaleString", ScriptObject.class, String.class); } }); }
Example #19
Source File: NativeJSON.java From jdk8u_nashorn with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getTO_JSON() { return Global.instance().getInvokeByName(TO_JSON, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("toJSON", ScriptObject.class, Object.class, Object.class); } }); }
Example #20
Source File: ListAdapter.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getSPLICE_ADD() { return ((GlobalObject)Context.getGlobal()).getInvokeByName(SPLICE_ADD, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("splice", Object.class, void.class, int.class, int.class, Object.class); } }); }
Example #21
Source File: NativeArray.java From hottub with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getJOIN() { return Global.instance().getInvokeByName(JOIN, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("join", ScriptObject.class); } }); }
Example #22
Source File: NativeJSON.java From hottub with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getTO_JSON() { return Global.instance().getInvokeByName(TO_JSON, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("toJSON", ScriptObject.class, Object.class, Object.class); } }); }
Example #23
Source File: AbstractIterator.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
/** * Iterate over an iterable object, passing every value to {@code consumer}. * * @param iterable an iterable object * @param global the current global * @param consumer the value consumer */ public static void iterate(final Object iterable, final Global global, final Consumer<Object> consumer) { final Object iterator = AbstractIterator.getIterator(Global.toObject(iterable), global); final InvokeByName nextInvoker = getNextInvoker(global); final MethodHandle doneInvoker = getDoneInvoker(global); final MethodHandle valueInvoker = getValueInvoker(global); try { do { final Object next = nextInvoker.getGetter().invokeExact(iterator); if (!Bootstrap.isCallable(next)) { break; } final Object result = nextInvoker.getInvoker().invokeExact(next, iterator, (Object) null); if (!(result instanceof ScriptObject)) { break; } final Object done = doneInvoker.invokeExact(result); if (JSType.toBoolean(done)) { break; } consumer.accept(valueInvoker.invokeExact(result)); } while (true); } catch (final RuntimeException r) { throw r; } catch (final Throwable t) { throw new RuntimeException(t); } }
Example #24
Source File: ListAdapter.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
private Object invokeShift() { try { final InvokeByName shiftInvoker = getSHIFT(); final Object fn = shiftInvoker.getGetter().invokeExact(obj); checkFunction(fn, shiftInvoker); return shiftInvoker.getInvoker().invokeExact(fn, obj); } catch(RuntimeException | Error ex) { throw ex; } catch(Throwable t) { throw new RuntimeException(t); } }
Example #25
Source File: ListAdapter.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
private Object invokeShift() { try { final InvokeByName shiftInvoker = getSHIFT(); final Object fn = shiftInvoker.getGetter().invokeExact(obj); checkFunction(fn, shiftInvoker); return shiftInvoker.getInvoker().invokeExact(fn, obj); } catch(RuntimeException | Error ex) { throw ex; } catch(Throwable t) { throw new RuntimeException(t); } }
Example #26
Source File: NativeObject.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getTO_STRING() { return Global.instance().getInvokeByName(TO_STRING, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("toString", ScriptObject.class); } }); }
Example #27
Source File: NativeDate.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
/** * ECMA 15.9.5.44 Date.prototype.toJSON ( key ) * * Provides a string representation of this Date for use by {@link NativeJSON#stringify(Object, Object, Object, Object)} * * @param self self reference * @param key ignored * @return JSON representation of this date */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toJSON(final Object self, final Object key) { // NOTE: Date.prototype.toJSON is generic. Accepts other objects as well. final Object selfObj = Global.toObject(self); if (!(selfObj instanceof ScriptObject)) { return null; } final ScriptObject sobj = (ScriptObject)selfObj; final Object value = sobj.getDefaultValue(Number.class); if (value instanceof Number) { final double num = ((Number)value).doubleValue(); if (isInfinite(num) || isNaN(num)) { return null; } } try { final InvokeByName toIsoString = getTO_ISO_STRING(); final Object func = toIsoString.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(func)) { return toIsoString.getInvoker().invokeExact(func, sobj, key); } throw typeError("not.a.function", ScriptRuntime.safeToString(func)); } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } }
Example #28
Source File: ListAdapter.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
private static InvokeByName getSHIFT() { return ((GlobalObject)Context.getGlobal()).getInvokeByName(SHIFT, new Callable<InvokeByName>() { @Override public InvokeByName call() { return new InvokeByName("shift", Object.class, Object.class); } }); }
Example #29
Source File: ListAdapter.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
private void invokeSpliceRemove(final int fromIndex, final int count) { try { final InvokeByName spliceRemoveInvoker = getSPLICE_REMOVE(); final Object fn = spliceRemoveInvoker.getGetter().invokeExact(obj); checkFunction(fn, spliceRemoveInvoker); spliceRemoveInvoker.getInvoker().invokeExact(fn, obj, fromIndex, count); } catch(RuntimeException | Error ex) { throw ex; } catch(Throwable t) { throw new RuntimeException(t); } }
Example #30
Source File: NativeDate.java From hottub with GNU General Public License v2.0 | 5 votes |
/** * ECMA 15.9.5.44 Date.prototype.toJSON ( key ) * * Provides a string representation of this Date for use by {@link NativeJSON#stringify(Object, Object, Object, Object)} * * @param self self reference * @param key ignored * @return JSON representation of this date */ @Function(attributes = Attribute.NOT_ENUMERABLE) public static Object toJSON(final Object self, final Object key) { // NOTE: Date.prototype.toJSON is generic. Accepts other objects as well. final Object selfObj = Global.toObject(self); if (!(selfObj instanceof ScriptObject)) { return null; } final ScriptObject sobj = (ScriptObject)selfObj; final Object value = sobj.getDefaultValue(Number.class); if (value instanceof Number) { final double num = ((Number)value).doubleValue(); if (isInfinite(num) || isNaN(num)) { return null; } } try { final InvokeByName toIsoString = getTO_ISO_STRING(); final Object func = toIsoString.getGetter().invokeExact(sobj); if (Bootstrap.isCallable(func)) { return toIsoString.getInvoker().invokeExact(func, sobj, key); } throw typeError("not.a.function", ScriptRuntime.safeToString(func)); } catch (final RuntimeException | Error e) { throw e; } catch (final Throwable t) { throw new RuntimeException(t); } }