6 Runtime System
This library implements the JavaScript runtime system. It be can required via:
(require (planet dherman/javascript:8:0/runtime)) |
6.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.
6.2 Values
A JavaScript value is represented as one of:
'true: the JavaScript value true
'false: the JavaScript value false
void?: the JavaScript undefined value
null?: the JavaScript null value
string?: a JavaScript primitive string value
number?: a JavaScript primitive number value
object?: a JavaScript object
array?: a JavaScript primitive array object
6.3 Objects
JavaScript objects are represented with the following structure type:
| |||||
call : function? | |||||
construct : function? | |||||
proto : object? | |||||
class : string? | |||||
properties : (hash-of string? property?) |
A JavaScript object.
property-value?
attributed?
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?.
| |||||
value : value? | |||||
attributes : bit-set? |
A bit-set is an efficient representation of a set 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.
ref?
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.
JavaScript array values are represented specially for faster access of numeric properties:
| |||||
vector : (evector-of property?) |
(function? x) → boolean? |
x : any |
Determines whether a value is a callable object.
(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-property/immediate 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.
6.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.