summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/testMethodWriteBarrier3.js
blob: 9ae20fed9c77d651159d7943d1bbeb06cc755ea1 (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
function g() {}

function h() {
    for (var i = 0; i < 9; i++)
	x.f = i;
}

function j() {
    x.f();
}

var x = {f: 0.7, g: g};
x.g();  // interpreter brands x
h();
print(shapeOf(x));
x.f = function (){}; // does not change x's shape
j();
print(shapeOf(x));
h(); // should change x's shape

var thrown = 'none';
try {
    j(); // should throw since x.f === 8
} catch (exc) {
    thrown = exc.name;
}
assertEq(thrown, 'TypeError');