All Classes and Interfaces

Class
Description
 
 
 
 
 
 
Common base class for lazy array strategies.
 
 
 
 
 
 
 
 
 
Common subclass of internal states of internationalization-related built-ins that use numbering systems.
 
 
Abstract Module Record.
Contains built-in methods of AsyncGenerator.prototype.
 
 
Base class for parsers.
Base class of a javascript dynamic writable array.
 
This node accesses the arguments array optimistically directly as Object[], but can fall back to returning a JS Arguments Object.
 
Reads an indexed argument from a function frame.
 
 
 
 
IR representation of a property access (period operator.)
 
 
This node provides the "this" object, that might a primitive value.
 
 
 
 
 
Allocate arguments object from arguments array.
 
 
 
Contains builtins for JSArrayBuffer function (constructor).
 
ArrayBuffer library provides operations on and information about JavaScript ArrayBuffer objects.
Contains builtins for JSArrayBuffer.prototype.
 
 
 
 
 
 
 
 
 
Gets the byteLength of a typed array.
Represents abstract operation ArrayCreate (length).
This node implements the isArrayElement* messages for arrays.
Contains builtins for JSArray function (constructor).
 
 
 
 
 
 
 
 
 
Contains functions of the %ArrayIteratorPrototype% object.
 
 
 
 
 
 
 
 
 
 
Contains builtins for JSArray.prototype.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Can a node be an assignment under certain circumstances? Then it should implement this interface.
A list of records with fields [[AsyncContextKey]] (a Symbol) and [[AsyncContextValue]] (an ECMAScript language value).
Contains built-in functions of the %AsyncContext% constructor.
 
 
 
Contains built-in functions of the %AsyncContext.Snapshot.prototype%.
 
 
Contains built-in functions of the %AsyncContext.Variable.prototype%.
 
 
 
 
Contains built-in methods of 11.1.3.2 The %AsyncFromSyncIteratorPrototype% Object.
 
 
 
 
 
 
 
 
 
 
 
 
 
Contains built-in methods of AsyncGenerator.prototype.
 
 
 
 
 
 
 
Implemented by built-in promise handler functions that contribute to async stack traces.
 
 
 
Wrapper around a for-await-of loop that performs AsyncIteratorClose on abrupt completion.
 
 
 
 
 
 
 
 
 
Utility node implementing ForIn/OfBodyEvaluation handling of async iterators.
Contains builtins for AsyncIterator.prototype.
 
 
 
Await resumption entry point for generator-based async iterators.
 
 
Suspended start/yield entry point for generator-based async iterators.
Resumption entry point for non-generator-based async iterators.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Provides access to the promise of async functions.
 
 
 
Contains builtins for AtomicsBuiltins.Atomics.
 
 
 
6.3.3 Atomics.compareExchange(typedArray, index, expectedValue, replacementValue).
Other atomic operations.
Lock-free regions checking.
6.3.9 Atomics.load(typedArray, index).
 
 
 
6.3.11 Atomics.store(typedArray, index, value).
 
 
 
 
 
IR base for accessing/indexing nodes.
 
Contains builtins for JSBigInt function (constructor).
 
 
 
Contains builtins for JSBigInt.prototype.
 
 
 
 
 
 
 
Utility for decoding values from a ByteBuffer.
Utility for encoding values to a ByteBuffer.
BinaryNode nodes represent two operand operations.
 
IR representation for a list of statements.
 
IR representation for a block used an expression.
 
 
Represents a local block scope that has been merged into the function's virtual frame.
Represents a block used as a statement.
Contains builtins for JSBoolean.prototype.
 
 
 
Utility class for calls to library methods that require a CompilerDirectives.TruffleBoundary.
This class represents a node from which control flow can execute a break statement.
 
IR representation for break statements.
12.8 The break Statement.
 
 
 
 
 
 
 
 
 
 
IR representation for a function call.
 
 
 
 
IR representation of case clause.
IR representation of a catch clause.
 
Math.ceil(x).
ES6 14.5.14 Runtime Semantics: ClassDefinitionEvaluation.
IR representation for class elements.
 
 
IR representation for class definitions.
 
 
 
Contains built-ins for JSCollator function (constructor).
 
 
 
 
 
 
 
 
 
A functional interface, implementations of which are safe for partial evaluation.
A functional interface, implementations of which are safe for partial evaluation.
 
 
 
 
Thread-safe WeakHashMap alternative based on ConcurrentHashMap to avoid lock contention for lookups.
Contains builtins for `console`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This array type is reserved for Array.prototype and Object.prototype.
 
 
 
Contains built-in constructor functions.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
IR representation for continue statements.
12.7 The continue Statement.
 
 
 
 
 
CreateAsyncFromSyncIterator ( syncIteratorRecord ).
CreateDataPropertyOrThrow abstract operation.
 
 
Create the import.meta object of a module.
ES6 7.4.7 CreateIterResultObject (value, done).
 
 
 
 
 
 
A Cyclic Module Record is used to represent information about a module that can participate in dependency cycles with other modules that are subclasses of the Cyclic Module Record type.
 
 
 
 
 
 
 
 
 
 
CreateDateDurationRecord result.
Contains builtins for JSDate function (constructor).
 
 
 
 
JavaScript date parser.
Contains builtins for JSDate.prototype.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Contains built-ins for JSDateTimeFormat function (constructor).
 
 
 
 
 
 
 
 
 
Contains builtins for Debug object.
 
 
 
 
 
 
 
 
 
Exposes the "holes" property of arrays.
Prints the current JS stack.
 
 
 
 
 
Used by testV8!
 
 
 
 
 
