On this page:
7.1 Namespaces
make-js-namespace
reset-js-namespace!
7.2 Values
7.3 Objects
attributed
bit-flag-set?
READ-ONLY?
DONT-ENUM?
DONT-DELETE?
ref?
set-ref!
delete-ref!
deref
has-property?
has-own-property?
has-attribute?
object-get
object-set!
object-delete!
object-keys-stream
7.4 Java  Script Library
global-object
install-standard-library!

7 Runtime System🔗ℹ

This library implements the JavaScript runtime system. It can be required via:

 (require javascript/runtime) package: javascript

7.1 Namespaces🔗ℹ

procedure

(make-js-namespace)  namespace?

Creates a PLT namespace containing the standard JavaScript top-level bindings.

procedure

(reset-js-namespace! ns)  any

  ns : namespace?
Resets the global object in JavaScript namespace ns.

7.2 Values🔗ℹ

All Scheme values are legal JavaScript values. A subset of Scheme values are designated as native JavaScript values. A native value is one of:

7.3 Objects🔗ℹ

The type object? is an opaque structure type. The types function?, array? and wrapper? are structure subtypes of object?. All objects carry an internal, mutable property table.

A property is one of:

Plain value properties are assumed to have no attributes. An attributed value may have any combination of the attributes DONT-ENUM?, READ-ONLY?, and DONT-DELETE?.

struct

(struct attributed (value attributes)
    #:extra-constructor-name make-attributed)
  value : value?
  attributes : bit-set?

A bit-set is an efficient representation of a vector of booleans.

procedure

(bit-flag-set? x bit)  boolean?

  x : bit-field?
  bit : bit?
Checks for a bit in a bit set.

value

READ-ONLY? : bit?

A bit representing the ECMAScript ReadOnly attribute.

value

DONT-ENUM? : bit?

A bit representing the ECMAScript DontEnum attribute.

value

DONT-DELETE? : bit?

A bit representing the ECMAScript DontDelete attribute.

A property-value is one of:

A ref is a special property with custom get, set, and delete behavior.

procedure

(ref? x)  boolean?

  x : any
Determines whether x is a ref.

procedure

(set-ref! x v)  any

  x : ref?
  v : value?
Invoke x’s setter.

procedure

(delete-ref! x)  any

  x : ref?
Invoke x’s deleter.

procedure

(deref x)  any

  x : ref?
Invoke x’s getter.

procedure

(has-property? x key)  boolean?

  x : object?
  key : string?
Checks for the presence of property key in x, searching the prototype chain if necessary.

procedure

(has-own-property? x key)  boolean?

  x : object?
  key : string?
Checks for the presence of property key in x without searching the prototype chain.

procedure

(has-attribute? x bit)  boolean?

  x : property?
  bit : bit?
Checks for attribute bit in property x.

procedure

(object-get x key)  (optional/c value?)

  x : object?
  key : string?
Attempts to lookup property key in x.

procedure

(object-set! x key v)  any

  x : object?
  key : string?
  v : value?
Sets property key in x.

procedure

(object-delete! x key)  any

  x : object?
  key : string?
Attempts to delete property key from x.

procedure

(object-keys-stream x)  (-> string?)

  x : object?
Produces an enumeration stream consistent with JavaScript’s for..in semantics.

7.4 JavaScript Library🔗ℹ

value

global-object : object?

The global object.

procedure

(install-standard-library! global)  any

  global : object?
Installs the properties of the standard library in global.