public abstract class SpecializedNewObjectNode extends JavaScriptBaseNode
| Modifier and Type | Field and Description |
|---|---|
protected JSContext |
context |
protected JSOrdinary |
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,
JSOrdinary 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,
JSOrdinary instanceLayout) |
static SpecializedNewObjectNode |
create(JSFunctionData functionData,
JSOrdinary instanceLayout) |
JSDynamicObject |
createDefaultProto(JSDynamicObject target,
Object prototype) |
JSDynamicObject |
createWithProto(JSDynamicObject target,
JSDynamicObject 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,
com.oracle.truffle.api.object.Shape shape) |
JSDynamicObject |
doUncachedProto(JSDynamicObject target,
JSDynamicObject 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 JSOrdinary instanceLayout
public SpecializedNewObjectNode(JSContext context, boolean isBuiltin, boolean isConstructor, boolean isGenerator, boolean isAsyncGenerator, JSOrdinary instanceLayout)
public static SpecializedNewObjectNode create(JSContext context, boolean isBuiltin, boolean isConstructor, boolean isGenerator, boolean isAsyncGenerator, JSOrdinary 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, com.oracle.truffle.api.object.Shape shape)
public JSDynamicObject doUncachedProto(JSDynamicObject target, JSDynamicObject 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, JSDynamicObject 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)