7 Runtime System
This library implements the JavaScript runtime system. It can be required via:
(require (planet dherman/javascript:9:1/runtime)) |
7.1 Namespaces
(make-js-namespace) → namespace? |
Creates a PLT namespace containing the standard JavaScript top-level bindings.
(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:
void?: the JavaScript undefined value
null?: the JavaScript null value
boolean?: a JavaScript primitive boolean value
string?: a JavaScript primitive string value
number?: a JavaScript primitive number value
object?: a JavaScript object
function?: a JavaScript function
array?: a JavaScript primitive array object
wrapper?: a JavaScript object wrapping a primitive value
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.
property-value?
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 attributed (value attributes)) |
value : value? |
attributes : bit-set? |
A bit-set is an efficient representation of a vector of booleans.
(bit-flag-set? x bit) → boolean? |
x : bit-field? |
bit : bit? |
Checks for a bit in a bit set.
READ-ONLY? : bit? |
A bit representing the ECMAScript ReadOnly attribute.
DONT-ENUM? : bit? |
A bit representing the ECMAScript DontEnum attribute.
DONT-DELETE? : bit? |
A bit representing the ECMAScript DontDelete attribute.
value?
A ref is a special property with custom get, set, and delete behavior.
(ref? x) → boolean? |
x : any |
Determines whether x is a ref.
(set-ref! x v) → any |
x : ref? |
v : value? |
Invoke x’s setter.
(delete-ref! x) → any |
x : ref? |
Invoke x’s deleter.
(deref x) → any |
x : ref? |
Invoke x’s getter.
(has-property? x key) → boolean? |
x : object? |
key : string? |
Checks for the presence of property key in x, searching the prototype chain if necessary.
(has-own-property? x key) → boolean? |
x : object? |
key : string? |
Checks for the presence of property key in x without searching the prototype chain.
(has-attribute? x bit) → boolean? |
x : property? |
bit : bit? |
Checks for attribute bit in property x.
(object-get x key) → (optional/c value?) |
x : object? |
key : string? |
Attempts to lookup property key in x.
(object-set! x key v) → any |
x : object? |
key : string? |
v : value? |
Sets property key in x.
(object-delete! x key) → any |
x : object? |
key : string? |
Attempts to delete property key from x.
(object-keys-stream x) → (-> string?) |
x : object? |
Produces an enumeration stream consistent with JavaScript’s for..in semantics.
7.4 JavaScript Library
global-object : object? |
The global object.
(install-standard-library! global) → any |
global : object? |
Installs the properties of the standard library in global.