Bug 808067 - Toggle Ion barriers when resetting incremental GC (r=sstangl)

This commit is contained in:
Bill McCloskey 2012-11-05 13:16:22 -08:00
parent 24e7854e4d
commit 478e915804
2 changed files with 20 additions and 1 deletions

View File

@ -0,0 +1,19 @@
function TestCase(n, d, e, a)
this.reason = '';
function reportCompare (expected, actual, description) {
var output = "";
var testcase = new TestCase("unknown-test-name", description, expected, actual);
testcase.reason = output;
}
gcPreserveCode();
var summary = 'return with argument and lazy generator detection';
expect = "generator function foo returns a value";
actual = (function (j) {}).message;
reportCompare(expect, actual, summary + ": 1");
reportCompare(expect, actual, summary + ": 2");
gcslice(0);
gcslice(1);
gc();
var strings = [ (0), ];
for (var i = 0; i < strings.length; i++)
reportCompare(expect, actual, summary + (5e1) + strings[i]);

View File

@ -4079,7 +4079,7 @@ ResetIncrementalGC(JSRuntime *rt, const char *reason)
AutoCopyFreeListToArenas copy(rt);
for (GCCompartmentsIter c(rt); !c.done(); c.next()) {
if (c->isGCMarking()) {
c->setNeedsBarrier(false, JSCompartment::DontUpdateIon);
c->setNeedsBarrier(false, JSCompartment::UpdateIon);
c->setGCState(JSCompartment::NoGC);
wasMarking = true;
}