зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1340268 - [[HasProperty]] on module namespace object should work even when binding is uninitialized r=anba
This commit is contained in:
Родитель
eec3246c3e
Коммит
19479d7f10
|
@ -330,7 +330,7 @@ ModuleNamespaceObject::addBinding(JSContext* cx, HandleAtom exportedName,
|
||||||
const char ModuleNamespaceObject::ProxyHandler::family = 0;
|
const char ModuleNamespaceObject::ProxyHandler::family = 0;
|
||||||
|
|
||||||
ModuleNamespaceObject::ProxyHandler::ProxyHandler()
|
ModuleNamespaceObject::ProxyHandler::ProxyHandler()
|
||||||
: BaseProxyHandler(&family, true)
|
: BaseProxyHandler(&family, false)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -438,7 +438,8 @@ ModuleNamespaceObject::ProxyHandler::has(JSContext* cx, HandleObject proxy, Hand
|
||||||
Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
|
Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
|
||||||
if (JSID_IS_SYMBOL(id)) {
|
if (JSID_IS_SYMBOL(id)) {
|
||||||
Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
|
Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
|
||||||
return symbol == cx->wellKnownSymbols().toStringTag;
|
*bp = symbol == cx->wellKnownSymbols().toStringTag;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
*bp = ns->bindings().has(id);
|
*bp = ns->bindings().has(id);
|
||||||
|
@ -457,7 +458,8 @@ ModuleNamespaceObject::ProxyHandler::get(JSContext* cx, HandleObject proxy, Hand
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
vp.setUndefined();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModuleEnvironmentObject* env;
|
ModuleEnvironmentObject* env;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче