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

    JSImplicitBindingDecl is a way to add and initialize implicit bindings to an environment.

    • The bindings that are contained in square brackets are bindings introduced by Iridium, and do not map to any identifiers created by the user.

    • The bindings arguments and this correspond to the actual bindings visible to user.

    1. arguments: Declares and initializes the arguments object (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments).

    2. arguments: Declares and initializes the mapped arguments object (see: https://medium.com/@dozie22/arguments-object-in-javascript-cf8203d92ab7).

    3. this.active_func: Declares and initializes the this.active_func special object; the prototype of this object is used to call the super class constructor.

    4. new.target: Declares and initializes the new.target object; this can be used to check if the function was called as a constructor or not.

    5. <home_object>: Declares and initializes the <home_object> object; the prototype of this object is used to access the super class methods.

    6. <var_obj>: Declares and initializes the <var_obj> object; Not used currently.

    7. <module_meta>: Declares and initializes the <module_meta> (same as import.meta provided in the source code) object; It is generally used to get metadata such as filepath of the module/etc.

    8. <super_ctr>: Declares and stores the super() at <super_ctr>; takes (this.active_func) as an argument.

    9. <super_obj>: Declares and stores the super at <super_obj>; takes (<home_object>) as an argument.

    10. this: Declares and initializes the this object (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this).

    11. this: Declares and initializes it to NUBD (this initialization is needed in constructor functions with heritage).

    12. <ret>: Declares and initializes it to undefined.

    • ARG(Store): Location on stack where the result is stored (usually ResolveEnvBindingSEXP before transition).

    • ARG(Args): A ListSEXP, that can pass additional arguments to the initializer. An empty list by default. Needed for super() and super.

    • FLAG(NAME : string): Name of the created binding.

    • FLAG(JSLET : void | JSCONST : void | JSVAR : void): The JSkind for the created binding.

    • FLAG(OPID : number): The Operation ID.

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

    • FLAG(THISINIT : boolean): Indicates whether an initialization write is being performed to this.

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

    • FLAG(SKIPINIT : void): This flag is set by default, this ensures that the bindings declared are not initialized by the codegen at scope entry.

    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.