mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
Backed out 3 changesets (bug 1466633, bug 1467248, bug 1466387) for spidermonkey bustages in non262/regress/regress-1466387-worker-grayroot.js on a CLOSED TREE
Backed out changeset 1e833c6a3ba2 (bug 1467248) Backed out changeset 17bb0a45975b (bug 1466633) Backed out changeset bdf9bd1db757 (bug 1466387)
This commit is contained in:
parent
aabbbbcfa1
commit
3392deb647
@ -7,7 +7,6 @@
|
||||
#ifndef gc_DeletePolicy_h
|
||||
#define gc_DeletePolicy_h
|
||||
|
||||
#include "gc/Barrier.h"
|
||||
#include "js/TracingAPI.h"
|
||||
#ifdef ENABLE_BIGINT
|
||||
#include "vm/BigIntType.h"
|
||||
@ -74,13 +73,8 @@ struct GCManagedDeletePolicy
|
||||
void operator()(const T* constPtr) {
|
||||
if (constPtr) {
|
||||
auto ptr = const_cast<T*>(constPtr);
|
||||
if (JS::CurrentThreadIsHeapCollecting()) {
|
||||
MOZ_ASSERT(js::CurrentThreadIsGCSweeping());
|
||||
// Do not attempt to clear out storebuffer edges.
|
||||
} else {
|
||||
gc::ClearEdgesTracer trc;
|
||||
ptr->trace(&trc);
|
||||
}
|
||||
gc::ClearEdgesTracer trc;
|
||||
ptr->trace(&trc);
|
||||
js_delete(ptr);
|
||||
}
|
||||
}
|
||||
|
@ -3595,7 +3595,6 @@ WorkerMain(void* arg)
|
||||
|
||||
sc->isWorker = true;
|
||||
JS_SetContextPrivate(cx, sc);
|
||||
JS_SetGrayGCRootsTracer(cx, TraceGrayRoots, nullptr);
|
||||
SetWorkerContextOptions(cx);
|
||||
JS::SetBuildIdOp(cx, ShellBuildId);
|
||||
|
||||
|
@ -1,26 +0,0 @@
|
||||
var BUGNUMBER = 1466387;
|
||||
var summary = 'grayRoot() testing on worker thread';
|
||||
|
||||
// Before bug 1466387, the gray root tracer was not set up on worker threads,
|
||||
// but the grayRoot() function was still available. This resulted in a GC
|
||||
// collecting the gray root, then a read barrier firing on the dead object.
|
||||
//
|
||||
// This is a crashtest. If it does not crash, it will throw a ReferenceError,
|
||||
// but that's ok.
|
||||
|
||||
print('BUGNUMBER: ' + BUGNUMBER);
|
||||
print("STATUS: " + summary);
|
||||
|
||||
evalInWorker(`
|
||||
var wm = new WeakMap();
|
||||
grayRoot().map = wm;
|
||||
gczeal(4,10);
|
||||
evaluate(\`
|
||||
grayRoot().map = __v_1173;
|
||||
if (!class i { constructor() { } } ()) {
|
||||
(function __f_252( get , ) {})();
|
||||
}
|
||||
\`);
|
||||
`);
|
||||
|
||||
this.reportCompare && reportCompare(true, true, summary);
|
@ -29,7 +29,7 @@ sm-mozjs-sys-linux64/debug:
|
||||
symbol: SM(mozjs-crate)
|
||||
run:
|
||||
using: spidermonkey-mozjs-crate
|
||||
spidermonkey-variant: plaindebug
|
||||
spidermonkey-variant: plain
|
||||
run-on-projects: ['integration', 'release', 'try']
|
||||
|
||||
sm-rust-bindings-linux64/debug:
|
||||
@ -44,7 +44,7 @@ sm-rust-bindings-linux64/debug:
|
||||
docker-image: {in-tree: debian7-mozjs-rust-build}
|
||||
run:
|
||||
using: spidermonkey-rust-bindings
|
||||
spidermonkey-variant: plaindebug
|
||||
spidermonkey-variant: plain
|
||||
run-on-projects: ['integration', 'release', 'try']
|
||||
|
||||
sm-plain-linux64/debug:
|
||||
|
Loading…
Reference in New Issue
Block a user