* * @param sourceUrl The URL of the generated code. * @param statements An array of Angular statement AST nodes to be evaluated. * @param refResolver Resolves `o.ExternalReference`s into values. * @param createSourceMaps If true then create a source-map for the generated code and include
(
sourceUrl: string,
statements: o.Statement[],
refResolver: ExternalReferenceResolver,
createSourceMaps: boolean,
)
| 31 | * @returns A map of all the variables in the generated code. |
| 32 | */ |
| 33 | evaluateStatements( |
| 34 | sourceUrl: string, |
| 35 | statements: o.Statement[], |
| 36 | refResolver: ExternalReferenceResolver, |
| 37 | createSourceMaps: boolean, |
| 38 | ): {[key: string]: any} { |
| 39 | const converter = new JitEmitterVisitor(refResolver); |
| 40 | const ctx = EmitterVisitorContext.createRoot(); |
| 41 | // Ensure generated code is in strict mode |
| 42 | if (statements.length > 0 && !isUseStrictStatement(statements[0])) { |
| 43 | statements = [o.literal('use strict').toStmt(), ...statements]; |
| 44 | } |
| 45 | converter.visitAllStatements(statements, ctx); |
| 46 | converter.createReturnStmt(ctx); |
| 47 | return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps); |
| 48 | } |
| 49 | |
| 50 | /** |
| 51 | * Evaluate a piece of JIT generated code. |
no test coverage detected