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

    Class CallSiteSEXP

    Represents a call made to a closure. First N arguments are used to form the calling context, the value of N is 1 by default. Depending on the marked flag (see CallSiteSEXPFlags) different values of N are selected. Also, when calling a closure, different calling conventions might apply, these are broadly classified into the following three categories:

    1. Basic Closure Application:
    • No flag set, N = 1 by default i.e. the first argument is the callee object. The rest of the args are passed as arguments to the callee.
    1. Contextual Closure Application:
    • CCall: N = 2, the first two args form the calling context (first arg is mapped to the this object and the second arg is callee). The rest of the args are passed as arguments to the callee.

    • PrivateCall: N = 2, same as CCall but an additional brand check is needed before actual execution.

    1. Constructor Special Closure Application: This kind of call expects two objects to form the calling context, the callee object and a new_target special object.
    • ConstructorCall: N = 1, (even though N = 1, the first argument is duplicated before the actual call). The rest of the args are passed as arguments to the closure.

    • super: N = 2. The rest of the args are passed as arguments to the closure.

    1. TODOs: Import and V8Intrinsic.
    • ...ARG(...callContext, ...args): The first N args are used form the calling context while the rest are mapped to formals.

    • FLAG(CCall): Contextual Call where this binding is provided by the call site.

    • FLAG(ConstructorCall): Contextual Call where this binding is provided by the call site.

    • FLAG(PrivateCall): Contextual Call with added brand check.

    • FLAG(Import): Dynamic import call.

    • FLAG(Super): Call to the parent class constructor.

    • FLAG(V8Intrinsic): Call to a V8 Intrinsic.

    • FLAG(JSDirectEval): Marks the call as direct eval, i.e. in sloppy mode the evaled code can modify the enclosing environment.

    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

    • Parameters

      • flag: string

      Returns boolean

    • Parameters

      • flag: string

      Returns number

    • Parameters

      • flag: string

      Returns string

    • Returns number

    • Parameters

      • flag: string

      Returns boolean

    • Parameters

      • flag: string

      Returns void

    • 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.

    • Parameters

      • refIdx: number

      Returns void

    • Parameters

      • Optionalspace: number

      Returns string