Read-only environment based on a frame descriptor used to give debugger code access to the lexical environment it's to be evaluated in.
IR representation for a debugger statement.
12.15 The debugger statement.
Testing and debug JSAgent used by test262.
Debug scope variable access wrapper that delegates to another access node if the scope does not contain a variable with that name.
 
 
Instantiates a global lexical (let or const) declaration.
 
 
 
 
 
 
 
 
 
 
Implements ECMAScript 2015's OrdinaryDefineOwnProperty as defined in 9.1.6.1., and connected functionality.
11.4.1 The delete Operator (delete object[property]).
Base class for environments that extend the current function or block environment.
Implements the DifferenceISODateTime operation.
Implements the DifferencePlainDateTimeWithRounding operation.
Implements the DifferenceZonedDateTime operation.
Implements the DifferenceZonedDateTimeWithRounding operation.
 
 
 
Saved parser environment and lexical context information for direct eval.
 
Contains built-ins for JSDisplayNames function (constructor).
 
 
 
 
 
This class provides the public API for the double conversion package.
This file is from Mozilla Rhino, published under MPL 2.0.
A buffer for generating string representations of doubles.
This defines the string conversion modes supported by this package.
 
Contains built-ins for DurationFormat function (constructor).
 
 
 
 
 
 
Common base class for all dynamic (i.e., non-typed) JavaScript arrays.
 
Wraps a dynamic scope object, filters out dead variables, and prevents const assignment.
Helper class to throw various standard "ECMA error" exceptions such as Error, ReferenceError, TypeError etc.
 
IR representation for an empty statement.
12.3 Empty Statement.
EnumerableOwnPropertyNames (O, kind).
Prototype of [[Enumerate]]().
 
 
Returns an Iterator object iterating over the enumerable properties of an object.
 
 
Contains builtins for JSError function (constructor).
 
 
 
Handles JavaScript error reporting.
ErrorManager that reports to a StringBuilder.
ThrowErrorManager that throws ParserException upon error conditions.
IR representation for a runtime call.
Contains builtins for JSError.prototype.
 
 
 
 
 
 
 
Utility class to to create all kinds of ECMAScript-defined Error Objects.
 
 
 
 
 
Wrapper around a variable access in the presence of dynamic scopes induced by direct eval calls.
 
 
 
Exports byte source such that it can be read by WASM.
 
Result of the ResolveExport method of module records.
 
 
This node prepares the export of a value via Interop.
 
Common superclass for all expression nodes.
IR for CoverParenthesizedExpressionAndArrowParameterList, used only during parsing.
IR representation for executing bare expressions.
 
A record specified for FinalizationRegistry entries.
Contains builtins for JSFinalizationRegistry.prototype.
 
Implementation of the FinalizationRegistry.prototype.cleanupSome().
Implementation of the FinalizationRegistry.prototype.register().
Implementation of the FinalizationRegistry.prototype.unregister().
Interface implemented by all nodes that have flags in a lexical context.
 
 
Math.floor(x).
 
 
 
 
 
 
The prototype of foreign iterable objects, fulfilling the JS Iterable contract.
 
 
Prototype of foreign iterator objects.
 
 
Node that returns a suitable prototype for a foreign object.
Functions of the %ForInIteratorPrototype% object.
 
IR representing a FOR statement.
for(;condition;modify) {body} with per-iteration scope.
A node that provides a FrameDescriptor for a function or block scope.
 
 
Creates a JS object from a PropertyDescriptor.
 
 
 
Interface used by AccessNodes, IndexNodes and IdentNodes to signal that when evaluated, their value will be treated as a function and immediately invoked, e.g.
 
 
 
IR representation for function (or script.)
Contains builtins for Function.prototype.
 
 
 
 
 
 
 
 
 
 
Built-in that wraps the host's garbage collection invocation mechanism.
 
 
 
 
Marker interface for generator nodes.
Contains built-in methods of Generator.prototype.
 
 
 
 
GetIterator(obj, hint = async).
 
Implementation of GetDifferenceSettings() operation.
Record returned by the GetDifferenceSettings abstract operation.
 
 
 
GetIteratorFlattenable(obj, hint).
GetIteratorFromMethod ( obj, method ).
GetIterator(obj, hint = sync).
GetIterator(obj, hint = sync).
ES6 7.3.9 GetMethod(O, P).
 
 
 
 
 
GetSetRecord(obj).
 
GetStringOrBooleanOption() operation.
ES6 12.2.9.3 Runtime Semantics: GetTemplateObject(templateLiteral).
Implementation of GetTemporalCalendarIdentifierWithISODefault() operation.
Implementation of GetTemporalUnit() operation.
Gets the byteLength of a DataView.
Contains builtins for the global object.
 
Built-ins for load.
 
For load("nashorn:parser.js") compatibility.
 
Manually added in initGlobalNashornExtensions or initGlobalScriptingExtensions.
Built-ins for print.
 
