js/src/jit-test/tests/gc/jsscript-mark-children.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:e2559c0c909b
1 // Bug 758509 changed things so that a JSScript is partially initialized when
2 // it is created, which is prior to bytecode generation; full initialization
3 // only occurs after bytecode generation. This means that
4 // JSScript::markChildren() must deal with partially-initialized JSScripts.
5 // This test forces that to happen, because each let block allocates a
6 // StaticBlockObject. All that should happen is that we don't crash.
7
8 let t = 0;
9 gczeal(2,1);
10 eval("\
11 let x = 3, y = 4;\
12 let (x = x+0, y = 12) { t += (x + y); } \
13 let (x = x+1, y = 12) { t += (x + y); } \
14 let (x = x+2, y = 12) { t += (x + y); } \
15 let (x = x+3, y = 12) { t += (x + y); } \
16 let (x = x+4, y = 12) { t += (x + y); } \
17 let (x = x+5, y = 12) { t += (x + y); } \
18 let (x = x+6, y = 12) { t += (x + y); } \
19 let (x = x+7, y = 12) { t += (x + y); } \
20 let (x = x+8, y = 12) { t += (x + y); } \
21 let (x = x+9, y = 12) { t += (x + y); } \
22 t += (x + y);\
23 assertEq(t, 202);\
24 ");

mercurial