Index: pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart |
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart |
index 6cd53ec0796b00f0330b53b464dbde6749c76b60..6fdd0f2558aa3bc313e5f0f9efa714ed6bb7b5a7 100644 |
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart |
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart |
@@ -865,17 +865,22 @@ class ForeignCode extends Node { |
final types.TypeMask type; |
final List<Expression> arguments; |
final native.NativeBehavior nativeBehavior; |
+ final List<bool> nullableArguments; // One 'bit' per argument. |
final Element dependency; |
ForeignCode(this.codeTemplate, this.type, this.arguments, this.nativeBehavior, |
- this.dependency); |
+ this.nullableArguments, this.dependency) { |
+ assert(arguments.length == nullableArguments.length); |
+ } |
} |
class ForeignExpression extends ForeignCode implements Expression { |
- ForeignExpression(js.Template codeTemplate, types.TypeMask type, |
+ ForeignExpression( |
+ js.Template codeTemplate, types.TypeMask type, |
List<Expression> arguments, native.NativeBehavior nativeBehavior, |
+ List<bool> nullableArguments, |
Element dependency) |
- : super(codeTemplate, type, arguments, nativeBehavior, |
+ : super(codeTemplate, type, arguments, nativeBehavior, nullableArguments, |
dependency); |
accept(ExpressionVisitor visitor) { |
@@ -888,10 +893,12 @@ class ForeignExpression extends ForeignCode implements Expression { |
} |
class ForeignStatement extends ForeignCode implements Statement { |
- ForeignStatement(js.Template codeTemplate, types.TypeMask type, |
+ ForeignStatement( |
+ js.Template codeTemplate, types.TypeMask type, |
List<Expression> arguments, native.NativeBehavior nativeBehavior, |
+ List<bool> nullableArguments, |
Element dependency) |
- : super(codeTemplate, type, arguments, nativeBehavior, |
+ : super(codeTemplate, type, arguments, nativeBehavior, nullableArguments, |
dependency); |
accept(StatementVisitor visitor) { |