diff options
Diffstat (limited to 'src/jdk/nashorn/internal/objects/NativeFunction.java')
-rw-r--r-- | src/jdk/nashorn/internal/objects/NativeFunction.java | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/jdk/nashorn/internal/objects/NativeFunction.java b/src/jdk/nashorn/internal/objects/NativeFunction.java index f5c0c290..13c1bc15 100644 --- a/src/jdk/nashorn/internal/objects/NativeFunction.java +++ b/src/jdk/nashorn/internal/objects/NativeFunction.java @@ -81,23 +81,13 @@ public final class NativeFunction { Object[] args = null; - if (ScriptObject.isArray(array)) { - args = ((NativeArray)array).asObjectArray(); - } else if (array instanceof ScriptObject) { + if (array instanceof ScriptObject) { // look for array-like object final ScriptObject sobj = (ScriptObject)array; final Object len = sobj.getLength(); - - if (len == UNDEFINED || len == null) { - throw typeError("function.apply.expects.array"); - } - final int n = (int)JSType.toUint32(len); - if (n != JSType.toNumber(len)) { - throw typeError("function.apply.expects.array"); - } - args = new Object[(int)JSType.toUint32(len)]; + args = new Object[n]; for (int i = 0; i < args.length; i++) { args[i] = sobj.get(i); } |