mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-11-01 03:57:30 +09:00
Bug 1326453 - Part 1: Remove @@iterator method from module namespace objects per ES2017
This commit is contained in:
parent
556510df8f
commit
99f20bdc22
4 changed files with 1 additions and 63 deletions
|
|
@ -289,14 +289,6 @@ ModuleNamespaceObject::create(JSContext* cx, HandleModuleObject module)
|
|||
if (!object)
|
||||
return nullptr;
|
||||
|
||||
RootedId funName(cx, INTERNED_STRING_TO_JSID(cx, cx->names().Symbol_iterator_fun));
|
||||
RootedFunction enumerateFun(cx);
|
||||
enumerateFun = JS::GetSelfHostedFunction(cx, "ModuleNamespaceEnumerate", funName, 0);
|
||||
if (!enumerateFun)
|
||||
return nullptr;
|
||||
|
||||
SetProxyExtra(object, ProxyHandler::EnumerateFunctionSlot, ObjectValue(*enumerateFun));
|
||||
|
||||
return &object->as<ModuleNamespaceObject>();
|
||||
}
|
||||
|
||||
|
|
@ -341,11 +333,6 @@ ModuleNamespaceObject::ProxyHandler::ProxyHandler()
|
|||
: BaseProxyHandler(&family, true)
|
||||
{}
|
||||
|
||||
JS::Value ModuleNamespaceObject::ProxyHandler::getEnumerateFunction(HandleObject proxy) const
|
||||
{
|
||||
return GetProxyExtra(proxy, EnumerateFunctionSlot);
|
||||
}
|
||||
|
||||
bool
|
||||
ModuleNamespaceObject::ProxyHandler::getPrototype(JSContext* cx, HandleObject proxy,
|
||||
MutableHandleObject protop) const
|
||||
|
|
@ -402,15 +389,6 @@ ModuleNamespaceObject::ProxyHandler::getOwnPropertyDescriptor(JSContext* cx, Han
|
|||
Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
|
||||
if (JSID_IS_SYMBOL(id)) {
|
||||
Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
|
||||
if (symbol == cx->wellKnownSymbols().iterator) {
|
||||
RootedValue enumerateFun(cx, getEnumerateFunction(proxy));
|
||||
desc.object().set(proxy);
|
||||
desc.setConfigurable(false);
|
||||
desc.setEnumerable(false);
|
||||
desc.setValue(enumerateFun);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (symbol == cx->wellKnownSymbols().toStringTag) {
|
||||
RootedValue value(cx, StringValue(cx->names().Module));
|
||||
desc.object().set(proxy);
|
||||
|
|
@ -458,8 +436,7 @@ ModuleNamespaceObject::ProxyHandler::has(JSContext* cx, HandleObject proxy, Hand
|
|||
Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
|
||||
if (JSID_IS_SYMBOL(id)) {
|
||||
Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
|
||||
return symbol == cx->wellKnownSymbols().iterator ||
|
||||
symbol == cx->wellKnownSymbols().toStringTag;
|
||||
return symbol == cx->wellKnownSymbols().toStringTag;
|
||||
}
|
||||
|
||||
*bp = ns->bindings().has(id);
|
||||
|
|
@ -473,11 +450,6 @@ ModuleNamespaceObject::ProxyHandler::get(JSContext* cx, HandleObject proxy, Hand
|
|||
Rooted<ModuleNamespaceObject*> ns(cx, &proxy->as<ModuleNamespaceObject>());
|
||||
if (JSID_IS_SYMBOL(id)) {
|
||||
Rooted<JS::Symbol*> symbol(cx, JSID_TO_SYMBOL(id));
|
||||
if (symbol == cx->wellKnownSymbols().iterator) {
|
||||
vp.set(getEnumerateFunction(proxy));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (symbol == cx->wellKnownSymbols().toStringTag) {
|
||||
vp.setString(cx->names().Module);
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue