summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Record/syntax.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--js/src/tests/non262/Record/syntax.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/js/src/tests/non262/Record/syntax.js b/js/src/tests/non262/Record/syntax.js
new file mode 100644
index 0000000000..1291cd3bab
--- /dev/null
+++ b/js/src/tests/non262/Record/syntax.js
@@ -0,0 +1,27 @@
+// |reftest| skip-if(!this.hasOwnProperty("Record"))
+
+Reflect.parse("#{}");
+Reflect.parse("#{ foo: 1, bar: 2 }");
+Reflect.parse("#{ foo: 1, bar: 2, }");
+Reflect.parse("#{ foo, ...bar }");
+Reflect.parse("#{ foo, ...bar, }");
+Reflect.parse("#{ foo: 1, ...bar, baz: 2 }");
+Reflect.parse("#{ foo }");
+Reflect.parse("#{ foo, }");
+Reflect.parse("#{ foo, bar }");
+Reflect.parse("#{ foo: 1, bar }");
+Reflect.parse("#{ foo, bar: 2 }");
+Reflect.parse("#{ foo: bar() }");
+
+Reflect.parse("#{ __proto__ }");
+Reflect.parse("#{ ['__proto__']: 2 }");
+
+assertThrowsInstanceOf(() => Reflect.parse("#{,}"), SyntaxError);
+assertThrowsInstanceOf(() => Reflect.parse("#{ foo() {} }"), SyntaxError);
+assertThrowsInstanceOf(() => Reflect.parse("#{ get foo() {} }"), SyntaxError);
+assertThrowsInstanceOf(() => Reflect.parse("#{ __proto__: 2 }"), SyntaxError);
+assertThrowsInstanceOf(() => Reflect.parse("#{ '__proto__': 2 }"), SyntaxError);
+assertThrowsInstanceOf(() => Reflect.parse("#{ foo = 2 }"), SyntaxError);
+assertThrowsInstanceOf(() => Reflect.parse("#{ foo } = bar"), SyntaxError);
+
+if (typeof reportCompare === "function") reportCompare(0, 0);