| Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| index 0a80f33c9462c523a1ee2d6b638384aef9cf4dd2..9777a243b92204a0657e1e6bc27c671829134800 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
|
| @@ -2062,7 +2062,8 @@ class IrBuilder {
|
| ir.Primitive value = buildForeignCode(
|
| js.js.uncachedExpressionTemplate(code),
|
| arguments,
|
| - behavior);
|
| + behavior,
|
| + type: program.getTypeMaskForNativeFunction(function));
|
| buildReturn(value: value, sourceInformation: source);
|
| }
|
|
|
| @@ -2634,9 +2635,12 @@ class IrBuilder {
|
| ir.Primitive buildForeignCode(js.Template codeTemplate,
|
| List<ir.Primitive> arguments,
|
| NativeBehavior behavior,
|
| - {Element dependency}) {
|
| + {Element dependency,
|
| + TypeMask type}) {
|
| assert(behavior != null);
|
| - TypeMask type = program.getTypeMaskForForeign(behavior);
|
| + if (type == null) {
|
| + type = program.getTypeMaskForForeign(behavior);
|
| + }
|
| ir.Primitive result = addPrimitive(new ir.ForeignCode(
|
| codeTemplate,
|
| type,
|
|
|