| basic tests for object literal shorthand construction |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| PASS !!{a} is true |
| PASS ({a}).a === 1 is true |
| PASS ({a}).a === a is true |
| PASS ({foo})['foo'] === foo is true |
| PASS Object.getOwnPropertyDescriptor({a}, 'a').enumerable is true |
| PASS Object.getOwnPropertyDescriptor({a}, 'a').configurable is true |
| PASS Object.getOwnPropertyDescriptor({a}, 'a').writable is true |
| PASS Object.keys({a,b}).join() is "a,b" |
| PASS Object.keys({b,a}).join() is "b,a" |
| PASS equivalent({a}, {a:a}) is true |
| PASS equivalent({a}, {a:a}) is true |
| PASS equivalent({a,}, {a:a}) is true |
| PASS equivalent({a,a}, {a:a}) is true |
| PASS equivalent({a,b}, {a:a, b:b}) is true |
| PASS equivalent({ a , b }, {a:a, b:b}) is true |
| PASS equivalent({a,b,}, {a:a, b:b}) is true |
| PASS equivalent({a,b,a}, {a:a, b:b}) is true |
| PASS equivalent({b,a,a}, {b:b, a:a}) is true |
| PASS !equivalent({a}, {b:a}) is true |
| PASS !equivalent({b}, {a:b}) is true |
| PASS !equivalent({a,b}, {a:b, b:a}) is true |
| PASS equivalent({foo}, {foo:foo}) is true |
| PASS equivalent({foo}, {foo:foo}) is true |
| PASS equivalent({foo,}, {foo:foo}) is true |
| PASS equivalent({foo,foo}, {foo:foo}) is true |
| PASS equivalent({foo,bar}, {foo:foo, bar:bar}) is true |
| PASS equivalent({ foo , bar }, {foo:foo, bar:bar}) is true |
| PASS equivalent({foo,bar,}, {foo:foo, bar:bar}) is true |
| PASS equivalent({foo,bar,foo}, {foo:foo, bar:bar}) is true |
| PASS equivalent({bar,foo,foo}, {bar:bar, foo:foo}) is true |
| PASS equivalent({foo,bar,foo}, {foo:foo, bar:bar}) is true |
| PASS equivalent({bar,foo,foo}, {bar:bar, foo:foo}) is true |
| PASS !equivalent({foo}, {bar:foo}) is true |
| PASS !equivalent({bar}, {foo:bar}) is true |
| PASS !equivalent({foo,bar}, {foo:bar, bar:foo}) is true |
| PASS equivalent({a, b:b, c}, {a, b, c}) is true |
| PASS equivalent({a:a, b, c:c}, {a, b, c}) is true |
| PASS equivalent({a, b, c:c}, {a, b, c}) is true |
| PASS equivalent({'a':a, b, c:c}, {a, b, c}) is true |
| PASS equivalent({nest:{a}}.nest, {nest: {a:a}}.nest) is true |
| PASS equivalent({nest:[{a}]}.nest[0], {nest: [{a:a}]}.nest[0]) is true |
| PASS equivalent([{nest:[{a}]}][0].nest[0], [{nest: [{a:a}]}][0].nest[0]) is true |
| PASS equivalent({a,b,t,x,f,nul,un,fun,foo,bar}, {a:a, b:b, t:t, x:x, f:f, nul:null, un:un, fun:fun, foo:foo, bar:bar}) is true |
| PASS equivalent({eval}, {eval: eval}) is true |
| PASS ({noSuchIdentifier}) threw exception ReferenceError: Can't find variable: noSuchIdentifier. |
| PASS ({a,noSuchIdentifier}) threw exception ReferenceError: Can't find variable: noSuchIdentifier. |
| PASS ({noSuchIdentifier,a}) threw exception ReferenceError: Can't find variable: noSuchIdentifier. |
| PASS ({a,b,noSuchIdentifier}) threw exception ReferenceError: Can't find variable: noSuchIdentifier. |
| PASS ({get}) threw exception ReferenceError: Can't find variable: get. |
| PASS ({set}) threw exception ReferenceError: Can't find variable: set. |
| PASS equivalent({get}, {get: 1}) is true |
| PASS equivalent({set}, {set: 2}) is true |
| PASS ({get x(){ return true; }}).x is true |
| PASS ({get 'x'(){ return true; }}).x is true |
| PASS ({get 42(){ return true; }})['42'] is true |
| PASS !!Object.getOwnPropertyDescriptor({set x(value){}}, 'x').set is true |
| PASS !!Object.getOwnPropertyDescriptor({set 'x'(value){}}, 'x').set is true |
| PASS !!Object.getOwnPropertyDescriptor({set 42(value){}}, '42').set is true |
| PASS this.__proto__ = [] threw exception TypeError: Cannot set prototype of immutable prototype object. |
| PASS ({__proto__: this.__proto__}) instanceof Array is false |
| PASS __proto__ = [] threw exception TypeError: Object.prototype.__proto__ called on null or undefined. |
| PASS ({__proto__: __proto__}) instanceof Array threw exception TypeError: undefined is not an object (evaluating '__proto__'). |
| SyntaxErrors |
| PASS ({break}) threw exception SyntaxError: Cannot use the keyword 'break' as a shorthand property name.. |
| PASS ({case}) threw exception SyntaxError: Cannot use the keyword 'case' as a shorthand property name.. |
| PASS ({catch}) threw exception SyntaxError: Cannot use the keyword 'catch' as a shorthand property name.. |
| PASS ({class}) threw exception SyntaxError: Cannot use the keyword 'class' as a shorthand property name.. |
| PASS ({const}) threw exception SyntaxError: Cannot use the keyword 'const' as a shorthand property name.. |
| PASS ({continue}) threw exception SyntaxError: Cannot use the keyword 'continue' as a shorthand property name.. |
| PASS ({debugger}) threw exception SyntaxError: Cannot use the keyword 'debugger' as a shorthand property name.. |
| PASS ({default}) threw exception SyntaxError: Cannot use the keyword 'default' as a shorthand property name.. |
| PASS ({delete}) threw exception SyntaxError: Cannot use the keyword 'delete' as a shorthand property name.. |
| PASS ({do}) threw exception SyntaxError: Cannot use the keyword 'do' as a shorthand property name.. |
| PASS ({else}) threw exception SyntaxError: Cannot use the keyword 'else' as a shorthand property name.. |
| PASS ({enum}) threw exception SyntaxError: Cannot use the reserved word 'enum' as a shorthand property name.. |
| PASS ({export}) threw exception SyntaxError: Cannot use the keyword 'export' as a shorthand property name.. |
| PASS ({extends}) threw exception SyntaxError: Cannot use the keyword 'extends' as a shorthand property name.. |
| PASS ({false}) threw exception SyntaxError: Cannot use the keyword 'false' as a shorthand property name.. |
| PASS ({finally}) threw exception SyntaxError: Cannot use the keyword 'finally' as a shorthand property name.. |
| PASS ({for}) threw exception SyntaxError: Cannot use the keyword 'for' as a shorthand property name.. |
| PASS ({function}) threw exception SyntaxError: Cannot use the keyword 'function' as a shorthand property name.. |
| PASS ({if}) threw exception SyntaxError: Cannot use the keyword 'if' as a shorthand property name.. |
| PASS ({import}) threw exception SyntaxError: Cannot use the keyword 'import' as a shorthand property name.. |
| PASS ({in}) threw exception SyntaxError: Cannot use the keyword 'in' as a shorthand property name.. |
| PASS ({instanceof}) threw exception SyntaxError: Cannot use the keyword 'instanceof' as a shorthand property name.. |
| PASS ({new}) threw exception SyntaxError: Cannot use the keyword 'new' as a shorthand property name.. |
| PASS ({null}) threw exception SyntaxError: Cannot use the keyword 'null' as a shorthand property name.. |
| PASS ({return}) threw exception SyntaxError: Cannot use the keyword 'return' as a shorthand property name.. |
| PASS ({super}) threw exception SyntaxError: Cannot use the keyword 'super' as a shorthand property name.. |
| PASS ({switch}) threw exception SyntaxError: Cannot use the keyword 'switch' as a shorthand property name.. |
| PASS ({throw}) threw exception SyntaxError: Cannot use the keyword 'throw' as a shorthand property name.. |
| PASS ({true}) threw exception SyntaxError: Cannot use the keyword 'true' as a shorthand property name.. |
| PASS ({try}) threw exception SyntaxError: Cannot use the keyword 'try' as a shorthand property name.. |
| PASS ({typeof}) threw exception SyntaxError: Cannot use the keyword 'typeof' as a shorthand property name.. |
| PASS ({var}) threw exception SyntaxError: Cannot use the keyword 'var' as a shorthand property name.. |
| PASS ({void}) threw exception SyntaxError: Cannot use the keyword 'void' as a shorthand property name.. |
| PASS ({while}) threw exception SyntaxError: Cannot use the keyword 'while' as a shorthand property name.. |
| PASS ({with}) threw exception SyntaxError: Cannot use the keyword 'with' as a shorthand property name.. |
| Contextual Keywords |
| PASS ({let}) threw exception ReferenceError: Can't find variable: let. |
| PASS ({async}) threw exception ReferenceError: Can't find variable: async. |
| PASS ({yield}) threw exception ReferenceError: Can't find variable: yield. |
| PASS ({await}) threw exception ReferenceError: Can't find variable: await. |
| PASS "use strict"; ({let}) } threw exception SyntaxError: Cannot use 'let' as a shorthand property name in strict mode.. |
| PASS function* generator() { ({yield}) } threw exception SyntaxError: Cannot use 'yield' as a shorthand property name in a generator function.. |
| PASS async function func() { ({await}) } threw exception SyntaxError: Cannot use 'await' as a shorthand property name in an async function.. |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |