| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index 533c6249ca9abee8dd498ffaf216a2c823554744..371435dac2f22c5a047344074f49dd3a6cdbb099 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -2302,6 +2302,64 @@ TEST(NoErrorsObjectLiteralChecking) {
|
| }
|
|
|
|
|
| +TEST(ObjectLiteralComputedNames) {
|
| + const char* context_data[][2] = {
|
| + {"var myobj = {", "};"},
|
| + {"\"use strict\"; var myobj = {", "};"},
|
| + { NULL, NULL }
|
| + };
|
| +
|
| + const char* good_data[] = {
|
| + "['foo']: 42",
|
| + "['foo']: 42, foo: 10",
|
| + "foo: 10, ['foo']: 42",
|
| + "foo: 10, ['foo']: 42, bar: 35",
|
| + "foo: 10, bar: 35, ['foo']: 42",
|
| + "bar: 35, foo: 10, ['foo']: 42",
|
| + "bar: 35, ['foo']: 42, foo: 10",
|
| + "['bar']: 35, ['foo']: 42, foo: 10",
|
| + "['bar']: 35, foo: 10, ['foo']: 42",
|
| + "foo: 10, [1 ? 'foo' : 'bar']: 42",
|
| + "foo: 10, [0 ? 'foo' : 'bar']: 42",
|
| + "[sym]: 'ohai'",
|
| + "[1 ? sym : 'foo']: 'ohai'",
|
| + "[0 ? sym : 'foo']: 'ohai'",
|
| + "['foo']: 10, get foo() { return 42 }",
|
| + "get foo() { return 42 }, ['foo']: 10",
|
| + "0: 42, [0]: 10",
|
| + "[0]: 42, 0: 10",
|
| + NULL
|
| + };
|
| +
|
| + const char* bad_data[] = {
|
| + "['foo",
|
| + "'foo']",
|
| + "['foo': 32]",
|
| + "['foo': 32]: 100",
|
| +
|
| + "['foo']",
|
| + "3, ['foo']",
|
| + "['foo'], 3",
|
| + "bar: baz, ['foo']",
|
| + "['foo'], bar: baz",
|
| +
|
| + // These are correct but currently unsupported.
|
| + "get ['foo']() {}",
|
| + "set ['foo']() {}",
|
| + "foo: 32, get ['foo']() {}, set ['foo'](x) {}",
|
| + NULL
|
| + };
|
| +
|
| + bool saved_flag = i::FLAG_harmony_object_literals;
|
| + i::FLAG_harmony_object_literals = true;
|
| +
|
| + RunParserSyncTest(context_data, good_data, kSuccess);
|
| + RunParserSyncTest(context_data, bad_data, kError);
|
| +
|
| + i::FLAG_harmony_object_literals = saved_flag;
|
| +}
|
| +
|
| +
|
| TEST(TooManyArguments) {
|
| const char* context_data[][2] = {
|
| {"foo(", "0)"},
|
|
|