/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx) { return getObjectElem(obj, elem, cx, getTopCallScope(cx)); }
/** * Call obj.[[Get]](id) * * @deprecated Use {@link #getObjectElem(Object, Object, Context, Scriptable)} instead */ @Deprecated public static Object getObjectElem(Object obj, Object elem, Context cx) { return getObjectElem(obj, elem, cx, getTopCallScope(cx)); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx) { return getObjectElem(obj, elem, cx, getTopCallScope(cx)); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx) { return getObjectElem(obj, elem, cx, getTopCallScope(cx)); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx) { return getObjectElem(obj, elem, cx, getTopCallScope(cx)); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx, final Scriptable scope) { Scriptable sobj = toObjectOrNull(cx, obj, scope); if (sobj == null) { throw undefReadError(obj, elem); } return getObjectElem(sobj, elem, cx); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx) { Scriptable sobj = toObjectOrNull(cx, obj); if (sobj == null) { throw undefReadError(obj, elem); } return getObjectElem(sobj, elem, cx); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx, final Scriptable scope) { Scriptable sobj = toObjectOrNull(cx, obj, scope); if (sobj == null) { throw undefReadError(obj, elem); } return getObjectElem(sobj, elem, cx); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx, final Scriptable scope) { Scriptable sobj = toObjectOrNull(cx, obj, scope); if (sobj == null) { throw undefReadError(obj, elem); } return getObjectElem(sobj, elem, cx); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx, Scriptable scope) { Scriptable sobj = toObjectOrNull(cx, obj, scope); if (sobj == null) { throw undefReadError(obj, elem); } return getObjectElem(sobj, elem, cx); }
/** * Call obj.[[Get]](id) */ public static Object getObjectElem(Object obj, Object elem, Context cx, final Scriptable scope) { Scriptable sobj = toObjectOrNull(cx, obj, scope); if (sobj == null) { throw undefReadError(obj, elem); } return getObjectElem(sobj, elem, cx); }
private static int doGetElem(Context cx, CallFrame frame, Object[] stack, double[] sDbl, int stackTop) { --stackTop; Object lhs = stack[stackTop]; if (lhs == DOUBLE_MARK) { lhs = ScriptRuntime.wrapNumber(sDbl[stackTop]); } Object value; Object id = stack[stackTop + 1]; if (id != DOUBLE_MARK) { value = ScriptRuntime.getObjectElem(lhs, id, cx, frame.scope); } else { double d = sDbl[stackTop + 1]; value = ScriptRuntime.getObjectIndex(lhs, d, cx); } stack[stackTop] = value; return stackTop; }
private static int doGetElem(Context cx, CallFrame frame, Object[] stack, double[] sDbl, int stackTop) { --stackTop; Object lhs = stack[stackTop]; if (lhs == DOUBLE_MARK) { lhs = ScriptRuntime.wrapNumber(sDbl[stackTop]); } Object value; Object id = stack[stackTop + 1]; if (id != DOUBLE_MARK) { value = ScriptRuntime.getObjectElem(lhs, id, cx, frame.scope); } else { double d = sDbl[stackTop + 1]; value = ScriptRuntime.getObjectIndex(lhs, d, cx); } stack[stackTop] = value; return stackTop; }
private static int doGetElem(Context cx, CallFrame frame, Object[] stack, double[] sDbl, int stackTop) { --stackTop; Object lhs = stack[stackTop]; if (lhs == DOUBLE_MARK) { lhs = ScriptRuntime.wrapNumber(sDbl[stackTop]); } Object value; Object id = stack[stackTop + 1]; if (id != DOUBLE_MARK) { value = ScriptRuntime.getObjectElem(lhs, id, cx, frame.scope); } else { double d = sDbl[stackTop + 1]; value = ScriptRuntime.getObjectIndex(lhs, d, cx); } stack[stackTop] = value; return stackTop; }
private static int doGetElem(Context cx, CallFrame frame, Object[] stack, double[] sDbl, int stackTop) { --stackTop; Object lhs = stack[stackTop]; if (lhs == DOUBLE_MARK) { lhs = ScriptRuntime.wrapNumber(sDbl[stackTop]); } Object value; Object id = stack[stackTop + 1]; if (id != DOUBLE_MARK) { value = ScriptRuntime.getObjectElem(lhs, id, cx, frame.scope); } else { double d = sDbl[stackTop + 1]; value = ScriptRuntime.getObjectIndex(lhs, d, cx, frame.scope); } stack[stackTop] = value; return stackTop; }
public static Object elemIncrDecr(Object obj, Object index, Context cx, int incrDecrMask) { Object value = getObjectElem(obj, index, cx); boolean post = ((incrDecrMask & Node.POST_FLAG) != 0); double number; if (value instanceof Number) { number = ((Number)value).doubleValue(); } else { number = toNumber(value); if (post) { // convert result to number value = wrapNumber(number); } } if ((incrDecrMask & Node.DECR_FLAG) == 0) { ++number; } else { --number; } Number result = wrapNumber(number); setObjectElem(obj, index, result, cx); if (post) { return value; } else { return result; } }
public static Object elemIncrDecr(Object obj, Object index, Context cx, int incrDecrMask) { Object value = getObjectElem(obj, index, cx); boolean post = ((incrDecrMask & Node.POST_FLAG) != 0); double number; if (value instanceof Number) { number = ((Number)value).doubleValue(); } else { number = toNumber(value); if (post) { // convert result to number value = wrapNumber(number); } } if ((incrDecrMask & Node.DECR_FLAG) == 0) { ++number; } else { --number; } Number result = wrapNumber(number); setObjectElem(obj, index, result, cx); if (post) { return value; } else { return result; } }
public static Object elemIncrDecr(Object obj, Object index, Context cx, int incrDecrMask) { Object value = getObjectElem(obj, index, cx); boolean post = ((incrDecrMask & Node.POST_FLAG) != 0); double number; if (value instanceof Number) { number = ((Number)value).doubleValue(); } else { number = toNumber(value); if (post) { // convert result to number value = wrapNumber(number); } } if ((incrDecrMask & Node.DECR_FLAG) == 0) { ++number; } else { --number; } Number result = wrapNumber(number); setObjectElem(obj, index, result, cx); if (post) { return value; } else { return result; } }
/** * Defines one or more properties on this object. * * @param cx the current Context * @param props a map of property ids to property descriptors */ public void defineOwnProperties(Context cx, ScriptableObject props) { Object[] ids = props.getIds(); ScriptableObject[] descs = new ScriptableObject[ids.length]; for (int i = 0, len = ids.length; i < len; ++i) { Object descObj = ScriptRuntime.getObjectElem(props, ids[i], cx); ScriptableObject desc = ensureScriptableObject(descObj); checkPropertyDefinition(desc); descs[i] = desc; } for (int i = 0, len = ids.length; i < len; ++i) { defineOwnProperty(cx, ids[i], descs[i]); } }
/** * Defines one or more properties on this object. * * @param cx the current Context * @param props a map of property ids to property descriptors */ public void defineOwnProperties(Context cx, ScriptableObject props) { Object[] ids = props.getIds(); ScriptableObject[] descs = new ScriptableObject[ids.length]; for (int i = 0, len = ids.length; i < len; ++i) { Object descObj = ScriptRuntime.getObjectElem(props, ids[i], cx); ScriptableObject desc = ensureScriptableObject(descObj); checkPropertyDefinition(desc); descs[i] = desc; } for (int i = 0, len = ids.length; i < len; ++i) { defineOwnProperty(cx, ids[i], descs[i]); } }