refactor: remove unneeded output_emitter_utils (#14160)
This commit is contained in:
parent
94312f0980
commit
3c2842be96
|
@ -1,268 +0,0 @@
|
||||||
/**
|
|
||||||
* @license
|
|
||||||
* Copyright Google Inc. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by an MIT-style license that can be
|
|
||||||
* found in the LICENSE file at https://angular.io/license
|
|
||||||
*/
|
|
||||||
|
|
||||||
import {StaticSymbol} from '@angular/compiler/src/aot/static_symbol';
|
|
||||||
import {CompileIdentifierMetadata} from '@angular/compiler/src/compile_metadata';
|
|
||||||
import {assetUrl, createIdentifier} from '@angular/compiler/src/identifiers';
|
|
||||||
import * as o from '@angular/compiler/src/output/output_ast';
|
|
||||||
import {ImportResolver} from '@angular/compiler/src/output/path_util';
|
|
||||||
import {EventEmitter} from '@angular/core';
|
|
||||||
import {BaseError} from '@angular/core/src/facade/errors';
|
|
||||||
import {ViewType} from '@angular/core/src/linker/view_type';
|
|
||||||
|
|
||||||
export class ExternalClass {
|
|
||||||
changeable: any;
|
|
||||||
constructor(public data: any) { this.changeable = data; }
|
|
||||||
someMethod(a: any /** TODO #9100 */) { return {'param': a, 'data': this.data}; }
|
|
||||||
}
|
|
||||||
|
|
||||||
const testDataIdentifier = {
|
|
||||||
name: 'ExternalClass',
|
|
||||||
moduleUrl: `@angular/compiler/test/output/output_emitter_util`,
|
|
||||||
runtime: ExternalClass
|
|
||||||
};
|
|
||||||
|
|
||||||
const eventEmitterIdentifier = {
|
|
||||||
name: 'EventEmitter',
|
|
||||||
moduleUrl: assetUrl('core'),
|
|
||||||
runtime: EventEmitter
|
|
||||||
};
|
|
||||||
|
|
||||||
const enumIdentifier = {
|
|
||||||
name: 'ViewType.HOST',
|
|
||||||
moduleUrl: assetUrl('core', 'linker/view_type'),
|
|
||||||
runtime: ViewType.HOST
|
|
||||||
};
|
|
||||||
|
|
||||||
const baseErrorIdentifier = {
|
|
||||||
name: 'BaseError',
|
|
||||||
moduleUrl: assetUrl('core', 'facade/errors'),
|
|
||||||
runtime: BaseError
|
|
||||||
};
|
|
||||||
|
|
||||||
export const codegenExportsVars = [
|
|
||||||
'getExpressions',
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
const _getExpressionsStmts: o.Statement[] = [
|
|
||||||
o.variable('readVar').set(o.literal('someValue')).toDeclStmt(),
|
|
||||||
|
|
||||||
o.variable('changedVar').set(o.literal('initialValue')).toDeclStmt(),
|
|
||||||
o.variable('changedVar').set(o.literal('changedValue')).toStmt(),
|
|
||||||
|
|
||||||
o.variable('map')
|
|
||||||
.set(o.literalMap([
|
|
||||||
['someKey', o.literal('someValue')],
|
|
||||||
['changeable', o.literal('initialValue')],
|
|
||||||
]))
|
|
||||||
.toDeclStmt(),
|
|
||||||
o.variable('map').key(o.literal('changeable')).set(o.literal('changedValue')).toStmt(),
|
|
||||||
|
|
||||||
o.variable('externalInstance')
|
|
||||||
.set(o.importExpr(createIdentifier(testDataIdentifier)).instantiate([o.literal('someValue')]))
|
|
||||||
.toDeclStmt(),
|
|
||||||
o.variable('externalInstance').prop('changeable').set(o.literal('changedValue')).toStmt(),
|
|
||||||
|
|
||||||
o.variable('fn')
|
|
||||||
.set(o.fn(
|
|
||||||
[new o.FnParam('param')],
|
|
||||||
[new o.ReturnStatement(o.literalMap([['param', o.variable('param')]]))], o.DYNAMIC_TYPE))
|
|
||||||
.toDeclStmt(),
|
|
||||||
|
|
||||||
o.variable('throwError')
|
|
||||||
.set(o.fn([], [new o.ThrowStmt(o.importExpr(createIdentifier(baseErrorIdentifier))
|
|
||||||
.instantiate([o.literal('someError')]))]))
|
|
||||||
.toDeclStmt(),
|
|
||||||
|
|
||||||
o.variable('catchError')
|
|
||||||
.set(o.fn(
|
|
||||||
[new o.FnParam('runCb')],
|
|
||||||
[new o.TryCatchStmt(
|
|
||||||
[o.variable('runCb').callFn([]).toStmt()],
|
|
||||||
[new o.ReturnStatement(o.literalArr([o.CATCH_ERROR_VAR, o.CATCH_STACK_VAR]))])],
|
|
||||||
o.DYNAMIC_TYPE))
|
|
||||||
.toDeclStmt(),
|
|
||||||
|
|
||||||
o.variable('dynamicInstance')
|
|
||||||
.set(o.variable('DynamicClass').instantiate([
|
|
||||||
o.literal('someValue'), o.literal('dynamicValue')
|
|
||||||
]))
|
|
||||||
.toDeclStmt(),
|
|
||||||
o.variable('dynamicInstance').prop('dynamicChangeable').set(o.literal('changedValue')).toStmt(),
|
|
||||||
|
|
||||||
new o.ReturnStatement(o.literalMap([
|
|
||||||
['stringLiteral', o.literal('Hello World!')],
|
|
||||||
['intLiteral', o.literal(42)],
|
|
||||||
['boolLiteral', o.literal(true)],
|
|
||||||
['arrayLiteral', o.literalArr([o.literal(0)])],
|
|
||||||
['mapLiteral', o.literalMap([['key0', o.literal(0)]])],
|
|
||||||
|
|
||||||
['readVar', o.variable('readVar')],
|
|
||||||
['changedVar', o.variable('changedVar')],
|
|
||||||
['readKey', o.variable('map').key(o.literal('someKey'))],
|
|
||||||
['changedKey', o.variable('map').key(o.literal('changeable'))],
|
|
||||||
['readPropExternalInstance', o.variable('externalInstance').prop('data')],
|
|
||||||
['readPropDynamicInstance', o.variable('dynamicInstance').prop('dynamicProp')],
|
|
||||||
['readGetterDynamicInstance', o.variable('dynamicInstance').prop('dynamicGetter')],
|
|
||||||
['changedPropExternalInstance', o.variable('externalInstance').prop('changeable')],
|
|
||||||
['changedPropDynamicInstance', o.variable('dynamicInstance').prop('dynamicChangeable')],
|
|
||||||
|
|
||||||
[
|
|
||||||
'invokeMethodExternalInstance',
|
|
||||||
o.variable('externalInstance').callMethod('someMethod', [o.literal('someParam')])
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'invokeMethodExternalInstanceViaBind',
|
|
||||||
o.variable('externalInstance')
|
|
||||||
.prop('someMethod')
|
|
||||||
.callMethod(o.BuiltinMethod.Bind, [o.variable('externalInstance')])
|
|
||||||
.callFn([o.literal('someParam')])
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'invokeMethodDynamicInstance',
|
|
||||||
o.variable('dynamicInstance').callMethod('dynamicMethod', [o.literal('someParam')])
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'invokeMethodDynamicInstanceViaBind',
|
|
||||||
o.variable('dynamicInstance')
|
|
||||||
.prop('dynamicMethod')
|
|
||||||
.callMethod(o.BuiltinMethod.Bind, [o.variable('dynamicInstance')])
|
|
||||||
.callFn([o.literal('someParam')])
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'concatedArray', o.literalArr([o.literal(0)])
|
|
||||||
.callMethod(o.BuiltinMethod.ConcatArray, [o.literalArr([o.literal(1)])])
|
|
||||||
],
|
|
||||||
|
|
||||||
['fn', o.variable('fn')],
|
|
||||||
['closureInDynamicInstance', o.variable('dynamicInstance').prop('closure')],
|
|
||||||
['invokeFn', o.variable('fn').callFn([o.literal('someParam')])],
|
|
||||||
|
|
||||||
[
|
|
||||||
'conditionalTrue', o.literal('')
|
|
||||||
.prop('length')
|
|
||||||
.equals(o.literal(0))
|
|
||||||
.conditional(o.literal('true'), o.literal('false'))
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'conditionalFalse', o.literal('')
|
|
||||||
.prop('length')
|
|
||||||
.notEquals(o.literal(0))
|
|
||||||
.conditional(o.literal('true'), o.literal('false'))
|
|
||||||
],
|
|
||||||
|
|
||||||
['not', o.not(o.literal(false))],
|
|
||||||
|
|
||||||
['externalTestIdentifier', o.importExpr(createIdentifier(testDataIdentifier))],
|
|
||||||
['externalSrcIdentifier', o.importExpr(createIdentifier(eventEmitterIdentifier))],
|
|
||||||
['externalEnumIdentifier', o.importExpr(createIdentifier(enumIdentifier))],
|
|
||||||
|
|
||||||
['externalInstance', o.variable('externalInstance')],
|
|
||||||
['dynamicInstance', o.variable('dynamicInstance')],
|
|
||||||
|
|
||||||
['throwError', o.variable('throwError')],
|
|
||||||
['catchError', o.variable('catchError')],
|
|
||||||
|
|
||||||
[
|
|
||||||
'operators', o.literalMap([
|
|
||||||
['==', createOperatorFn(o.BinaryOperator.Equals)],
|
|
||||||
['!=', createOperatorFn(o.BinaryOperator.NotEquals)],
|
|
||||||
['===', createOperatorFn(o.BinaryOperator.Identical)],
|
|
||||||
['!==', createOperatorFn(o.BinaryOperator.NotIdentical)],
|
|
||||||
['-', createOperatorFn(o.BinaryOperator.Minus)],
|
|
||||||
['+', createOperatorFn(o.BinaryOperator.Plus)],
|
|
||||||
['/', createOperatorFn(o.BinaryOperator.Divide)],
|
|
||||||
['*', createOperatorFn(o.BinaryOperator.Multiply)],
|
|
||||||
['%', createOperatorFn(o.BinaryOperator.Modulo)],
|
|
||||||
['&&', createOperatorFn(o.BinaryOperator.And)],
|
|
||||||
['||', createOperatorFn(o.BinaryOperator.Or)],
|
|
||||||
['<', createOperatorFn(o.BinaryOperator.Lower)],
|
|
||||||
['<=', createOperatorFn(o.BinaryOperator.LowerEquals)],
|
|
||||||
['>', createOperatorFn(o.BinaryOperator.Bigger)],
|
|
||||||
['>=', createOperatorFn(o.BinaryOperator.BiggerEquals)]
|
|
||||||
])
|
|
||||||
],
|
|
||||||
]))
|
|
||||||
];
|
|
||||||
|
|
||||||
export const codegenStmts: o.Statement[] = [
|
|
||||||
new o.CommentStmt('This is a comment'),
|
|
||||||
|
|
||||||
new o.ClassStmt(
|
|
||||||
'DynamicClass', o.importExpr(createIdentifier(testDataIdentifier)),
|
|
||||||
[
|
|
||||||
new o.ClassField('dynamicProp', o.DYNAMIC_TYPE),
|
|
||||||
new o.ClassField('dynamicChangeable', o.DYNAMIC_TYPE),
|
|
||||||
new o.ClassField('closure', o.FUNCTION_TYPE)
|
|
||||||
],
|
|
||||||
[
|
|
||||||
new o.ClassGetter('dynamicGetter',
|
|
||||||
[
|
|
||||||
new o.ReturnStatement(o.literalMap([
|
|
||||||
['data', o.THIS_EXPR.prop('data')],
|
|
||||||
['dynamicProp', o.THIS_EXPR.prop('dynamicProp')]
|
|
||||||
]))
|
|
||||||
],
|
|
||||||
new o.MapType(o.DYNAMIC_TYPE))
|
|
||||||
],
|
|
||||||
new o.ClassMethod(null,
|
|
||||||
[
|
|
||||||
new o.FnParam('dataParam', o.DYNAMIC_TYPE),
|
|
||||||
new o.FnParam('dynamicPropParam', o.DYNAMIC_TYPE)
|
|
||||||
],
|
|
||||||
[
|
|
||||||
o.SUPER_EXPR.callFn([o.variable('dataParam')])
|
|
||||||
.toStmt(),
|
|
||||||
o.THIS_EXPR.prop('dynamicProp')
|
|
||||||
.set(o.variable('dynamicPropParam'))
|
|
||||||
.toStmt(),
|
|
||||||
o.THIS_EXPR.prop('dynamicChangeable')
|
|
||||||
.set(o.variable('dynamicPropParam'))
|
|
||||||
.toStmt(),
|
|
||||||
o.THIS_EXPR.prop('closure')
|
|
||||||
.set(o.fn([new o.FnParam('param', o.DYNAMIC_TYPE)],
|
|
||||||
[
|
|
||||||
new o.ReturnStatement(o.literalMap([
|
|
||||||
['param', o.variable('param')],
|
|
||||||
['data', o.THIS_EXPR.prop('data')],
|
|
||||||
['dynamicProp', o.THIS_EXPR.prop('dynamicProp')]
|
|
||||||
]))
|
|
||||||
],
|
|
||||||
o.DYNAMIC_TYPE))
|
|
||||||
.toStmt(),
|
|
||||||
]),
|
|
||||||
[
|
|
||||||
new o.ClassMethod('dynamicMethod', [new o.FnParam('param', o.DYNAMIC_TYPE)],
|
|
||||||
[
|
|
||||||
new o.ReturnStatement(o.literalMap([
|
|
||||||
['param', o.variable('param')],
|
|
||||||
['data', o.THIS_EXPR.prop('data')],
|
|
||||||
['dynamicProp', o.THIS_EXPR.prop('dynamicProp')]
|
|
||||||
]))
|
|
||||||
],
|
|
||||||
o.DYNAMIC_TYPE)
|
|
||||||
]),
|
|
||||||
|
|
||||||
o.fn([], _getExpressionsStmts, o.DYNAMIC_TYPE).toDeclStmt('getExpressions')
|
|
||||||
];
|
|
||||||
|
|
||||||
function createOperatorFn(op: o.BinaryOperator) {
|
|
||||||
return o.fn(
|
|
||||||
[new o.FnParam('a'), new o.FnParam('b')],
|
|
||||||
[new o.ReturnStatement(new o.BinaryOperatorExpr(op, o.variable('a'), o.variable('b')))],
|
|
||||||
o.DYNAMIC_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
export class SimpleJsImportGenerator implements ImportResolver {
|
|
||||||
fileNameToModuleName(importedUrlStr: string, moduleUrlStr: string): string {
|
|
||||||
return importedUrlStr;
|
|
||||||
}
|
|
||||||
getImportAs(symbol: StaticSymbol): StaticSymbol { return null; }
|
|
||||||
getTypeArity(symbol: StaticSymbol): number /*|null*/ { return null; }
|
|
||||||
}
|
|
Loading…
Reference in New Issue