| Index: pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| index 5375526aa16376709e6be2da8ac194647e7ddf97..df8c3070d134f706adc39df77b54fb878edec704 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| @@ -16,7 +16,7 @@ import '../../elements/elements.dart';
|
| import '../../io/source_information.dart' show SourceInformation;
|
| import '../../js/js.dart' as js;
|
| import '../../tree_ir/tree_ir_nodes.dart' as tree_ir;
|
| -import '../../tree_ir/tree_ir_nodes.dart' show BuiltinOperator;
|
| +import '../../tree_ir/tree_ir_nodes.dart' show BuiltinOperator, BuiltinMethod;
|
| import '../../types/types.dart' show TypeMask;
|
| import '../../universe/universe.dart' show
|
| Selector,
|
| @@ -833,6 +833,21 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| }
|
| }
|
|
|
| + /// The JS name of a built-in method.
|
| + static final Map<BuiltinMethod, String> builtinMethodName =
|
| + const <BuiltinMethod, String>{
|
| + BuiltinMethod.Push: 'push',
|
| + BuiltinMethod.Pop: 'pop',
|
| + };
|
| +
|
| + @override
|
| + js.Expression visitApplyBuiltinMethod(tree_ir.ApplyBuiltinMethod node) {
|
| + String name = builtinMethodName[node.method];
|
| + js.Expression receiver = visitExpression(node.receiver);
|
| + List<js.Expression> args = visitExpressionList(node.arguments);
|
| + return js.js('#.#(#)', [receiver, name, args]);
|
| + }
|
| +
|
| @override
|
| js.Expression visitAwait(tree_ir.Await node) {
|
| return new js.Await(visitExpression(node.input));
|
|
|