blob: 00a024b95228fa6e75608745044ac79e8e11ee7a [file] [log] [blame]
Tests for ES6 class method and constructor properties
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
a.constructor
PASS 'length,name,prototype':::'length,name,prototype'
(new A()).constructor
PASS 'length,name,prototype':::'length,name,prototype'
PASS a.constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.hasOwnProperty("caller"):::false
PASS a.constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(a.constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(a.constructor, "arguments"):::undefined
PASS delete a.constructor.caller:::true
PASS delete a.constructor["caller"]:::true
PASS delete a.constructor.arguments:::true
PASS delete a.constructor["arguments"]:::true
PASS a.constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS a.constructor.hasOwnProperty("caller"):::false
PASS a.constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(a.constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(a.constructor, "arguments"):::undefined
PASS delete a.constructor.caller:::true
PASS delete a.constructor["caller"]:::true
PASS delete a.constructor.arguments:::true
PASS delete a.constructor["arguments"]:::true
PASS (new A()).constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new A()).constructor.hasOwnProperty("caller"):::false
PASS (new A()).constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new A()).constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new A()).constructor, "arguments"):::undefined
PASS delete (new A()).constructor.caller:::true
PASS delete (new A()).constructor["caller"]:::true
PASS delete (new A()).constructor.arguments:::true
PASS delete (new A()).constructor["arguments"]:::true
b.constructor
PASS 'length,name,prototype':::'length,name,prototype'
(new B()).constructor
PASS 'length,name,prototype':::'length,name,prototype'
PASS b.constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS b.constructor.hasOwnProperty("caller"):::false
PASS b.constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(b.constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(b.constructor, "arguments"):::undefined
PASS delete b.constructor.caller:::true
PASS delete b.constructor["caller"]:::true
PASS delete b.constructor.arguments:::true
PASS delete b.constructor["arguments"]:::true
PASS (new B()).constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new B()).constructor.hasOwnProperty("caller"):::false
PASS (new B()).constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new B()).constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new B()).constructor, "arguments"):::undefined
PASS delete (new B()).constructor.caller:::true
PASS delete (new B()).constructor["caller"]:::true
PASS delete (new B()).constructor.arguments:::true
PASS delete (new B()).constructor["arguments"]:::true
c.constructor
PASS 'length,name,prototype':::'length,name,prototype'
(new C()).constructor
PASS 'length,name,prototype':::'length,name,prototype'
PASS c.constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS c.constructor.hasOwnProperty("caller"):::false
PASS c.constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(c.constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(c.constructor, "arguments"):::undefined
PASS delete c.constructor.caller:::true
PASS delete c.constructor["caller"]:::true
PASS delete c.constructor.arguments:::true
PASS delete c.constructor["arguments"]:::true
PASS (new C()).constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new C()).constructor.hasOwnProperty("caller"):::false
PASS (new C()).constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new C()).constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new C()).constructor, "arguments"):::undefined
PASS delete (new C()).constructor.caller:::true
PASS delete (new C()).constructor["caller"]:::true
PASS delete (new C()).constructor.arguments:::true
PASS delete (new C()).constructor["arguments"]:::true
c.constructor
PASS 'length,name,prototype':::'length,name,prototype'
(new D()).constructor
PASS 'length,name,prototype':::'length,name,prototype'
PASS d.constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS d.constructor.hasOwnProperty("caller"):::false
PASS d.constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(d.constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(d.constructor, "arguments"):::undefined
PASS delete d.constructor.caller:::true
PASS delete d.constructor["caller"]:::true
PASS delete d.constructor.arguments:::true
PASS delete d.constructor["arguments"]:::true
PASS (new D()).constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new D()).constructor.hasOwnProperty("caller"):::false
PASS (new D()).constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new D()).constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new D()).constructor, "arguments"):::undefined
PASS delete (new D()).constructor.caller:::true
PASS delete (new D()).constructor["caller"]:::true
PASS delete (new D()).constructor.arguments:::true
PASS delete (new D()).constructor["arguments"]:::true
e.constructor
PASS 'length,name,prototype':::'length,name,prototype'
(new E()).getItem
PASS 'length,name':::'length,name'
PASS e.constructor.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS e.constructor.hasOwnProperty("caller"):::false
PASS e.constructor.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(e.constructor, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(e.constructor, "arguments"):::undefined
PASS delete e.constructor.caller:::true
PASS delete e.constructor["caller"]:::true
PASS delete e.constructor.arguments:::true
PASS delete e.constructor["arguments"]:::true
PASS (new E()).getItem.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new E()).getItem.hasOwnProperty("caller"):::false
PASS (new E()).getItem.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new E()).getItem, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new E()).getItem, "arguments"):::undefined
PASS delete (new E()).getItem.caller:::true
PASS delete (new E()).getItem["caller"]:::true
PASS delete (new E()).getItem.arguments:::true
PASS delete (new E()).getItem["arguments"]:::true
f.getItem
PASS 'length,name':::'length,name'
f.getElement
PASS 'length,name':::'length,name'
PASS f.getItem.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getItem.hasOwnProperty("caller"):::false
PASS f.getItem.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(f.getItem, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(f.getItem, "arguments"):::undefined
PASS delete f.getItem.caller:::true
PASS delete f.getItem["caller"]:::true
PASS delete f.getItem.arguments:::true
PASS delete f.getItem["arguments"]:::true
PASS f.getElement.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS f.getElement.hasOwnProperty("caller"):::false
PASS f.getElement.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(f.getElement, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(f.getElement, "arguments"):::undefined
PASS delete f.getElement.caller:::true
PASS delete f.getElement["caller"]:::true
PASS delete f.getElement.arguments:::true
PASS delete f.getElement["arguments"]:::true
(new F()).getItem
PASS 'length,name':::'length,name'
(new F()).getElement
PASS 'length,name':::'length,name'
PASS (new F()).getItem.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getItem.hasOwnProperty("caller"):::false
PASS (new F()).getItem.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new F()).getItem, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new F()).getItem, "arguments"):::undefined
PASS delete (new F()).getItem.caller:::true
PASS delete (new F()).getItem["caller"]:::true
PASS delete (new F()).getItem.arguments:::true
PASS delete (new F()).getItem["arguments"]:::true
PASS (new F()).getElement.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new F()).getElement.hasOwnProperty("caller"):::false
PASS (new F()).getElement.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new F()).getElement, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new F()).getElement, "arguments"):::undefined
PASS delete (new F()).getElement.caller:::true
PASS delete (new F()).getElement["caller"]:::true
PASS delete (new F()).getElement.arguments:::true
PASS delete (new F()).getElement["arguments"]:::true
arr
PASS 'length,name':::'length,name'
()=>{}
PASS 'length,name':::'length,name'
PASS arr.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS arr.hasOwnProperty("caller"):::false
PASS arr.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(arr, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(arr, "arguments"):::undefined
PASS delete arr.caller:::true
PASS delete arr["caller"]:::true
PASS delete arr.arguments:::true
PASS delete arr["arguments"]:::true
PASS (()=>{}).caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{}).arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{})["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{})["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{}).caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{}).arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{})["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{})["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (()=>{}).hasOwnProperty("caller"):::false
PASS (()=>{}).hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((()=>{}), "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((()=>{}), "arguments"):::undefined
PASS delete (()=>{}).caller:::true
PASS delete (()=>{})["caller"]:::true
PASS delete (()=>{}).arguments:::true
PASS delete (()=>{})["arguments"]:::true
PASS g.item.caller:::undefined
PASS g.item.arguments:::undefined
PASS (new G()).item.caller:::undefined
PASS (new G()).item.arguments:::undefined
PASS H.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS H.hasOwnProperty("caller"):::false
PASS H.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(H, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(H, "arguments"):::undefined
PASS delete H.caller:::true
PASS delete H["caller"]:::true
PASS delete H.arguments:::true
PASS delete H["arguments"]:::true
PASS h.caller():::"value"
PASS h.arguments():::"value"
h.caller
PASS 'length,name':::'length,name'
h.arguments
PASS 'length,name':::'length,name'
PASS h.caller.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS h.caller.hasOwnProperty("caller"):::false
PASS h.caller.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(h.caller, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(h.caller, "arguments"):::undefined
PASS delete h.caller.caller:::true
PASS delete h.caller["caller"]:::true
PASS delete h.caller.arguments:::true
PASS delete h.caller["arguments"]:::true
PASS (new H()).caller():::"value"
PASS (new H()).arguments():::"value"
PASS (new H()).caller.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new H()).caller.hasOwnProperty("caller"):::false
PASS (new H()).caller.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new H()).caller, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new H()).caller, "arguments"):::undefined
PASS delete (new H()).caller.caller:::true
PASS delete (new H()).caller["caller"]:::true
PASS delete (new H()).caller.arguments:::true
PASS delete (new H()).caller["arguments"]:::true
J.gen
PASS 'length,name,prototype':::'length,name,prototype'
J.get
PASS 'length,name,prototype':::'length,name,prototype'
PASS J.gen.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.gen.hasOwnProperty("caller"):::false
PASS J.gen.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(J.gen, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(J.gen, "arguments"):::undefined
PASS delete J.gen.caller:::true
PASS delete J.gen["caller"]:::true
PASS delete J.gen.arguments:::true
PASS delete J.gen["arguments"]:::true
PASS J.get.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS J.get.hasOwnProperty("caller"):::false
PASS J.get.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(J.get, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(J.get, "arguments"):::undefined
PASS delete J.get.caller:::true
PASS delete J.get["caller"]:::true
PASS delete J.get.arguments:::true
PASS delete J.get["arguments"]:::true
j.gen
PASS 'length,name,prototype':::'length,name,prototype'
j.get
PASS 'length,name,prototype':::'length,name,prototype'
PASS j.gen.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.gen.hasOwnProperty("caller"):::false
PASS j.gen.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(j.gen, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(j.gen, "arguments"):::undefined
PASS delete j.gen.caller:::true
PASS delete j.gen["caller"]:::true
PASS delete j.gen.arguments:::true
PASS delete j.gen["arguments"]:::true
PASS j.get.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS j.get.hasOwnProperty("caller"):::false
PASS j.get.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(j.get, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(j.get, "arguments"):::undefined
PASS delete j.get.caller:::true
PASS delete j.get["caller"]:::true
PASS delete j.get.arguments:::true
PASS delete j.get["arguments"]:::true
(new J).gen
PASS 'length,name,prototype':::'length,name,prototype'
(new J).get
PASS 'length,name,prototype':::'length,name,prototype'
PASS (new J).gen.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).gen.hasOwnProperty("caller"):::false
PASS (new J).gen.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new J).gen, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new J).gen, "arguments"):::undefined
PASS delete (new J).gen.caller:::true
PASS delete (new J).gen["caller"]:::true
PASS delete (new J).gen.arguments:::true
PASS delete (new J).gen["arguments"]:::true
PASS (new J).get.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS (new J).get.hasOwnProperty("caller"):::false
PASS (new J).get.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor((new J).get, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor((new J).get, "arguments"):::undefined
PASS delete (new J).get.caller:::true
PASS delete (new J).get["caller"]:::true
PASS delete (new J).get.arguments:::true
PASS delete (new J).get["arguments"]:::true
k.method
PASS 'length,name':::'length,name'
PASS k.method.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.method.hasOwnProperty("caller"):::false
PASS k.method.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(k.method, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(k.method, "arguments"):::undefined
PASS delete k.method.caller:::true
PASS delete k.method["caller"]:::true
PASS delete k.method.arguments:::true
PASS delete k.method["arguments"]:::true
k.gen
PASS 'length,name,prototype':::'length,name,prototype'
PASS k.gen.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS k.gen.hasOwnProperty("caller"):::false
PASS k.gen.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(k.gen, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(k.gen, "arguments"):::undefined
PASS delete k.gen.caller:::true
PASS delete k.gen["caller"]:::true
PASS delete k.gen.arguments:::true
PASS delete k.gen["arguments"]:::true
k.getter
PASS 'length,name':::'length,name'
PASS Object.getOwnPropertyDescriptor(k, 'getter').get.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'getter').get.hasOwnProperty("caller"):::false
PASS Object.getOwnPropertyDescriptor(k, 'getter').get.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(Object.getOwnPropertyDescriptor(k, 'getter').get, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(Object.getOwnPropertyDescriptor(k, 'getter').get, "arguments"):::undefined
PASS delete Object.getOwnPropertyDescriptor(k, 'getter').get.caller:::true
PASS delete Object.getOwnPropertyDescriptor(k, 'getter').get["caller"]:::true
PASS delete Object.getOwnPropertyDescriptor(k, 'getter').get.arguments:::true
PASS delete Object.getOwnPropertyDescriptor(k, 'getter').get["arguments"]:::true
k.setter
PASS 'length,name':::'length,name'
PASS Object.getOwnPropertyDescriptor(k, 'setter').set.caller:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set.arguments:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set["caller"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set["arguments"]:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set.caller = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set.arguments = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set["caller"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set["arguments"] = function () {}:::TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context.
PASS Object.getOwnPropertyDescriptor(k, 'setter').set.hasOwnProperty("caller"):::false
PASS Object.getOwnPropertyDescriptor(k, 'setter').set.hasOwnProperty("arguments"):::false
PASS Object.getOwnPropertyDescriptor(Object.getOwnPropertyDescriptor(k, 'setter').set, "caller"):::undefined
PASS Object.getOwnPropertyDescriptor(Object.getOwnPropertyDescriptor(k, 'setter').set, "arguments"):::undefined
PASS delete Object.getOwnPropertyDescriptor(k, 'setter').set.caller:::true
PASS delete Object.getOwnPropertyDescriptor(k, 'setter').set["caller"]:::true
PASS delete Object.getOwnPropertyDescriptor(k, 'setter').set.arguments:::true
PASS delete Object.getOwnPropertyDescriptor(k, 'setter').set["arguments"]:::true
PASS successfullyParsed:::true
TEST COMPLETE