blob: f99c47694efb1ae0c1b1ad268d76f4615949fbc4 [file] [log] [blame]
This test checks that object literals are serialized properly. It's needed in part because JavaScriptCore converts numeric property names to string and back.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS compileAndSerialize('a = { 1: null }') is 'a = { 1: null }'
PASS compileAndSerialize('a = { 0: null }') is 'a = { 0: null }'
PASS compileAndSerialize('a = { 1.0: null }') is 'a = { 1: null }'
PASS compileAndSerialize('a = { "1.0": null }') is 'a = { "1.0": null }'
PASS compileAndSerialize('a = { 1e-500: null }') is 'a = { 0: null }'
PASS compileAndSerialize('a = { 1e-300: null }') is 'a = { 1e-300: null }'
PASS compileAndSerialize('a = { 1e300: null }') is 'a = { 1e+300: null }'
PASS compileAndSerialize('a = { 1e500: null }') is 'a = { "Infinity": null }'
PASS compileAndSerialize('a = { NaN: null }') is 'a = { "NaN": null }'
PASS compileAndSerialize('a = { Infinity: null }') is 'a = { "Infinity": null }'
PASS compileAndSerialize('a = { "1": null }') is 'a = { 1: null }'
PASS compileAndSerialize('a = { "1hi": null }') is 'a = { "1hi": null }'
PASS compileAndSerialize('a = { "\'": null }') is 'a = { "\'": null }'
PASS compileAndSerialize('a = { "\\"": null }') is 'a = { "\\"": null }'
PASS compileAndSerialize('a = { get x() { } }') is 'a = { get x() { } }'
PASS compileAndSerialize('a = { set x(y) { } }') is 'a = { set x(y) { } }'
PASS compileAndSerialize('a = { --1: null }') threw exception SyntaxError: Parse error.
PASS compileAndSerialize('a = { -NaN: null }') threw exception SyntaxError: Parse error.
PASS compileAndSerialize('a = { -0: null }') threw exception SyntaxError: Parse error.
PASS compileAndSerialize('a = { -0.0: null }') threw exception SyntaxError: Parse error.
PASS compileAndSerialize('a = { -Infinity: null }') threw exception SyntaxError: Parse error.
PASS successfullyParsed is true
TEST COMPLETE