public abstract class SpecializedNewObjectNode extends JavaScriptBaseNode
| Modifier and Type | Field and Description |
|---|---|
protected JSContext |
context |
protected JSNonProxy |
instanceLayout |
protected boolean |
isAsyncGenerator |
protected boolean |
isBuiltin |
protected boolean |
isConstructor |
protected boolean |
isGenerator |
| Constructor and Description |
|---|
SpecializedNewObjectNode(JSContext context,
boolean isBuiltin,
boolean isConstructor,
boolean isGenerator,
boolean isAsyncGenerator,
JSNonProxy instanceLayout) |
| Modifier and Type | Method and Description |
|---|---|
static SpecializedNewObjectNode |
create(JSContext context,
boolean isBuiltin,
boolean isConstructor,
boolean isGenerator,
boolean isAsyncGenerator) |
static SpecializedNewObjectNode |
create(JSContext context,
boolean isBuiltin,
boolean isConstructor,
boolean isGenerator,
boolean isAsyncGenerator,
JSNonProxy instanceLayout) |
static SpecializedNewObjectNode |
create(JSFunctionData functionData,
JSOrdinary instanceLayout) |
JSDynamicObject |
createDefaultProto(JSDynamicObject target,
Object prototype) |
JSDynamicObject |
createWithProto(JSDynamicObject target,
JSObject prototype,
com.oracle.truffle.api.object.DynamicObjectLibrary setProtoNode,
com.oracle.truffle.api.object.Shape cachedShape) |
JSDynamicObject |
createWithProtoCachedClass(JSDynamicObject target,
Object prototype,
com.oracle.truffle.api.object.DynamicObjectLibrary setProtoNode,
Class<?> prototypeClass,
com.oracle.truffle.api.object.Shape cachedShape) |
JSDynamicObject |
doCachedProto(JSDynamicObject target,
Object prototype,
Object cachedPrototype,
JSObjectFactory factory) |
JSDynamicObject |
doUncachedProto(JSDynamicObject target,
JSObject prototype,
com.oracle.truffle.api.profiles.InlinedBranchProfile slowBranch)
Many different prototypes.
|
protected abstract JSDynamicObject |
execute(JSDynamicObject newTarget,
Object prototype) |
JSDynamicObject |
execute(com.oracle.truffle.api.frame.VirtualFrame frame,
JSDynamicObject newTarget) |
protected com.oracle.truffle.api.object.Shape |
getProtoChildShape(Object prototype) |
protected com.oracle.truffle.api.object.Shape |
getShapeWithoutProto() |
JSDynamicObject |
throwNotConstructorFunctionTypeError(JSDynamicObject target,
Object proto) |
copy, getLanguage, getRealm, hasOverloadedOperators, onReplaceaccept, adoptChildren, atomic, atomic, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, getSourceSection, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, replace, replace, reportPolymorphicSpecialize, toStringprotected final JSContext context
protected final boolean isBuiltin
protected final boolean isConstructor
protected final boolean isGenerator
protected final boolean isAsyncGenerator
protected final JSNonProxy instanceLayout
public SpecializedNewObjectNode(JSContext context, boolean isBuiltin, boolean isConstructor, boolean isGenerator, boolean isAsyncGenerator, JSNonProxy instanceLayout)
public static SpecializedNewObjectNode create(JSContext context, boolean isBuiltin, boolean isConstructor, boolean isGenerator, boolean isAsyncGenerator, JSNonProxy instanceLayout)
public static SpecializedNewObjectNode create(JSContext context, boolean isBuiltin, boolean isConstructor, boolean isGenerator, boolean isAsyncGenerator)
public static SpecializedNewObjectNode create(JSFunctionData functionData, JSOrdinary instanceLayout)
public final JSDynamicObject execute(com.oracle.truffle.api.frame.VirtualFrame frame, JSDynamicObject newTarget)
protected abstract JSDynamicObject execute(JSDynamicObject newTarget, Object prototype)
protected com.oracle.truffle.api.object.Shape getProtoChildShape(Object prototype)
protected com.oracle.truffle.api.object.Shape getShapeWithoutProto()
public JSDynamicObject doCachedProto(JSDynamicObject target, Object prototype, Object cachedPrototype, JSObjectFactory factory)
public JSDynamicObject doUncachedProto(JSDynamicObject target, JSObject prototype, com.oracle.truffle.api.profiles.InlinedBranchProfile slowBranch)
public JSDynamicObject createWithProtoCachedClass(JSDynamicObject target, Object prototype, com.oracle.truffle.api.object.DynamicObjectLibrary setProtoNode, Class<?> prototypeClass, com.oracle.truffle.api.object.Shape cachedShape)
public JSDynamicObject createWithProto(JSDynamicObject target, JSObject prototype, com.oracle.truffle.api.object.DynamicObjectLibrary setProtoNode, com.oracle.truffle.api.object.Shape cachedShape)
public JSDynamicObject createDefaultProto(JSDynamicObject target, Object prototype)
public JSDynamicObject throwNotConstructorFunctionTypeError(JSDynamicObject target, Object proto)