Bug 1340268 - [[HasProperty]] on module namespace object should work even when binding is uninitialized r=anba

This commit is contained in:
Jon Coppeard 2017-02-20 16:32:13 +00:00
Родитель eec3246c3e
Коммит 19479d7f10
1 изменённых файлов: 5 добавлений и 3 удалений

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

@ -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;