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

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


PASS myObject.call() is [myObject, "myObject.call"]
PASS myFunction('arg1') is [this, "myFunction", "arg1"]
PASS myFunction.call(myObject, 'arg1') is [myObject, "myFunction", "arg1"]
PASS myFunction.call() is [this, "myFunction", undefined]
PASS myFunction.call(null) is [this, "myFunction", undefined]
PASS myFunction.call(undefined) is [this, "myFunction", undefined]
PASS myFunction.aliasedCall(myObject, 'arg1') is [myObject, "myFunction", "arg1"]
PASS myFunction.aliasedCall() is [this, "myFunction", undefined]
PASS myFunction.aliasedCall(null) is [this, "myFunction", undefined]
PASS myFunction.aliasedCall(undefined) is [this, "myFunction", undefined]
PASS myFunctionWithCall.call(myObject, 'arg1') is [myFunctionWithCall, "myFunctionWithCall.call", myObject]
PASS myFunctionWithCall.aliasedCall(myObject, 'arg1') is [myObject, "myFunctionWithCall", "arg1"]
PASS successfullyParsed is true

TEST COMPLETE

