Index: pkg/compiler/lib/src/cps_ir/cps_fragment.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/cps_fragment.dart b/pkg/compiler/lib/src/cps_ir/cps_fragment.dart |
index f30375ab6621941d3b52ea506550553250ba95b5..c84e9a97a48388c784e1e1c2376374d47ffed142 100644 |
--- a/pkg/compiler/lib/src/cps_ir/cps_fragment.dart |
+++ b/pkg/compiler/lib/src/cps_ir/cps_fragment.dart |
@@ -132,11 +132,13 @@ class CpsFragment { |
Selector selector, |
TypeMask mask, |
List<Primitive> arguments, |
- [CallingConvention callingConvention = CallingConvention.Normal]) { |
+ {Primitive interceptor, |
+ CallingConvention callingConvention}) { |
InvokeMethod invoke = |
new InvokeMethod(receiver, selector, mask, arguments, |
sourceInformation: sourceInformation, |
- callingConvention: callingConvention); |
+ callingConvention: callingConvention, |
+ interceptor: interceptor); |
return letPrim(invoke); |
} |
@@ -276,11 +278,15 @@ class CpsFragment { |
/// |
/// The [target] function is destroyed and should not be reused. |
Primitive inlineFunction(FunctionDefinition target, |
- Primitive thisArgument, |
+ Primitive receiver, |
List<Primitive> arguments, |
- {Entity hint}) { |
- if (thisArgument != null) { |
- target.thisParameter.replaceUsesWith(thisArgument); |
+ {Entity hint, |
+ Primitive interceptor}) { |
+ if (interceptor != null) { |
+ target.interceptorParameter.replaceUsesWith(interceptor); |
+ } |
+ if (receiver != null) { |
+ target.receiverParameter.replaceUsesWith(receiver); |
} |
for (int i = 0; i < arguments.length; ++i) { |
target.parameters[i].replaceUsesWith(arguments[i]); |