83 lines
4.6 KiB
Plaintext
83 lines
4.6 KiB
Plaintext
basic tests for object literal methods
|
|
|
|
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
|
|
|
|
|
PASS o = { foo() { 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 foo() { 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 o = { add(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 add(x, y) { return x + y; }'
|
|
PASS o = { 'add'(a, b, c) { return a + b + c; } }; did not throw exception.
|
|
PASS o.add(1, 2, 3) is 6
|
|
PASS o = { 'a(d)d'(a, b, c) { return a + b + c; } }; did not throw exception.
|
|
PASS o['a(d)d'](1, 2, 3) is 6
|
|
PASS o = { 100() { return 100; } }; did not throw exception.
|
|
PASS o[100]() is 100
|
|
PASS o['100']() is 100
|
|
PASS o = { 100.100() { return 100.100; } }; did not throw exception.
|
|
PASS o[100.1]() is 100.1
|
|
PASS o['100.1']() is 100.1
|
|
PASS o = { 1e3() { return 1e3; } }; did not throw exception.
|
|
PASS o[1e3]() is 1000
|
|
PASS o['1000']() is 1000
|
|
PASS o = { 0x11() { return 0x11; } }; did not throw exception.
|
|
PASS o[0x11]() is 17
|
|
PASS o['17']() is 17
|
|
PASS o = { add([x, y]) { return x + y; } }; did not throw exception.
|
|
PASS o.add([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 = {inner:{method(){ return 100; }}}; did not throw exception.
|
|
PASS o.inner.method() 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 ({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 ({ (){} }) threw exception SyntaxError: Unexpected token '('. Expected a 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 { f() { return super.f(); } }.f() threw exception SyntaxError: Unexpected token '{'.
|
|
PASS new ({ f() { return super(); }.f) threw exception SyntaxError: super is not valid in this context..
|
|
PASS o = { f() { } }; new ({ __proto__: o, f() { return super(); } }).f threw exception SyntaxError: super is not valid in this context..
|
|
PASS ({ f() { return (() => super.f())(); } }).f() threw exception TypeError: super.f is not a function. (In 'super.f()', 'super.f' is undefined).
|
|
PASS o = { f() { return true; } }; ({ __proto__: o, f() { return super.f(); } }).f() is true
|
|
PASS o = { get p() { return true; } }; ({ __proto__: o, get p() { return super.p; } }).p is true
|
|
PASS o = { set p(p2) { } }; ({ __proto__: o, set p(p2) { super.p = p2; } }).p = true is true
|
|
PASS o = { f() { return true; } }; ({ __proto__: o, f() { return (() => super.f())(); } }).f() is true
|
|
PASS successfullyParsed is true
|
|
|
|
TEST COMPLETE
|
|
|