| JsArray | An Array exotic object (https://tc39.es/ecma262/#sec-array-exotic-objects): length follows the indices. |
| JsBinaryData | Access to the bytes of the buffer sources (ArrayBuffer, SharedArrayBuffer, DataView and the typed arrays), without running JavaScript code. |
| JsCell | The base class of the values that are not numbers nor undefined: objects, strings, symbols, BigInts, null and the booleans. |
| JsDebugger | Receives the execution events of the scripts of an engine, to build a debugger, a code coverage tool or an execution inspector. Set it in JsEngineOptions.Debugger before the code is compiled. |
| JsEngine | An ECMAScript agent (https://tc39.es/ecma262/#sec-agents): it owns the realms, the job queue and the execution limits of the scripts it runs. An engine is used by one thread at a time. |
| JsEngineOptions | The options of a JsEngine: the limits of the scripts and the host services. |
| JsException | A JavaScript exception: the .NET exception that carries a thrown JavaScript value. |
| JsExecutionLimits | The limits of an execution scope (JsEngine.EnterExecutionScope): they apply to all the code that runs in the scope as a whole (the scripts, the calls, the jobs, the parsing of the sources), in addition to the limits of JsEngineOptions. A limit that is exceeded stops the code with a JsTerminationException. |
| JsExecutionScope | The scope returned by JsEngine.EnterExecutionScope: the calls made until it is disposed are one entry into JavaScript, bounded by its JsExecutionLimits. Dispose the scopes in the reverse order they were entered, on the thread that entered them. |
| JsFunction | A JavaScript function: an object with a [[Call]] internal method, and possibly a [[Construct]] internal method. |
| JsHost | The host-defined operations of the engine (https://tc39.es/ecma262/#sec-host-hooks-summary). The default implementations are the ones of the specification; a host (e.g. a browser) derives from this class to integrate the engine with its event loop, and sets it in JsEngineOptions.Host. |
| JsHostJob | A job that the engine gives to the host to schedule (HostEnqueueGenericJob, HostEnqueueTimeoutJob): the host calls JsHostJob.Run later, on the thread of the engine (e.g. from a task of its event loop). |
| JsHostObject | An object implemented by the host (e.g. a platform object of a browser): a derived class can override its internal methods (https://tc39.es/ecma262/#sec-object-internal-methods-and-internal-slots). The default implementations are the ones of an ordinary object, also available with the Ordinary* methods. |
| JsModule | A Module Record (https://tc39.es/ecma262/#sec-abstract-module-records). A module is loaded (JsModule.LoadRequestedModules), linked (JsModule.Link), then evaluated (JsModule.Evaluate). |
| JsModuleLoadRequest | A request to load a module (the arguments of HostLoadImportedModule). |
| JsModuleLoader | Loads the modules imported by the scripts and the modules (HostLoadImportedModule, https://tc39.es/ecma262/#sec-HostLoadImportedModule). Set it in JsEngineOptions.ModuleLoader. |
| JsObject | A JavaScript object. The internal methods (https://tc39.es/ecma262/#sec-object-internal-methods-and-internal-slots) implement the ordinary object behavior; the exotic objects (arrays, proxies, arguments, typed arrays...) override them. |
| JsPreparedScript | A parsed and compiled script. It is immutable: it can run in several realms and engines, on several threads (e.g. the scripts of a test harness, parsed once for all the pages). The syntax errors of the whole script are reported by JsPreparedScript.Parse, but the body of a nested function is compiled on its first call (once, whichever engine calls it). |
| JsPromiseRejectionEventArgs | The arguments of JsEngine.UnhandledRejection and JsEngine.RejectionHandled. |
| JsProxy | A Proxy exotic object (https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots): its internal methods call the traps of its handler, and check the invariants of the internal methods against its target. |
| JsRealm | A realm (https://tc39.es/ecma262/#sec-code-realms): a global object, its global environment and the intrinsics. |
| JsScript | A Script Record (https://tc39.es/ecma262/#sec-script-records). |
| JsScriptOrModule | A script or a module: the [[ScriptOrModule]] of the running code (https://tc39.es/ecma262/#sec-getactivescriptormodule). |
| JsSharedDataBlock | A Shared Data Block (https://tc39.es/ecma262/#sec-data-blocks): the memory of a SharedArrayBuffer. It can be shared by several engines (agents) running on different threads, e.g. by the structured clone of a SharedArrayBuffer sent to a worker. The memory is a managed array allocated once for the maximum byte length on the pinned object heap: a growable block never moves, its byte length grows atomically. The bytes are 16-byte aligned (the atomic operations of 64-bit values are aligned). The spans, references and memories of the block reference the array, so they keep the memory alive by themselves, even once no SharedArrayBuffer references the block. |
| JsSourceMap | A source map (https://tc39.es/ecma426/, version 3): the positions of the original sources of a generated script, such as a bundle or the output of a compiler. Use it with a JsSourceMapper to show the errors of the script at their original positions. |
| JsSourceMapper | Maps the positions of generated scripts (bundles, the output of a compiler) to their original sources with source maps: the location of a JsException and the stack traces. It does not change the execution of the scripts: the errors and the stack property that the scripts see keep the generated positions. |
| JsSourceTextModule | A Source Text Module Record (https://tc39.es/ecma262/#sec-source-text-module-records): a module parsed from JavaScript source text. |
| JsSymbol | A JavaScript symbol. Two symbols are the same value only if they are the same instance. |
| JsSyntaxErrorException | The exception thrown when a source text is not a valid script or module (an early error or a syntax error). |
| JsSyntheticModule | A Synthetic Module Record (https://tc39.es/ecma262/#sec-synthetic-module-records): a module whose exports are set by the host (e.g. a JSON module). |
| JsTerminationException | The exception thrown when the engine stops a script: a limit is exceeded or the execution is canceled. The scripts cannot catch it (the catch and finally blocks do not run). |