Constructors
constructor
- new CodeGen(extScope, opts?): CodeGen
Properties
Private
_blockNode
_blockNode: any
Private
Readonly
_blockStarts
_blockStarts: any
Private
Readonly
_constants
_constants: any
Private
_def
_def: any
Private
_elseNode
_elseNode: any
Private
_endBlockNode
_endBlockNode: any
Readonly
_extScope
Private
_for
_for: any
Private
_leafNode
_leafNode: any
Private
Readonly
_nodes
_nodes: any
Readonly
_scope
Readonly
_values
Private
Readonly
opts
opts: any
Accessors
Private
_currNode
- get _currNode(): any
Returns any
- set _currNode(value): void
Returns void
Private
_root
- get _root(): any
Returns any
Methods
add
- add(lhs, rhs): CodeGen
assign
- assign(lhs, rhs, sideEffects?): CodeGen
block
- block(body?, nodeCount?): CodeGen
Parameters
Optional
body: BlockOptional
nodeCount: number
break
- break(label?): CodeGen
code
- code(c): CodeGen
Parameters
- c: null | number | boolean | Name | _Code | (() => void)
const
- const(nameOrPrefix, rhs, _constant?): Name
Parameters
- nameOrPrefix: string | Name
- rhs: SafeExpr
Optional
_constant: boolean
elseIf
- elseIf(condition): CodeGen
Parameters
- condition: boolean | Code
endBlock
- endBlock(nodeCount?): CodeGen
Parameters
Optional
nodeCount: number
for
- for(iteration, forBody?): CodeGen
forIn
- forIn(nameOrPrefix, obj, forBody, varKind?): CodeGen
Parameters
- nameOrPrefix: string | Name
- obj: Code
- forBody: ((item) => void)
Optional
varKind: Code
forOf
- forOf(nameOrPrefix, iterable, forBody, varKind?): CodeGen
Parameters
- nameOrPrefix: string | Name
- iterable: Code
- forBody: ((item) => void)
Optional
varKind: Code
forRange
- forRange(nameOrPrefix, from, to, forBody, varKind?): CodeGen
Parameters
- nameOrPrefix: string | Name
- from: SafeExpr
- to: SafeExpr
- forBody: ((index) => void)
- (index): void
Returns void
Optional
varKind: Code
func
- func(name, args?, async?, funcBody?): CodeGen
Parameters
- name: Name
Optional
args: CodeOptional
async: booleanOptional
funcBody: Block
getScopeValue
- getScopeValue(prefix, keyOrRef): undefined | ValueScopeName
Parameters
- prefix: string
- keyOrRef: unknown
if
- if(condition, thenBody?, elseBody?): CodeGen
Parameters
- condition: boolean | Code
Optional
thenBody: BlockOptional
elseBody: Block
label
- label(label): CodeGen
let
- let(nameOrPrefix, rhs?, _constant?): Name
Parameters
- nameOrPrefix: string | Name
Optional
rhs: SafeExprOptional
_constant: boolean
name
- name(prefix): Name
object
- object(...keyValues): _Code
optimize
- optimize(n?): void
Returns void
return
- return(value): CodeGen
Parameters
- value: null | number | boolean | Name | _Code | (() => void)
scopeCode
- scopeCode(): Code
scopeRefs
- scopeRefs(scopeName): Code
scopeValue
- scopeValue(prefixOrName, value): Name
throw
- throw(error): CodeGen
toString
- toString(): string
Returns string
try
- try(tryBody, catchCode?, finallyCode?): CodeGen
Parameters
- tryBody: Block
Optional
catchCode: ((e) => void)Optional
finallyCode: Block
var
- var(nameOrPrefix, rhs?, _constant?): Name
Parameters
- nameOrPrefix: string | Name
Optional
rhs: SafeExprOptional
_constant: boolean