This tests that we can correctly call Function.prototype.apply

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS myObject.apply() is [myObject, "myObject.apply"]
PASS forwarder(myObject) is [myObject, "myObject.apply"]
PASS myFunction('arg1') is [this, "myFunction", "arg1"]
PASS forwarder(myFunction, null, ['arg1']) is [this, "myFunction", "arg1"]
PASS myFunction.apply(myObject, ['arg1']) is [myObject, "myFunction", "arg1"]
PASS myFunction.apply(myObject, arg1Array) is [myObject, "myFunction", "arg1"]
PASS forwarder(myFunction, myObject, arg1Array) is [myObject, "myFunction", "arg1"]
PASS myFunction.apply() is [this, "myFunction", undefined]
PASS myFunction.apply(null) is [this, "myFunction", undefined]
PASS myFunction.apply(undefined) is [this, "myFunction", undefined]
PASS myFunction.aliasedApply(myObject, ['arg1']) is [myObject, "myFunction", "arg1"]
PASS myFunction.aliasedApply() is [this, "myFunction", undefined]
PASS myFunction.aliasedApply(null) is [this, "myFunction", undefined]
PASS myFunction.aliasedApply(undefined) is [this, "myFunction", undefined]
PASS myFunctionWithApply.apply(myObject, ['arg1']) is [myFunctionWithApply, "myFunctionWithApply.apply", myObject]
PASS myFunctionWithApply.aliasedApply(myObject, ['arg1']) is [myObject, "myFunctionWithApply", "arg1"]
PASS myFunctionWithApply.apply(myObject, arg1Array) is [myFunctionWithApply, "myFunctionWithApply.apply", myObject]
PASS forwarder(myFunctionWithApply, myObject, arg1Array) is [myFunctionWithApply, "myFunctionWithApply.apply", myObject]
PASS myFunctionWithApply.aliasedApply(myObject, arg1Array) is [myObject, "myFunctionWithApply", "arg1"]
PASS myFunction.apply(null, new Array(5000000)) threw exception RangeError: Maximum call stack size exceeded..
PASS myFunction.apply(null, new Array(1 << 30)) threw exception RangeError: Maximum call stack size exceeded..
PASS recurseArguments.apply(null, new Array(50000)) threw exception RangeError: Maximum call stack size exceeded..
PASS successfullyParsed is true

TEST COMPLETE

