OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library dart2js.ir_builder; | 5 library dart2js.ir_builder; |
6 | 6 |
7 import '../constants/expressions.dart'; | 7 import '../constants/expressions.dart'; |
8 import '../constants/values.dart' show PrimitiveConstantValue; | 8 import '../constants/values.dart' show PrimitiveConstantValue; |
9 import '../dart_types.dart'; | 9 import '../dart_types.dart'; |
10 import '../dart2jslib.dart'; | 10 import '../dart2jslib.dart'; |
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
494 | 494 |
495 ir.Primitive _buildInvokeDynamic(ir.Primitive receiver, | 495 ir.Primitive _buildInvokeDynamic(ir.Primitive receiver, |
496 Selector selector, | 496 Selector selector, |
497 List<ir.Primitive> arguments) { | 497 List<ir.Primitive> arguments) { |
498 assert(isOpen); | 498 assert(isOpen); |
499 return _continueWithExpression( | 499 return _continueWithExpression( |
500 (k) => new ir.InvokeMethod(receiver, selector, k, arguments)); | 500 (k) => new ir.InvokeMethod(receiver, selector, k, arguments)); |
501 } | 501 } |
502 | 502 |
503 ir.Primitive _buildInvokeCall(ir.Primitive target, | 503 ir.Primitive _buildInvokeCall(ir.Primitive target, |
504 Selector selector, | 504 Selector selector, |
505 List<ir.Definition> arguments) { | 505 List<ir.Definition> arguments) { |
506 Selector callSelector = new Selector.callClosure( | 506 Selector callSelector = new Selector.callClosureFrom(selector); |
507 selector.argumentCount, | |
508 selector.namedArguments); | |
509 return _buildInvokeDynamic(target, callSelector, arguments); | 507 return _buildInvokeDynamic(target, callSelector, arguments); |
510 } | 508 } |
511 | 509 |
512 | 510 |
513 /// Create a constant literal from [constant]. | 511 /// Create a constant literal from [constant]. |
514 ir.Constant buildConstantLiteral(ConstantExpression constant) { | 512 ir.Constant buildConstantLiteral(ConstantExpression constant) { |
515 assert(isOpen); | 513 assert(isOpen); |
516 return addPrimitive(new ir.Constant(constant)); | 514 return addPrimitive(new ir.Constant(constant)); |
517 } | 515 } |
518 | 516 |
(...skipping 2066 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2585 } | 2583 } |
2586 | 2584 |
2587 /// Synthetic parameter to a JavaScript factory method that takes the type | 2585 /// Synthetic parameter to a JavaScript factory method that takes the type |
2588 /// argument given for the type variable [variable]. | 2586 /// argument given for the type variable [variable]. |
2589 class TypeInformationParameter implements Local { | 2587 class TypeInformationParameter implements Local { |
2590 final TypeVariableElement variable; | 2588 final TypeVariableElement variable; |
2591 final ExecutableElement executableContext; | 2589 final ExecutableElement executableContext; |
2592 TypeInformationParameter(this.variable, this.executableContext); | 2590 TypeInformationParameter(this.variable, this.executableContext); |
2593 String get name => variable.name; | 2591 String get name => variable.name; |
2594 } | 2592 } |
OLD | NEW |