| Index: pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
|
| index e4137488cbe3b8b1fb8d7def2fa81e2ccc13f29e..e2536a5d03a7e52b82495a6da2f0d1d2e4eec59c 100644
|
| --- a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
|
| +++ b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
|
| @@ -25,8 +25,8 @@ class InvokeDynamicSpecializer {
|
|
|
| TypeMask computeTypeFromInputTypes(
|
| HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
|
| - return TypeMaskFactory.inferredTypeForSelector(
|
| - instruction.selector, instruction.mask, compiler);
|
| + return TypeMaskFactory.inferredTypeForSelector(instruction.selector,
|
| + instruction.mask, compiler.globalInference.results);
|
| }
|
|
|
| HInstruction tryConvertToBuiltin(
|
| @@ -111,9 +111,9 @@ class IndexSpecializer extends InvokeDynamicSpecializer {
|
| return null;
|
| }
|
| TypeMask receiverType =
|
| - instruction.getDartReceiver(compiler).instructionType;
|
| + instruction.getDartReceiver(closedWorld).instructionType;
|
| TypeMask type = TypeMaskFactory.inferredTypeForSelector(
|
| - instruction.selector, receiverType, compiler);
|
| + instruction.selector, receiverType, compiler.globalInference.results);
|
| return new HIndex(instruction.inputs[1], instruction.inputs[2],
|
| instruction.selector, type);
|
| }
|
| @@ -754,7 +754,7 @@ class CodeUnitAtSpecializer extends InvokeDynamicSpecializer {
|
| HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
|
| // TODO(sra): Implement a builtin HCodeUnitAt instruction and the same index
|
| // bounds checking optimizations as for HIndex.
|
| - HInstruction receiver = instruction.getDartReceiver(compiler);
|
| + HInstruction receiver = instruction.getDartReceiver(closedWorld);
|
| if (receiver.isStringOrNull(closedWorld)) {
|
| // Even if there is no builtin equivalent instruction, we know
|
| // String.codeUnitAt does not have any side effect (other than throwing),
|
| @@ -774,7 +774,7 @@ class RoundSpecializer extends InvokeDynamicSpecializer {
|
|
|
| HInstruction tryConvertToBuiltin(
|
| HInvokeDynamic instruction, Compiler compiler, ClosedWorld closedWorld) {
|
| - HInstruction receiver = instruction.getDartReceiver(compiler);
|
| + HInstruction receiver = instruction.getDartReceiver(closedWorld);
|
| if (receiver.isNumberOrNull(closedWorld)) {
|
| // Even if there is no builtin equivalent instruction, we know the
|
| // instruction does not have any side effect, and that it can be GVN'ed.
|
|
|