зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1723715 part 6 - Move globalThisResolved to GlobalObjectData. r=jonco
Depends on D121985 Differential Revision: https://phabricator.services.mozilla.com/D121986
This commit is contained in:
Родитель
c35da74f03
Коммит
422644ae1c
|
@ -572,7 +572,7 @@ static const uint32_t JSCLASS_FOREGROUND_FINALIZE =
|
|||
// application.
|
||||
static const uint32_t JSCLASS_GLOBAL_APPLICATION_SLOTS = 5;
|
||||
static const uint32_t JSCLASS_GLOBAL_SLOT_COUNT =
|
||||
JSCLASS_GLOBAL_APPLICATION_SLOTS + JSProto_LIMIT * 2 + 26;
|
||||
JSCLASS_GLOBAL_APPLICATION_SLOTS + JSProto_LIMIT * 2 + 25;
|
||||
|
||||
static constexpr uint32_t JSCLASS_GLOBAL_FLAGS_WITH_SLOTS(uint32_t n) {
|
||||
return JSCLASS_IS_GLOBAL |
|
||||
|
|
|
@ -426,7 +426,7 @@ bool GlobalObject::resolveConstructor(JSContext* cx,
|
|||
bool GlobalObject::maybeResolveGlobalThis(JSContext* cx,
|
||||
Handle<GlobalObject*> global,
|
||||
bool* resolved) {
|
||||
if (global->getReservedSlot(GLOBAL_THIS_RESOLVED).isUndefined()) {
|
||||
if (!global->data().globalThisResolved) {
|
||||
RootedValue v(cx, ObjectValue(*ToWindowProxyIfWindow(global)));
|
||||
if (!DefineDataProperty(cx, global, cx->names().globalThis, v,
|
||||
JSPROP_RESOLVING)) {
|
||||
|
@ -434,7 +434,7 @@ bool GlobalObject::maybeResolveGlobalThis(JSContext* cx,
|
|||
}
|
||||
|
||||
*resolved = true;
|
||||
global->setReservedSlot(GLOBAL_THIS_RESOLVED, BooleanValue(true));
|
||||
global->data().globalThisResolved = true;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -78,6 +78,9 @@ class GlobalObjectData {
|
|||
// Cache used to optimize certain for-of operations.
|
||||
HeapPtr<NativeObject*> forOfPICChain;
|
||||
|
||||
// Whether the |globalThis| property has been resolved on the global object.
|
||||
bool globalThisResolved = false;
|
||||
|
||||
void trace(JSTracer* trc);
|
||||
};
|
||||
|
||||
|
@ -144,7 +147,6 @@ class GlobalObject : public NativeObject {
|
|||
REQUESTED_MODULE_PROTO,
|
||||
MODULE_REQUEST_PROTO,
|
||||
WINDOW_PROXY,
|
||||
GLOBAL_THIS_RESOLVED,
|
||||
SOURCE_URLS,
|
||||
REALM_KEY_OBJECT,
|
||||
ARRAY_SHAPE,
|
||||
|
|
Загрузка…
Ссылка в новой задаче