Implements $EXEC() in Nashorn scripting mode.
Built-ins for js shell (for compatibility with e.g.
 
Built-ins available in a worker only.
 
 
 
Implementation of ECMAScript 5.1 15.1.3.1 decodeURI() and of ECMAScript 5.1 15.1.3.2 decodeURIComponent().
Implementation of ECMAScript 5.1 15.1.3.3 encodeURI() and of ECMAScript 5.1 15.1.3.4 encodeURIComponent().
Non-standard global exit function to provide compatibility with Nashorn (exit() and quit()) and V8 (only quit()) shells.
This node is used only for indirect calls to eval.
Implementation of ECMAScript 5.1 15.1.2.5 isFinite() method.
Implementation of ECMAScript 5.1 15.1.2.4 isNaN() method.
 
Implementation of non-standard method loadWithNewGlobal() as defined by Nashorn.
Implementation of ECMAScript 5.1 15.1.2.3 parseFloat() method.
Implementation of ECMAScript 5.1 15.1.2.2 parseInt() method.
 
Non-standard print()/printErr() method to write to the console.
Non-standard readbuffer() to provide compatibility with V8.
Non-standard read() and readFully() to provide compatibility with V8 and Nashorn, respectively.
Non-standard readline() for V8 compatibility, and readLine(prompt) for Nashorn compatibility (only available in nashorn-compat mode with scripting enabled).
Implementation of ECMAScript 5.1 B.2.1 escape() method and of ECMAScript 5.1 B.2.2 unescape() method.
 
Built-ins for CommonJS 'require' emulation.
 
 
 
 
 
 
Checks if a scope binding is present and guards against TDZ and const assignment.
 
Wrapper around a global property access that handles potential lexical declarations shadowing global properties.
This is the main external entry into the GraalJS parser.
 
 
 
 
 
 
 
 
For use when a property is undefined.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
IR representation for an identifier.
Utility methods for parsing of identifiers.
IR representation for an IF statement.
 
Represents the import call expression syntax: import(specifier).
Payload to be passed via HostLoadImportedModule to FinishLoadingImportedModule.
 
Initializer of importMeta objects (corresponds to HostFinalizeImportMeta operation).
Returns the import.meta object of a module, initializing it if necessary.
Callback for dynamic import syntax (corresponds to HostImportModuleDynamically).
 
 
This node prepares the import of a value from Interop.
 
IR representation of an indexed access (brackets operator.)
 
 
 
 
 
 
 
 
 
InitializeInstanceElements (O, constructor).
 
 
 
 
 
 
A collections of inlined profiles.
 
Inlined profile builder.
 
 
 
 
 
Simple call helper node for internal calls, caching on the call target.
Key for internal frame slots.
 
 
Interop wrapper for async functions that unwraps the returned promise.
 
 
 
 
Contains builtins for IntlBuiltins.Intl function (constructor).
 
 
 
ECMA 402 Utilities.
Type system for the implicit cast from int to long.
Non-standard IsArray.
 
Represents abstract operation IsCallable.
Represents abstract operation IsConstructor.
Implements abstract operation IsExtensible.
 
 
 
 
 
 
Checks whether the argument is a JS object, null, or undefined.
Checks whether the argument is a JS object (not including null and undefined).
 
 
Checks whether the argument is of type Object (JS or foreign), i.e., not a primitive value.
An ISO Date Record is used to represent a valid calendar date in the ISO 8601 calendar, although the year may be outside of the allowed range for Temporal.
An ISO Date-Time Record is used to represent a valid calendar date in the ISO 8601 calendar together with a clock time.
Implementation of IsPartialTemporalObject() operation.
 
Helper node for optimization of built-in functions.
ES2015: 7.2.8 IsRegExp().
Implements the part of IterableToList(items, [method]) after GetIterator.
 
 
ES6 7.4.6 IteratorClose(iterator, completion).
Wrapper around a for-in/of loop or ArrayAssignmentPattern that performs IteratorClose on abrupt completion, and optionally on normal completion, too, if the iterator is not done.
ES6 7.4.3 IteratorComplete(iterResult).
IteratorComplete(iterResult) unary expression.
Contains builtins for JSIterator function (constructor).
 
 
 
 
Combines IteratorStep and IteratorValue in one node.
 
 
 
 
Returns the value of [[Done]] field of an IteratorRecord.
ES6 7.4.2 IteratorNext(iterator, value).
IteratorNext(iterator) unary expression.
Contains builtins for JSIterator.prototype.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sets the [[Done]] field of an IteratorRecord.
IteratorStep(iterator).
Absorb iterator to new array.
 
ES6 7.4.4 IteratorValue(iterResult).
 
 
 
 
 
 
 
 
 
 
An interface implemented by nodes that represent JavaScript function call.
 
JavaScript language view on JS values and foreign objects.
 
A RootNode for all cases where the body could throw and we would need to set the Realm to the exception.
 
 
Represents a promise job callback (ES: JobCallback record).
A wrapper for an expression that is in a position to be a join predecessor.
 
 
 
 
 
 
 
 
 
Base class for ECMA2017 8.7 Agents.
Java-based implementation of ECMA2017 WaiterList (24.4.1.2).
 
 
 
 
 
 
 
 
 
 
Base class for Array, ArgumentsObject, and %Object.prototype%.
 
 
 
 
 
ArrayBuffer backed by Interop Buffer.
 
 
 
 
 
Deletes an index from a JS array.
Deletes a range of indices from a JS array.
 
Provides the functionality of ScriptArray.firstElementIndex but additionally adheres to the prototype chain.
 
 
 
Provides the functionality of ScriptArray.lastElementIndex but additionally adheres to the prototype chain.
Provides the functionality of ScriptArray.nextElementIndex but additionally adheres to the prototype chain.
 
Provides the functionality of ScriptArray.previousElementIndex but additionally adheres to the prototype chain.
Converts a JS array to an Object[].
AsyncContext namespace.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Represents the body of a built-in function.
Interface for trivial built-in nodes that can be inlined without going through a call.
 
Intended to be subclassed by definitions of builtin functions.
Builtins container for functions defined via BuiltinNodeFactory lambdas.
Builtins container for builtin nodes created via switch dispatch method.
Builtins container for builtin nodes created via switch-enum dispatch method.
Basic interface for all JavaScript (ordinary and exotic) object types.
Delegates methods to JSClass.
 
 
 
 
This implements behavior for Collections of ES6.
 
 
 
This class stores magic numbers and other configuration values.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The %TypedArray% intrinsic constructor function object (ES6 22.2.1).
 
 
Defines, and provides access to, all JS (context and language) options.
 
 
 
 
 
 
 
 
 
This is a variant of JSOrdinary that stores its contents as a HashMap of properties (excepts hidden properties, incl.
 
 
 
 
This implements 9.8.1 ToString Applied to the Number Type.
 
 
 
The common base class for all JavaScript objects as well as null and undefined.
 
 
 
 
 
IsLooselyEqual(x, y) aka == operator.
 
 
 
Native ECMAScript Error types.
 
 
 
 
 
 
 
Internal iterator object used by for-in loop statement.
 
Describes a JS frame slot.
 
 
V8 compatibility mode: retrieves the function's arguments from the stack.
 
V8 compatibility mode: retrieves the function's caller from the stack.
 
 
 
 
 
 
The target of JSFunctionCallNode.InvokeNode.functionTargetNode also serves as the this argument of the call.
 
 
 
 
 
 
 
Bound function exotic object.
Bound or wrapped function exotic object.
 
Wrapped function exotic object.
 
 
 
[[GetOwnProperty]] (O, K) internal method.
 
 
 
 
 
 
 
 
ES6-compliant hash map implementation.
 
This node wraps part of the [[HasProperty]] function of ECMAScript.
IsStrictlyEqual(x, y) aka === operator.
 
 
 
 
 
 
 
Utility class for interop operations.
 
 
ES6 7.2.2 IsArray(argument).
This node optimizes the check whether the argument is null or undefined.
 
 
 
Abstract base class of iterators that are based on an iterator object and next method.
A wrapper around a JS iterator that fetches the next element on InteropLibrary.hasIteratorNextElement(Object) and saves it for InteropLibrary.getIteratorNextElement(Object).
Cached option values of per-language (Engine) options to allow for fast access in the interpreter and constant folding in compiled code.
The Left Shift Operator ( invalid input: '<'invalid input: '<' ), special-cased for the step to be a constant integer value.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Materialized nodes used by MaterializedInvokeNode to report JS function values to the instrumentation framework.
Instrumentable node reporting to the instrumentation framework any value provided to executeWithTarget().
see MathBuiltins.
General meta objects for JS values and foreign objects through JavaScriptLanguageView.
 
ES module data that can be shared across contexts.
 
Module Namespace Exotic Objects.
 
Source Text Module Record.
 
 
11.2.2 The new Operator.
 
 
 
Common base class for non-proxy object types.
Basic non-proxy JS object.
 
 
 
 
 
 
 
 
 
Abstract operation NumberToBigInt(number).
Convert result of ToNumber to a double value.
Lossy Numeric to Number value conversion.
The common base class for all JavaScript objects (values of type Object according to the spec).
 
 
 
 
 
 
 
 
 
Contains builtins for JSONBuiltins.JSON function (constructor).
 
 
 
 
 
 
 
 
This IR writer produces a JSON string that represents AST as a JSON string.
 
 
 
 
 
 
This node implements the semantics of a binary operator in the case when one of the two operands features overloaded operators.
This class implements the DispatchBinaryOperator spec function.
This is the type of JavaScript objects that have overloaded operator semantics.
This node implements unary operators applied to an operand with overloaded operators.
 
Option values that affect JS language semantics, i.e.
 
 
 
Implementation of the implicit this argument conversion upon entering non-strict functions (OrdinaryCallBindThis).
 
 
 
Property objects represent the mapping between low-level stores and high-level data.
Extra data associated with prototype objects.
 
 
 
 
 
 
 
A frozen ordinary object with an [[IsRawJSON]] internal slot, as created by JSON.rawJSON().
 
 
Container for JavaScript globals (i.e.
 
 
Since we cannot use nodes here, access to this property is special-cased in com.oracle.truffle.js.nodes.access.PropertyGetNode.LazyRegexResultIndexPropertyGetNode .
Implements ES6 21.2.5.2.1 Runtime Semantics: RegExpExec ( R, S ).
 
 
Ignores the lastIndex and global properties of the RegExp during matching.
 
 
 
 
 
11.7.2 The Signed Right Shift Operator ( >> ), special-cased for the step to be a constant integer value.
11.7.2 The Signed Right Shift Operator ( >> ).
 
 
 
 
 
 
 
Segments object.
 
 
 
 
 
 
 
Static helper methods for JS-specific operations on shapes.
Extra metadata associated with JavaScript object shapes.
 
 
 
 
 
 
 
 
Converts an arbitrary iterable object to a string list.
 
This implements ToNumber applied to the String type.
 
Object wrapper around a primitive symbol.
 
A utility node used by the instrumentation framework to tag a given node with a specific tag.
Runtime profiling Tags provided by Graal.js.
Binary expressions, including Additive operations, Multiplicative operations, Bitwise operations, and more.
Builtin Objects Calls.
Control flow block node.
Control flow branch node.
 
Control flow root nodes.
 
Variable declaration node.
Eval.
Function Calls.
Input generating node.
Literals.
 
The new operator and literal allocations.
Property Accessors performed using the [ ] expression.
Property Accessors performed using the "." notation.
Primary expressions reading local variables.
Unary expressions.
Assignment operations to object properties using the [ ] expression.
Assignment operations to object properties using the "." notation.
Assignment expressions to local variables.
 
 
 
Common base class for ALL Temporal Builtin operations.
Abstract base class for Temporal objects with a [[Calendar]] internal slot.
 
 
 
 
 
 
Represents the information of a parsed TemporalTimeZoneString format.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the abstract operation ToBigInt(argument).
Implementation of the ToBigInt conversion performed by the BigInt(argument) where the argument has already been converted ToPrimitive, i.e.: If prim is a Number, return NumberToBigInt(prim), otherwise ToBigInt(prim).
Implementation of the abstract operation ToBigInt(argument) where the argument has already been converted ToPrimitive.
 
 
Implementation of ECMA intl402 9.2.1 "CanonicalizeLocaleList" as Truffle node.
Implements the abstract operation ToNumber but always converting the result to a double value.
Implementation of the abstract operation ToIndex(value) (ES7 7.1.17).
This node implements the behavior of ToInt32.
 
Basically ECMAScript ToInteger, but correct only for values in the int32 range.
Basically ECMAScript ToInteger, but correct only for values in the safe integer range.
This implements ECMA2022 7.1.5 ToIntegerOrInfinity.
This implements ToIntegerWithoutRounding (via Temporal proposal).
This implements ToIntegerWithTruncation (via Temporal proposal).
Implementation of ToLength (ES6 7.1.15).
This implements the abstract operation ToNumber.
 
 
 
Returns true if the value is already a numeric value that should not be converted ToNumber.
Converts an arbitrary array-like object to an Object[], with an optional array length limit.
Implementation of the ECMAScript abstract operation ToObject(argument).
 
Converts a value to an 'operand', which is a preliminary step when invoking an overloaded operator.
Implements ToPrimitive (input, hint).
 
This implements the abstract operation ToPropertyKey(argument).
 
Implements a cast from a value to a RegExp Object, as defined by String.prototype.match and String.prototype.search.
This implements ECMA 9.8.
 
Converts a primitive value returned by JSToPrimitiveNode to either a string or a numeric value.
Implementation of ToUInt16.
 
 
 
Representation for ECMAScript types - this maps directly to the ECMA script standard
 
Sorts the elements of a JSTypedArrayObject.
This node optimizes the code patterns of typeof(a) === "typename" and "typename" == typeof (a).
 
 
 
 
 
 
 
11.7.3 The Unsigned Right Shift Operator (>>>).
11.7.3 The Unsigned Right Shift Operator (>>>).
 
Utility class for encodeURI and encodeURIComponent.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Represents a callback that is invoked when the memory grow function is called inside WebAssembly.
Represents a callback that is invoked when the memory.atomic.notify instruction executes in WebAssembly.
 
Represents a callback that is invoked when the memory.atomic.waitN instruction executes in WebAssembly.
 
 
 
 
 
 
 
 
 
 
 
Common base class for jump statements (e.g.
This node implements the isMember* messages.
 
IR representation for a labeled statement.
 
LazyArray is a backing class for a JSArray that allows array elements to be supplied on demand (i.e., lazily) from a list generator.
 
 
 
Responsible for converting source content into a stream of tokens.
Helper class for Lexer tokens, e.g XML or RegExp tokens.
interface to receive line information for multi-line literals.
Temporary container for regular expressions.
A class that tracks the current lexical context of node visitation as a stack of Block nodes.
Interface for nodes that can be part of the lexical context.
Interface for AST nodes that provide a scope (blocks, classes, loops).
Contains built-ins for JSListFormat function (constructor).
 
 
 
 
 
 
 
 
Literal nodes represent JavaScript values.
Array literal node class.
Super class for primitive (side-effect free) literals.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Converts long values to BigInt for comparison purposes.
 
A loop node, for example a while node, do while node or for node
 
Default class implementing a dummy ECMA2017 8.7 Agent for the JS main thread.
 
 
 
Contains functions of the %MapIteratorPrototype% object.
 
 
Contains builtins for JSMap.prototype.
 
Implementation of the Map.prototype.clear().
Implementation of the Map.prototype.delete().
 
Implementation of the Map.prototype.get().
Implementation of the Map.prototype.has().
 
Implementation of the Map.prototype.set().
Implementation of the Map.prototype.getOrInsertComputed().
Implementation of the Map.prototype.getOrInsert().
Implementation of the Map.prototype.size getter.
 
Contains builtins for math.
 
 
 
 
 
 
 
 
Module information.
 
 
 
 
The entry point of module functions.
The InitializeEnvironment() entry point of an ES module.
A synthetic yield statement that suspends execution when the module function has successfully finished initializing the environment.
Represent a NamedEvaluation with a name that is computed / not already known at parse time.
 
 
 
 
Parses JSON text and returns the corresponding JS object representation.
NewPrivateName (description).
 
 
 
 
Nodes are used to compose Abstract Syntax Trees.
 
 
 
 
 
A container class used to store per-node attributes used by the instrumentation framework.
 
Visitor used to navigate the IR.
Normalized Duration Record.
 
 
 
Contains built-ins for JSNumberFormat function (constructor).
 
 
 
 
 
 
 
 
Contains builtins for JSNumber function (constructor).
 
 
 
 
 
Contains builtins for JSNumber.prototype.
 
 
Implementation of the Number.prototype.toLocaleString() method as specified by ECMAScript.
 
 
 
 
 
Contains builtins for Object function (constructor).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implements Object.freeze and Object.seal (a.k.a.
 
Implements Object.isFrozen and Object.isSealed (a.k.a.
 
 
 
Base class for object members that can be used as ES class elements.
 
 
 
 
 
 
 
Base class for all private class elements.
 
IR representation of an object literal.
Contains builtins for Object.prototype.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This class implements the Operators builtin.
Instances of this class represent instances of the OperatorSet spec object.
Wrapper node for an optional chain that returns the result (usually undefined) on short circuit.
 
 
Evaluates an optional expression and if its value is null or undefined, jumps out of the short-circuiting expression to the parent OptionalChainNode.
Evaluates an optional expression and if its value is null or undefined, jumps out of the short-circuiting expression to the parent OptionalChainNode.
Common superclass for nodes that can be an optional expression or part of an optional chain.
 
Implements OrdinaryToPrimitive (O, hint).
 
IR representation of a positional parameter value.
 
Builds the IR.
ECMAScript parser exceptions.
 
 
 
 
 
 
 
 
 
 
 
 
 
Contains built-ins for JSPluralRules function (constructor).
 
 
 
 
 
 
 
 
Extra builtins injected into Polyglot object for Interop testing purposes.
 
 
Prepare stack trace callback is invoked when stack property of an error is accessed for the first time (to initialize the value of this property).
Print out the AST as human readable source code.
Creation of PrintWriter is expensive, this is why we change just the delegate writer in this wrapper class.
Performs a private brand check.
PrivateEnvironment of a class.
Adds a private field with a private name to a JS object (an instance of a JS class).
Gets the value of a private field with a private name in a JS object.
 
Sets the value of a private field with a private name in a JS object.
 
Contains functions of the %Promise% constructor function object.
 
 
 
 
 
 
Provides information about the life-cycle of promises.
Promise library provides operations on and information about JavaScript Promise objects.
State of a promise.
Contains functions of the %PromisePrototype% object.
 
 
 
 
 
 
 
 
Promise rejection tracker is invoked when a promise is rejected without any handler or when a handler is added to a rejected promise for the first time.
 
 
 
Common base class for property cache nodes.
 
Checks the Shape of a JSDynamicObject.
 
 
Checks whether the receiver is compatible with one of the two shapes.
Check that the given shape is valid and the property is unchanged using assumptions only.
Checks that the given shape and all prototype shapes up to depth are valid, that the property is unchanged in these shapes, and that all prototypes are stable, all using assumptions only.
 
 
 
Checks the top shape by identity and the shapes of the prototype chain up to the given depth using assumptions only (valid and property unchanged).
Check the shape of the object by identity and the shape of its immediate prototype by assumption (valid and unchanged).
Checks whether the receiver can be handled by the corresponding specialization.
Check the object shape by identity comparison.
Check the shapes of the prototype chain up to the given depth.
Check the shapes of the object and its immediate prototype.
Check the shapes of the prototype chain up to the given depth.
Checks the shapes of the prototype chain up to the given depth using assumptions only (valid and property unchanged).
Objects of this type are used by the defineProperty() and defineProperties() builtin functions.
ES6 9.1.8 [[Get]] (P, Receiver).
 
 
 
 
For use when a property is undefined and __noSuchProperty__/__noSuchMethod__ had been set.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
If object is undefined or null, throw TypeError.
For use when a global property is undefined.
For use when a property is undefined.
 
Any node that can be a property key inherits this.
IR representation of an object literal property.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
If object is undefined or null, throw TypeError.
 
Contains built-in functions of the Proxy Constructor.
 
 
 
 
Just a non-inline wrapper around ReadElementNode.ArrayReadElementCacheDispatchNode.
Reads the value of a resolved import binding from a resolved binding record (module, binding name) returned by ResolveExport.
 
Contains builtins for the Realm function (V8 compatibility).
 
 
 
 
 
 
 
 
 
 
Contains builtins for Reflect (ES2015, 26.1).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Contains builtin methods for JSRegExp.
 
 
 
 
Contains builtin methods for JSRegExp.prototype.
 
This implements the deprecated RegExp.prototype.compile() method.
This implements the RegExp.prototype.exec() method as defined by ECMAScript 5.
This implements the RegExp.prototype.exec() method.
This implements the RegExp.prototype.[@@matchAll] method.
This implements the RegExp.prototype.[@@match] method.
This implements the RegExp.prototype.[@@replace] method.
 
 
This implements the RegExp.prototype.[@@search] method.
This implements the RegExp.prototype.[@@split] method.
Ensure sticky ("y") is part of the flags.
 
 
 
This implements the RegExp.prototype.test() method as defined by ECMAScript 5.1 15.10.6.3.
This implements the RegExp.prototype.test() method.
This implements the RegExp.prototype.toString() method.
Implements the RegExp.prototype.flags getter.
 
 
 
 
 
Contains functions of the %RegExpStringIteratorPrototype% object.
 
 
 
Contains built-ins for JSRelativeTimeFormat function (constructor).
 
 
 
 
 
 
Marker interface that declares that the node can be repeatedly executed without side effects.
Helper for parsing replacement value parameters of String.prototype.[@@replace] and RegExp.prototype.[@@replace].
 
 
 
 
 
 
Implementation of the abstract operation RequireObjectCoercible(argument) (ES6 7.2.1).
 
Resolves a named import binding and writes the resolved binding into the frame.
Resolves a source phase import: gets the imported module's source object, if possible, and initializes the local binding (frame slot) with it.
Resolves a star import: gets the imported module's namespace object and initializes the local binding (frame slot) with it.
 
 
 
 
 
IR representation for return statements.
12.9 The return Statement.
 
 
 
 
 
Implements Temporal RoundRelativeDuration and related operations.
A Duration Nudge Result Record is a value used to represent the result of rounding a duration up or down to an increment relative to a date-time.
 
This type represents an integer value in the range of -(253-1) to -253-1, i.e.
 
Utility for scanning thru a char array.
Represents a binding scope (corresponds to LexicalEnvironment or VariableEnvironment).
 
 
 
 
 
Parser environment consists of command line options, and output and error writers, etc.
 
Behavior when encountering a function declaration in a lexical context where only statements are acceptable (function declarations are source elements, but not statements).
 
Script or Module Record.
Contains built-ins for JSSegmenter function (constructor).
 
 
 
 
 
Contains functions of the %SegmentIteratorPrototype% object.
 
 
 
 
 
 
 
Common interface for all block/multi-statement nodes.
 
 
Contains functions of the %SetIteratorPrototype% object.
 
 
SetNumberFormatDigitOptions() operation.
Contains builtins for JSSet.prototype.
 
Implementation of the Set.prototype.add().
Implementation of the Set.prototype.clear().
Implementation of the Set.prototype.delete().
Implementation of the Set.prototype.difference().
 
Implementation of the Set.prototype.has().
Implementation of the Set.prototype.intersection().
Implementation of the Set.prototype.isDisjointFrom().
Implementation of the Set.prototype.isSubsetOf().
Implementation of the Set.prototype.isSupersetOf().
Base class for the New Set Methods.
 
Implementation of the Set.prototype.symmetricDifference().
Implementation of the Set.prototype.union().
Built-ins from the NewSetMethods proposal (https://github.com/tc39/proposal-set-methods).
 
Implementation of the Set.prototype.size getter.
 
Set record is used to encapsulate the interface of a set or a similar object.
Contains built-in functions of the %ShadowRealm.prototype%.
 
 
 
Contains builtins for JSSharedArrayBuffer.prototype.
 
 
 
 
 
 
Implementation of the synchronization primitives of ECMA2017 Shared Memory model.
 
A simple array-based quasi list.
 
 
 
 
Source objects track the origin of JavaScript entities.
Array that stores its elements in a HashMap-like structure, e.g.
 
 
 
A wrapper around a context option that may be treated as stable, and optionally patchable.
 
Statement is something that becomes code and can be stepped past.
Common base class for statements.
A wrapper around StringBuilder methods that takes care of profiling and checking that the string length does not exceed the allowed limit.
String escape/unescape utility class.
Contains builtins for JSString function (constructor).
 
 
 
 
 
 
Contains functions of the %StringIteratorPrototype% object.
 
 
 
Contains builtins for JSString.prototype.
Implementation of the CreateRegExpStringIterator abstract operation as specified by the String.prototype.matchAll draft proposal.
 
 
Implementation of the String.prototype.charAt() method as specified by ECMAScript 5.1 in 15.5.4.4.
 
Implementation of the String.prototype.charCodeAt() method as specified by ECMAScript 5.1 in 15.5.4.5.
 
Implementation of the String.prototype.codePointAt() method of ECMAScript6/Harmony.
Implementation of the String.prototype.concat() method as specified by ECMAScript 5.1 in 15.5.4.6.
Implementation of the String.prototype.endsWith() method of ECMAScript6/Harmony.
Implementation of the String.prototype.contains() or .includes() method of ECMAScript6/Harmony.
Implementation of the String.prototype.indexOf() method as specified by ECMAScript 5.1 in 15.5.4.7.
 
Implementation of the String.prototype.lastIndexOf() method as specified by ECMAScript 5.1 in 15.5.4.8.
Implementation of the String.prototype.localeCompare() method as specified by ECMAScript Internationalization API, 1.0.
Implementation of the String.prototype.localeCompare() method as specified by ECMAScript 5.1 in 15.5.4.9.
Implementation of the String.prototype.match() method as specified by ECMAScript 5.1 in 15.5.4.10.
Implementation of the String.prototype.match() method as specified by ECMAScript 6 in 21.1.3.11 and the String.prototype.matchAll() method as specified by the String.prototype.matchAll draft proposal.
Implementation of the String.prototype.normalize() method of ECMAScript6/Harmony.
 
Implementation of the String.prototype.padStart() and padEnd() method as proposed for ECMAScript 2016 (ES7).
Implementation of the String.prototype.repeat() method of ECMAScript6/Harmony.
 
 
 
Implementation of the String.prototype.replace() method as specified by ECMAScript 5.1 in 15.5.4.11.
 
 
Implementation of the String.prototype.replace() method as specified by ECMAScript 5.1 in 15.5.4.11.
Legacy Implementation of the String.prototype.search() method as specified by ECMAScript 5.
Implementation of the String.prototype.search() method as specified by ECMAScript 6 in 21.1.3.15.
Implementation of the String.prototype.slice() method as specified by ECMAScript 5.1 in 15.5.4.13.
Implementation of the String.prototype.split() method as specified by ECMAScript 5.1 in 15.5.4.14.
Implementation of the String.prototype.startsWith() method of ECMAScript6/Harmony.
Implementation of the String.prototype.substring() method as specified by ECMAScript 5.1 in 15.5.4.15.
 
Implementation of the String.prototype.substr() method as specified by ECMAScript 5.1 in Annex B.2.3.
Implementation of the String.prototype.toLocaleLowerCase() and toLocaleUpperCase() methods as specified by ECMAScript Internationalization API, 1.0.
Implementation of the String.prototype.toLowerCase() method as specified by ECMAScript 5.1 in 15.5.4.16.
Implementation of the String.prototype.toString() and String.prototype.valueOf() methods as specified by ECMAScript 5.1 in 15.5.4.2 and 15.5.4.3.
Implementation of the String.prototype.toUpperCase() method as specified by ECMAScript 5.1 in 15.5.4.18.
 
Non-standard String.prototype.trimLeft to provide compatibility with Nashorn and V8.
Implementation of the String.prototype.trim() method as specified by ECMAScript 5.1 in 15.5.4.20.
Non-standard String.prototype.trimRight to provide compatibility with Nashorn and V8.
 
 
 
 
 
Used to suppress FindBugs warnings.
Marker interface for suspending nodes, i.e., yield and await.
IR representation of a SWITCH statement.
Switch.
Symbol is a symbolic address for a value ("variable" if you wish).
 
Contains builtins for Symbol function.
 
 
 
Contains builtins for Symbol.prototype.
 
 
 
 
A Synthetic Module Record, used for JSON modules, etc.
 
 
 
Template string literal.
 
 
Implementation of the Temporal AddDate operation.
Implementation of the Temporal AddDateTime operation.
Implementation of the Temporal AddZonedDateTime operation.
Implementation of CalendarDateFromFields() operation.
 
 
Implementation of the Temporal DifferenceDate operation.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The result record returned by the operations: RoundRelativeDuration, DifferencePlainDateTimeWithRounding, DifferenceZonedDateTimeWithRounding.
 
Implementation of GetOption() operation.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the Temporal monthDayFromFields() operation.
Contains builtins for Temporal.now.
 
 
 
 
 
 
 
This class holds all the date/time/timezone/calender parsing of Temporal.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the Temporal UnbalanceDateDurationRelative operation.
 
 
 
 
 
 
RoundTimeDuration result.
DifferenceInstant result.
 
 
 
 
 
 
 
 
Implementation of the Temporal yearMonthFromFields() operation.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Interface for AST nodes that can have a flag determining if they can terminate function control flow.
TernaryNode represent the ternary operator ?:.
Contains builtins to support special behavior used by Test262.
 
Used by test262 to test concurrent agents.
Used by test262 to test concurrent agents.
Used by test262 to test concurrent agents.
Used by test262 to test concurrent agents.
Used by test262 to test concurrent agents.
Used by test262 to test concurrent agents.
Used by test262 to test concurrent agents.
A function which creates a new ECMAScript Realm, defines the Test262 API on the new realm's global object, and returns the $262 property of the new realm's global object.
Used by test262.
 
 
Contains builtins to support special behavior used by TestV8.
 
 
Constructs a double from two 32bit ints.
Calls CreateAsyncFromSyncIterator, used by v8mockup.js.
 
Gets the upper (hi) or lower (lo) 32 bits of a double.
 
 
Executes all pending jobs, used by v8mockup.js.
 
 
 
Calls [[ToLength]].
Calls [[ToName]], used by v8mockup.js.
Calls [[ToNumber]], used by v8mockup.js.
Calls [[ToPrimitive]], used by v8mockup.js .
Calls [[ToString]], used by v8mockup.js.
TextDecoder built-in functions.
 
 
 
 
 
TextEncoder built-in functions.
 
 
 
 
 
 
IR representation for throw statements.
12.13 The throw Statement.
 
CreateTimeDurationRecord result.
 
A Time Record is used to represent a valid clock time, together with a number of overflow days such as might occur in BalanceTime.
 
Converts value to array index (0 invalid input: '<'= x invalid input: '<' 2^32-1) or ToPropertyKey.
Converts value to array index or JSRuntime.INVALID_ARRAY_INDEX.
Checks if the provided value is a valid length argument for the Array(len) constructor and converts it to a uint32 value.
ToDisplayString formatting parameters.
 
 
Implementation of ToJSValue() operation.
A token is a 64 bit long value that represents a basic parse/lex unit.
Classification of token types.
Fast lookup of operators and keywords.
Handles streaming of tokens between lexer and parser.
Description of all the JavaScript tokens.
 
 
Implementation of the ToPropertyDescriptor function as defined in ECMA 8.10.5.
Object representing the top scope.
Implementation of the ToRelativeTemporalObject operation.
 
Implementation of ToTemporalCalendarIdentifier() operation.
Implementation of ToTemporalDate() operation.
Implementation of ToTemporalDateTime() operation.
Implementation of ToTemporalDuration() operation.
Implementation of ToTemporalDurationRecord (temporalDurationLike) operation.
Implementation of ToTemporalInstant() operation.
Implementation of ToTemporalMonthDay() operation.
Implementation of ToTemporalPartialDurationRecord(temporalDurationLike) operation.
Implementation of ToTemporalTime() operation.
Implementation of ToTemporalTimeZoneIdentifier() operation.
Implementation of ToTemporalYearMonth() operation.
Implementation of ToTemporalZonedDateTime() operation.
Performs a conversion of the argument to non-negative int common to various parts of WebAssembly implementation.
Implementation of ToWebAssemblyValue() operation.
Visitor used to navigate the IR.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12.14 The try Statement.
 
12.14 The try Statement.
IR representation of a try statement.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Contains functions of the %TypedArray% constructor function object.
 
 
 
Gets the length of a typed array.
Contains %TypedArrayPrototype% methods.
 
 
 
 
 
 
 
 
 
 
 
Contains methods of the Uint8Array constructor and prototype.
 
 
 
 
 
 
 
 
 
 
 
UnaryNode nodes represent single operand operations.
A singleton instance of this class represents an undefined JavaScript value.
 
 
Unsupported Temporal.*.prototype.valueOf().
 
 
Validation of patterns from Unicode Technical Standard #35: UNICODE LOCALE DATA MARKUP LANGUAGE.
Value library provides basic operations that are common to all JavaScript values (like ToString() and ToNumber() operations).
Node represents a var/let declaration.
 
 
 
 
JavaScript WeakMap that emulates ephemeron semantics by storing the value in the key itself (i.e., in a hidden property within the key object).
Contains builtins for JSWeakMap.prototype.
Implementation of the WeakMap.prototype.delete().
Implementation of the WeakMap.prototype.get().
Implementation of the WeakMap.prototype.has().
Implementation of the WeakMap.prototype.set().
 
Implementation of the WeakMap.prototype.getOrInsertComputed().
Implementation of the WeakMap.prototype.getOrInsert().
 
 
Contains builtins for JSWeakRef.prototype.
Implementation of the WeakRef.prototype.deref().
 
 
Contains builtins for JSWeakSet.prototype.
Implementation of the WeakSet.prototype.add().
Implementation of the WeakSet.prototype.delete().
Implementation of the WeakSet.prototype.has().
 
WebAssembly built-ins.
 
 
 
 
 
 
 
 
 
WebAssembly host function (imported JS function).
 
 
 
 
 
 
 
WebAssembly.Module built-ins.
 
 
 
 
WebAssembly Module Record.
 
 
 
 
 
 
Represents the value types used in WebAssembly.
IR representation for a while statement.
12.6.2 The while Statement.
This environment stores "with" blocks.
IR representation for with statements.
 
Modified version of JSToObjectNode that throws if the legacy with statement is used with a host object.
Reads the with binding object and performs Object Environment HasBinding(name).
 
 
Contains built-in functions of the %Worker.prototype%.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of exact summation of double numbers based on xsum (https://gitlab.com/radfordneal/xsum).
 
 
 
 
 
 
 
 
 
 
 
Implementation of ICU4J TimeZone that takes time-zone data from the provided ZoneRules object (instead of ICU4J tzdb-related data files).