summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/cacheir/setelem-undefined-null.js
blob: 894fad5fe6f4b583c4f89591dbbca618fdb0147f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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();