iridium - v0.9a
    Preparing search index...

    A JSExplicitBindingDeclaration is used to either declare a new binding, and also (optionally) initialize it. After resolution, all JSWrites are reduced down to EnvWriteSEXP nodes. In case a new binding was declared, the resolution pass would end up finding the relevant scope, allocate space on the stack and take care of the initialization at scope start. After the initialization is done, all declarations can be basically reduced down to simple environment writes. The SAFE, THISINIT and SLOPPY flags are used to handle features like TDZ where writes/reads to a binding before its declaration is reached is invalid. Such restricted accesses to the environment are made explicit in Iridium.

    • ARG(lValTarget): ResolveEnvBindingSEXP The storage target location.

    • ARG(rVal): The value to store (is set to null in case of just a declaration).

    • FLAG(JSLET : void | JSCONST : void | JSVAR : void): The kind of the declaration, one of these allowed types (JSEnvWriteTypes).

    • FLAG(SAFE : boolean): Indicates whether the writes being performed are safe.

    • FLAG(THISINIT : boolean): Indicates whether the write is being performed to this, in this case it will never be true but is kept around for implementation consistency during lowering.

    • FLAG(SLOPPY : boolean): Indicates whether the writes to target locations is sloppy.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    args: IridiumSEXP[] = []

    Args are the children nodes to the current node.

    flags: [string, IridiumPrimitives][] = []

    Flags store metadata/primitive data in an Iridium node. These nodes cannot store other Iridium S-Expressions.

    tag: string = "IridiumSEXP"

    Tag specifics the S-Expression Type.

    Methods

    • This method is used to squish the Iridium Code into an array which can be easily stored on disk.

      Returns any[]

      Nested Array of Iridium S-Expressions.