mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 03:35:33 +00:00
Bug 1165053 - Part 5: Add native SpeciesConstructor wrapper. r=lth
This commit is contained in:
parent
705c8d59d3
commit
894fd72d42
@ -3851,3 +3851,24 @@ JSObject::maybeConstructorDisplayAtom() const
|
||||
return nullptr;
|
||||
return displayAtomFromObjectGroup(*group());
|
||||
}
|
||||
|
||||
bool
|
||||
js::SpeciesConstructor(JSContext* cx, HandleObject obj, HandleValue defaultCtor, MutableHandleValue pctor)
|
||||
{
|
||||
HandlePropertyName shName = cx->names().SpeciesConstructor;
|
||||
RootedValue func(cx);
|
||||
if (!GlobalObject::getSelfHostedFunction(cx, cx->global(), shName, shName, 2, &func))
|
||||
return false;
|
||||
InvokeArgs args(cx);
|
||||
if (!args.init(2))
|
||||
return false;
|
||||
args.setCallee(func);
|
||||
args.setThis(UndefinedValue());
|
||||
args[0].setObject(*obj);
|
||||
args[1].set(defaultCtor);
|
||||
if (!Invoke(cx, args))
|
||||
return false;
|
||||
|
||||
pctor.set(args.rval());
|
||||
return true;
|
||||
}
|
||||
|
@ -1336,6 +1336,9 @@ FreezeObject(JSContext* cx, HandleObject obj)
|
||||
extern bool
|
||||
TestIntegrityLevel(JSContext* cx, HandleObject obj, IntegrityLevel level, bool* resultp);
|
||||
|
||||
extern bool
|
||||
SpeciesConstructor(JSContext* cx, HandleObject obj, HandleValue defaultCtor, MutableHandleValue pctor);
|
||||
|
||||
} /* namespace js */
|
||||
|
||||
#endif /* jsobj_h */
|
||||
|
@ -235,6 +235,7 @@
|
||||
macro(shape, shape, "shape") \
|
||||
macro(size, size, "size") \
|
||||
macro(source, source, "source") \
|
||||
macro(SpeciesConstructor, SpeciesConstructor, "SpeciesConstructor") \
|
||||
macro(stack, stack, "stack") \
|
||||
macro(star, star, "*") \
|
||||
macro(starDefaultStar, starDefaultStar, "*default*") \
|
||||
|
Loading…
Reference in New Issue
Block a user