Skip to main content

"quickjs:context" (namespace)​

declare module "quickjs:context" {
export class Context {
constructor(options?: {
date?: boolean;
eval?: boolean;
stringNormalize?: boolean;
regExp?: boolean;
json?: boolean;
proxy?: boolean;
mapSet?: boolean;
typedArrays?: boolean;
promise?: boolean;
inspect?: boolean;
console?: boolean;
print?: boolean;
moduleGlobals?: boolean;
timers?: boolean;
modules?: {
"quickjs:bytecode"?: boolean;
"quickjs:cmdline"?: boolean;
"quickjs:context"?: boolean;
"quickjs:encoding"?: boolean;
"quickjs:engine"?: boolean;
"quickjs:os"?: boolean;
"quickjs:std"?: boolean;
"quickjs:timers"?: boolean;
};
});
eval(code: string): any;
}
}

"quickjs:context".Context (exported class)​

A separate global context (or 'realm') within which code can be executed.

class Context {
constructor(options?: {
date?: boolean;
eval?: boolean;
stringNormalize?: boolean;
regExp?: boolean;
json?: boolean;
proxy?: boolean;
mapSet?: boolean;
typedArrays?: boolean;
promise?: boolean;
inspect?: boolean;
console?: boolean;
print?: boolean;
moduleGlobals?: boolean;
timers?: boolean;
modules?: {
"quickjs:bytecode"?: boolean;
"quickjs:cmdline"?: boolean;
"quickjs:context"?: boolean;
"quickjs:encoding"?: boolean;
"quickjs:engine"?: boolean;
"quickjs:os"?: boolean;
"quickjs:std"?: boolean;
"quickjs:timers"?: boolean;
};
});
eval(code: string): any;
}

Context (constructor)​

Create a new global context (or 'realm') within code can be executed.

  • @param options — Options for what globals/modules/etc to make available within the context.

The following globals are always present, regardless of options:

  • Object
  • Function
  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError
  • InternalError
  • AggregateError
  • Array
  • parseInt
  • parseFloat
  • isNaN
  • isFinite
  • decodeURI
  • decodeURIComponent
  • encodeURI
  • encodeURIComponent
  • escape
  • unescape
  • Infinity
  • NaN
  • undefined
  • Number
  • Boolean
  • String
  • Math
  • Reflect
  • Symbol
  • eval (but it doesn't work unless the eval option is enabled)
  • globalThis

Note that new contexts don't have a scriptArgs global. If you need one to be present in the new context, you can add one onto the Context's globalThis property.

constructor(options?: {
date?: boolean;
eval?: boolean;
stringNormalize?: boolean;
regExp?: boolean;
json?: boolean;
proxy?: boolean;
mapSet?: boolean;
typedArrays?: boolean;
promise?: boolean;
inspect?: boolean;
console?: boolean;
print?: boolean;
moduleGlobals?: boolean;
timers?: boolean;
modules?: {
"quickjs:bytecode"?: boolean;
"quickjs:cmdline"?: boolean;
"quickjs:context"?: boolean;
"quickjs:encoding"?: boolean;
"quickjs:engine"?: boolean;
"quickjs:os"?: boolean;
"quickjs:std"?: boolean;
"quickjs:timers"?: boolean;
};
});

Context.prototype.globalThis (property)​

The globalThis object used by this context.

You can add to or remove from it to change what is visible to the context.

Context.prototype.eval (method)​

Runs code within the context and returns the result.

  • @param code — The code to run.
eval(code: string): any;