Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/ssa/nodes.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/ssa/nodes.dart (revision 17447) |
| +++ sdk/lib/_internal/compiler/implementation/ssa/nodes.dart (working copy) |
| @@ -789,8 +789,9 @@ |
| static const int TYPE_CONVERSION_TYPECODE = 28; |
| static const int BAILOUT_TARGET_TYPECODE = 29; |
| static const int INVOKE_STATIC_TYPECODE = 30; |
| - static const int INVOKE_DYNAMIC_GETTER_TYPECODE = 31; |
|
kasperl
2013/01/23 12:38:04
No more use of 31?
ngeoffray
2013/01/23 12:42:23
No, as well as others. I have updated the constant
|
| static const int INDEX_TYPECODE = 32; |
| + static const int IS_TYPECODE = 33; |
| + static const int INVOKE_DYNAMIC_TYPECODE = 34; |
| HInstruction(this.inputs) : id = idCounter++, usedBy = <HInstruction>[]; |
| @@ -1327,6 +1328,13 @@ |
| // parameter to the call. |
| return inputs.length - 2 == selector.argumentCount; |
| } |
| + |
| + int typeCode() => HInstruction.INVOKE_DYNAMIC_TYPECODE; |
| + bool typeEquals(other) => other is HInvokeDynamic; |
| + bool dataEquals(HInvokeDynamic other) { |
| + return selector == other.selector |
| + && element == other.element; |
| + } |
| } |
| class HInvokeClosure extends HInvokeDynamic { |
| @@ -1390,10 +1398,6 @@ |
| } |
| toString() => 'invoke dynamic getter: $selector'; |
| accept(HVisitor visitor) => visitor.visitInvokeDynamicGetter(this); |
| - |
| - int typeCode() => HInstruction.INVOKE_DYNAMIC_GETTER_TYPECODE; |
| - bool typeEquals(other) => other is HInvokeDynamicGetter; |
| - bool dataEquals(HInvokeDynamicGetter other) => selector == other.selector; |
| } |
| class HInvokeDynamicSetter extends HInvokeDynamicField { |
| @@ -2237,6 +2241,13 @@ |
| accept(HVisitor visitor) => visitor.visitIs(this); |
| toString() => "$expression is $typeExpression"; |
| + |
| + int typeCode() => HInstruction.IS_TYPECODE; |
| + bool typeEquals(HInstruction other) => other is HIs; |
| + bool dataEquals(HIs other) { |
| + return typeExpression == other.typeExpression |
| + && nullOk == other.nullOk; |
| + } |
| } |
| class HTypeConversion extends HCheck { |