Bug 1213391. Unmark gray things before putting them into function reserved slots in Promise code. r=mccr8

This commit is contained in:
Boris Zbarsky 2015-10-09 16:48:10 -04:00
Родитель 5634b62e5d
Коммит 6a503bcc2a
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -354,9 +354,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_END
NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(Promise)
if (tmp->IsBlack()) {
if (tmp->mResult.isObject()) {
JS::ExposeObjectToActiveJS(&(tmp->mResult.toObject()));
}
JS::ExposeValueToActiveJS(tmp->mResult);
if (tmp->mAllocationStack) {
JS::ExposeObjectToActiveJS(tmp->mAllocationStack);
}
@ -615,6 +613,7 @@ Promise::CreateFunction(JSContext* aCx, Promise* aPromise, int32_t aTask)
return nullptr;
}
JS::ExposeValueToActiveJS(promiseObj);
js::SetFunctionNativeReserved(obj, SLOT_PROMISE, promiseObj);
js::SetFunctionNativeReserved(obj, SLOT_DATA, JS::Int32Value(aTask));
@ -642,6 +641,7 @@ Promise::CreateThenableFunction(JSContext* aCx, Promise* aPromise, uint32_t aTas
return nullptr;
}
JS::ExposeValueToActiveJS(promiseObj);
js::SetFunctionNativeReserved(obj, SLOT_PROMISE, promiseObj);
return obj;