зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1645358 - Handle DeadObjectProxy in js::CopyErrorObject. r=evilpie
Differential Revision: https://phabricator.services.mozilla.com/D159590
This commit is contained in:
Родитель
3ddbc463f2
Коммит
6853e71921
|
@ -0,0 +1,6 @@
|
|||
// |jit-test| error:TypeError: can't redefine
|
||||
var g = newGlobal({newCompartment: true});
|
||||
var dbg = new Debugger();
|
||||
var gw = dbg.addDebuggee(g);
|
||||
nukeAllCCWs();
|
||||
gw.defineProperty("undefined", {value: -1});
|
|
@ -718,6 +718,11 @@ JSObject* js::CopyErrorObject(JSContext* cx, Handle<ErrorObject*> err) {
|
|||
if (!cx->compartment()->wrap(cx, &stack)) {
|
||||
return nullptr;
|
||||
}
|
||||
if (stack && JS_IsDeadWrapper(stack)) {
|
||||
// ErrorObject::create expects |stack| to be either nullptr or a (possibly
|
||||
// wrapped) SavedFrame instance.
|
||||
stack = nullptr;
|
||||
}
|
||||
Rooted<mozilla::Maybe<Value>> cause(cx, mozilla::Nothing());
|
||||
if (auto maybeCause = err->getCause()) {
|
||||
RootedValue errorCause(cx, maybeCause.value());
|
||||
|
|
Загрузка…
Ссылка в новой задаче