summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/cacheir/setelem-undefined-null.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/cacheir/setelem-undefined-null.js')
-rw-r--r--js/src/jit-test/tests/cacheir/setelem-undefined-null.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/cacheir/setelem-undefined-null.js b/js/src/jit-test/tests/cacheir/setelem-undefined-null.js
new file mode 100644
index 0000000000..894fad5fe6
--- /dev/null
+++ b/js/src/jit-test/tests/cacheir/setelem-undefined-null.js
@@ -0,0 +1,50 @@
+function exists() {
+ var a = {'null': 0, 'undefined': 0};
+ for (var i = 0; i < 100; i++) {
+ a[null] = i;
+ a[undefined] = i * 2;
+ assertEq(a['null'], i);
+ assertEq(a['undefined'], i * 2);
+ }
+}
+
+function adding() {
+ for (var i = 0; i < 100; i++) {
+ var a = {};
+ a[null] = i;
+ a[undefined] = i * 2;
+ assertEq(a['null'], i);
+ assertEq(a['undefined'], i * 2);
+ }
+}
+
+function setter() {
+ var test = 0;
+ var a = {
+ set null(v) {
+ test = v;
+ },
+ set undefined(v) {
+ test = v * 2;
+ }
+ }
+ for (var i = 0; i < 100; i++) {
+ a[null] = i;
+ assertEq(test, i);
+ a[undefined] = i;
+ assertEq(test, i * 2);
+ }
+}
+
+function mixed() {
+ var a = {'null': void 0, 'undefined': void 0};
+ for (var i = 0; i < 100; i++) {
+ a[i % 2 ? null : undefined] = i;
+ assertEq(a[i % 2 ? 'null' : 'undefined'], i)
+ }
+}
+
+exists();
+adding()
+setter();
+mixed();