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

