| Index: sdk/lib/_internal/compiler/implementation/ir/ir_unpickler.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/ir/ir_unpickler.dart b/sdk/lib/_internal/compiler/implementation/ir/ir_unpickler.dart
|
| index 3b29e65cd5805142bf6601b405a564cce57b16a2..31d1520c08a2c3207b0526e3292b48b42381c4a0 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/ir/ir_unpickler.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/ir/ir_unpickler.dart
|
| @@ -87,6 +87,11 @@ class Unpickler {
|
| return constantPool.get(elementIndex);
|
| }
|
|
|
| + types.DartType readDartType() {
|
| + int typeIndex = readInt();
|
| + return constantPool.get(typeIndex);
|
| + }
|
| +
|
| Selector readSelector() {
|
| int tag = readByte();
|
| if (tag == Pickles.BACKREFERENCE) {
|
| @@ -143,6 +148,14 @@ class Unpickler {
|
| addExpression(readInvokeStatic());
|
| current = null;
|
| break;
|
| + case Pickles.NODE_INVOKE_METHOD:
|
| + addExpression(readInvokeMethod());
|
| + current = null;
|
| + break;
|
| + case Pickles.NODE_INVOKE_CONSTRUCTOR:
|
| + addExpression(readInvokeConstructor());
|
| + current = null;
|
| + break;
|
| case Pickles.NODE_INVOKE_CONTINUATION:
|
| addExpression(readInvokeContinuation());
|
| current = null;
|
| @@ -221,6 +234,22 @@ class Unpickler {
|
| return new ir.InvokeStatic(functionElement, selector, continuation,
|
| arguments);
|
| }
|
| +
|
| + ir.InvokeMethod readInvokeMethod() {
|
| + ir.Definition receiver = readBackReference();
|
| + Selector selector = readSelector();
|
| + ir.Continuation continuation = readBackReference();
|
| + List<ir.Definition> arguments = readBackReferenceList();
|
| + return new ir.InvokeMethod(receiver, selector, continuation, arguments);
|
| + }
|
| +
|
| + ir.InvokeConstructor readInvokeConstructor() {
|
| + types.GenericType type = readDartType();
|
| + FunctionElement target = readElement();
|
| + ir.Continuation continuation = readBackReference();
|
| + List<ir.Definition> arguments = readBackReferenceList();
|
| + return new ir.InvokeConstructor(type, target, continuation, arguments);
|
| + }
|
|
|
| ir.InvokeContinuation readInvokeContinuation() {
|
| ir.Continuation continuation = readBackReference();
|
|
|