blob: 43ec0a51fd5cc2017b93d7ecc429528bb05158a2 [file] [log] [blame]
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