30 lines
1.4 KiB
Plaintext
30 lines
1.4 KiB
Plaintext
Test caller and arguments properties in function in non strict mode
|
|
|
|
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
|
|
|
|
|
PASS Object.getOwnPropertyNames(function () {}).length is 3
|
|
PASS Object.getOwnPropertyNames(function () {}).includes("caller") is false
|
|
PASS Object.getOwnPropertyNames(function () {}).includes("arguments") is false
|
|
PASS (function(){}).hasOwnProperty("caller") is false
|
|
PASS (function(){}).__proto__.hasOwnProperty("caller") is true
|
|
PASS (function(){}).hasOwnProperty("arguments") is false
|
|
PASS (function(){}).__proto__.hasOwnProperty("arguments") is true
|
|
PASS typeof Object.getOwnPropertyDescriptor(foo, "arguments") is "undefined"
|
|
PASS typeof Object.getOwnPropertyDescriptor(foo, "caller") is "undefined"
|
|
PASS foo.caller is null
|
|
PASS foo.arguments is null
|
|
PASS foo.caller is null
|
|
PASS foo.arguments is null
|
|
PASS boo("abc")[0] is "abc"
|
|
PASS boo("expected-value")[0] is "expected-value"
|
|
PASS g(f) is g
|
|
PASS doSetCaller(value, false) threw exception TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context..
|
|
PASS doSetCaller(value, true).__proto__.caller is value
|
|
PASS doSetArguments(value, false) threw exception TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context..
|
|
PASS doSetArguments(value, true).__proto__.arguments is value
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|