export class CodegenContext {
options: Required<CodegenOptions>
- source: string
code: CodeFragment[]
map?: SourceMapGenerator
}
genEffect?: (effects: IREffect[]) => CodeFragment[]
- constructor(ir: RootIRNode, options: CodegenOptions) {
+ constructor(
+ public ir: RootIRNode,
+ options: CodegenOptions,
+ ) {
const defaultOptions = {
mode: 'function',
prefixIdentifiers: options.mode === 'module',
expressionPlugins: [],
}
this.options = extend(defaultOptions, options)
- this.source = ir.source
const [code, push] = buildCodeFragment()
this.code = code
if (!__BROWSER__ && sourceMap) {
// lazy require source-map implementation, only in non-browser builds
this.map = new SourceMapGenerator()
- this.map.setSourceContent(filename, this.source)
+ this.map.setSourceContent(filename, ir.source)
this.map._sources.add(filename)
}
}