public Object getDefaultValue(Class<?> typeHint) { return prototype.getDefaultValue(typeHint); }
/** * Note that this method does not get forwarded to the delegee if * the <code>hint</code> parameter is null, * <code>ScriptRuntime.ScriptableClass</code> or * <code>ScriptRuntime.FunctionClass</code>. Instead the object * itself is returned. * * @param hint the type hint * @return the default value * * @see net.sourceforge.htmlunit.corejs.javascript.Scriptable#getDefaultValue */ public Object getDefaultValue(Class<?> hint) { return (hint == null || hint == ScriptRuntime.ScriptableClass || hint == ScriptRuntime.FunctionClass) ? this : obj.getDefaultValue(hint); } /**
private static Object toPrimitive(Object val) { if (!(val instanceof Scriptable)) { return val; } Scriptable s = (Scriptable)val; Object result = s.getDefaultValue(null); if (result instanceof Scriptable) throw typeError0("msg.bad.default.value"); return result; }
static Callable getCallable(Scriptable thisObj) { Callable function; if (thisObj instanceof Callable) { function = (Callable)thisObj; } else { Object value = thisObj.getDefaultValue(ScriptRuntime.FunctionClass); if (!(value instanceof Callable)) { throw ScriptRuntime.notFunctionError(value, thisObj); } function = (Callable)value; } return function; }
public static boolean cmp_LT(Object val1, Object val2) { double d1, d2; if (val1 instanceof Number && val2 instanceof Number) { d1 = ((Number)val1).doubleValue(); d2 = ((Number)val2).doubleValue(); } else { if (val1 instanceof Scriptable) val1 = ((Scriptable) val1).getDefaultValue(NumberClass); if (val2 instanceof Scriptable) val2 = ((Scriptable) val2).getDefaultValue(NumberClass); if (val1 instanceof String && val2 instanceof String) { return ((String)val1).compareTo((String)val2) < 0; } d1 = toNumber(val1); d2 = toNumber(val2); } return d1 < d2; }
public static boolean cmp_LE(Object val1, Object val2) { double d1, d2; if (val1 instanceof Number && val2 instanceof Number) { d1 = ((Number)val1).doubleValue(); d2 = ((Number)val2).doubleValue(); } else { if (val1 instanceof Scriptable) val1 = ((Scriptable) val1).getDefaultValue(NumberClass); if (val2 instanceof Scriptable) val2 = ((Scriptable) val2).getDefaultValue(NumberClass); if (val1 instanceof String && val2 instanceof String) { return ((String)val1).compareTo((String)val2) <= 0; } d1 = toNumber(val1); d2 = toNumber(val2); } return d1 <= d2; }
private BaseFunction realFunction(Scriptable thisObj, IdFunctionObject f) { Object x = thisObj.getDefaultValue(ScriptRuntime.FunctionClass); if (x instanceof BaseFunction) { return (BaseFunction)x; } throw ScriptRuntime.typeError1("msg.incompat.call", f.getFunctionName()); }
public static Object add(double val1, Object val2) { if (val2 instanceof Scriptable) val2 = ((Scriptable) val2).getDefaultValue(null); if (!(val2 instanceof String)) return wrapDouble(toNumber(val2) + val1); return toString(val1).concat((String)val2); }
public static Object add(Object val1, double val2) { if (val1 instanceof Scriptable) val1 = ((Scriptable) val1).getDefaultValue(null); if (!(val1 instanceof String)) return wrapDouble(toNumber(val1) + val2); return ((String)val1).concat(toString(val2)); }
val = ((Scriptable) val).getDefaultValue(StringClass); if (val instanceof Scriptable) { throw errorWithClassName("msg.primitive.expected", val);
@Override public Object getDefaultValue(Class<?> hint) { if (hint == ScriptRuntime.FunctionClass) return this; Object rval; Class<?> type; try { rval = field.get(javaObject); type = field.getType(); } catch (IllegalAccessException accEx) { throw Context.reportRuntimeError1( "msg.java.internal.private", field.getName()); } Context cx = Context.getContext(); rval = cx.getWrapFactory().wrap(cx, this, rval, type); if (rval instanceof Scriptable) { rval = ((Scriptable) rval).getDefaultValue(hint); } return rval; }
/** * Convert the value to a number. * * See ECMA 9.3. */ public static double toNumber(Object val) { for (;;) { if (val instanceof Number) return ((Number) val).doubleValue(); if (val == null) return +0.0; if (val == Undefined.instance) return NaN; if (val instanceof String) return toNumber((String) val); if (val instanceof Boolean) return ((Boolean) val).booleanValue() ? 1 : +0.0; if (val instanceof Scriptable) { val = ((Scriptable) val).getDefaultValue(NumberClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val); continue; } warnAboutNonJSObject(val); return NaN; } }
public static Object add(Object val1, Object val2, Context cx) { if(val1 instanceof Number && val2 instanceof Number) { return wrapNumber(((Number)val1).doubleValue() + ((Number)val2).doubleValue()); } if (val1 instanceof XMLObject) { Object test = ((XMLObject)val1).addValues(cx, true, val2); if (test != Scriptable.NOT_FOUND) { return test; } } if (val2 instanceof XMLObject) { Object test = ((XMLObject)val2).addValues(cx, false, val1); if (test != Scriptable.NOT_FOUND) { return test; } } if (val1 instanceof Scriptable) val1 = ((Scriptable) val1).getDefaultValue(null); if (val2 instanceof Scriptable) val2 = ((Scriptable) val2).getDefaultValue(null); if (!(val1 instanceof String) && !(val2 instanceof String)) if ((val1 instanceof Number) && (val2 instanceof Number)) return wrapNumber(((Number)val1).doubleValue() + ((Number)val2).doubleValue()); else return wrapNumber(toNumber(val1) + toNumber(val2)); return toString(val1).concat(toString(val2)); }
val = ((Scriptable) val).getDefaultValue(BooleanClass); if (val instanceof Scriptable) throw errorWithClassName("msg.primitive.expected", val);
Object arg0 = args[0]; if (arg0 instanceof Scriptable) arg0 = ((Scriptable) arg0).getDefaultValue(null); double date; if (arg0 instanceof String) {