| basic tests for object literal computed methods |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| PASS o = { ['f'+'oo']() { return 10; } }; did not throw exception. |
| PASS o.foo() is 10 |
| PASS typeof o.foo is 'function' |
| PASS o.foo.length is 0 |
| PASS o.foo.name is 'foo' |
| PASS o.foo.toString() is 'function () { return 10; }' |
| PASS Object.getOwnPropertyDescriptor(o, 'foo').value is o.foo |
| PASS Object.getOwnPropertyDescriptor(o, 'foo').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(o, 'foo').configurable is true |
| PASS Object.getOwnPropertyDescriptor(o, 'foo').writable is true |
| PASS methodName = 'add'; o = { [methodName](x, y) { return x + y; } }; did not throw exception. |
| PASS o.add(42, -10) is 32 |
| PASS typeof o.add is 'function' |
| PASS o.add.length is 2 |
| PASS o.add.name is 'add' |
| PASS o.add.toString() is 'function (x, y) { return x + y; }' |
| PASS o = { [ (function() { return 'method'; })() ](x, y) { return x + y; } }; did not throw exception. |
| PASS o.method(142, -10) is 132 |
| PASS o = { [10*10]() { return 100; } }; did not throw exception. |
| PASS o[100]() is 100 |
| PASS o['100']() is 100 |
| PASS o = { [100 + 0.100]() { return 100.100; } }; did not throw exception. |
| PASS o[100.1]() is 100.1 |
| PASS o['100.1']() is 100.1 |
| PASS o = { ['a' + 'dd']([x, y]) { return x + y; } }; did not throw exception. |
| PASS o.add([142, -100]) is 42 |
| PASS o = { [Array]([x, y]) { return x + y; } }; did not throw exception. |
| PASS o[Array.toString()]([142, -100]) is 42 |
| PASS o = { foo() { return 10; }, }; did not throw exception. |
| PASS o = { foo ( ) { return 10; } }; did not throw exception. |
| PASS o = {[true](){return true;}}; did not throw exception. |
| PASS o = {[NaN](){return NaN;}}; did not throw exception. |
| PASS o = {[eval](){return eval;}}; did not throw exception. |
| PASS o = { a:1, [foo]() { return 10; }, [bar]() { return 20; }, b: 2 }; did not throw exception. |
| PASS o = { a:1, [foo]() { return 10; }, [bar]() { return 20; }, b }; did not throw exception. |
| PASS o = { a:1, [foo]() { return 10; }, b: b, [bar]() { return 20; }, c: 2 }; did not throw exception. |
| PASS o = { a:1, [foo]() { return 10; }, b, [bar]() { return 20; }, c }; did not throw exception. |
| PASS o = {[foo]:{[bar](){ return 100; }}}; did not throw exception. |
| PASS o.foo.bar() is 100 |
| PASS o = { [foo]() { return 10; }, [foo]() { return 20; } }; did not throw exception. |
| PASS o.foo() is 20 |
| PASS o = { ['get'](x, y) { return x + y; } }; did not throw exception. |
| PASS o.get('hello', 'world') is 'helloworld' |
| PASS o = { ['set'](x, y) { return x + y; } }; did not throw exception. |
| PASS o.set('hello', 'world') is 'helloworld' |
| PASS ({ [](,,,){} }) threw exception SyntaxError: Unexpected token ']'. |
| PASS ({ [1+](){} }) threw exception SyntaxError: Unexpected token ']'. |
| PASS ({ [1,](){} }) threw exception SyntaxError: Unexpected token ','. Expected ']' to end a computed property name.. |
| PASS ({ [1,'name'](){} }) threw exception SyntaxError: Unexpected token ','. Expected ']' to end a computed property name.. |
| PASS ({ [[1](){} }) threw exception SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name.. |
| PASS ({ [foo](,,,){} }) threw exception SyntaxError: Unexpected token ','. Expected a parameter pattern or a ')' in parameter list.. |
| PASS ({ [foo](a{}, bar(){} }) threw exception SyntaxError: Unexpected token '{'. Expected a ')' or a ',' after a parameter declaration.. |
| PASS ({ [foo](a, b), bar(){} }) threw exception SyntaxError: Unexpected token ','. Expected an opening '{' at the start of a method body.. |
| PASS ({ [foo](a, b) { if }, bar(){} }) threw exception SyntaxError: Unexpected token '}'. Expected '(' to start an 'if' condition.. |
| PASS ({__proto__: function(){}}) instanceof Function is true |
| PASS ({['__proto__'](){}}) instanceof Function is false |
| PASS ({['__proto__'](){}}).__proto__ instanceof Function is true |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |