Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Unified Diff: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart

Issue 1518473002: dart2js: Fix an issue with erroneous for-in. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fix a silly typo in the comment. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
index dfcb86fcdbc38e131c2a6a309e2c3e971934c909..e4fb1fd06211267ee7b437aee5839902d545bc49 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart
@@ -1244,7 +1244,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
MethodElement function,
ast.NodeList arguments,
CallStructure callStructure, _) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
elements.getSelector(node),
arguments.nodes.mapToList(visit));
}
@@ -1643,7 +1643,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ir.Primitive buildLocalNoSuchSetter(LocalElement local, ir.Primitive value) {
Selector selector = new Selector.setter(
new Name(local.name, local.library, isSetter: true));
- return buildStaticNoSuchMethod(selector, [value]);
+ return irBuilder.buildStaticNoSuchMethod(selector, [value]);
}
@override
@@ -1699,13 +1699,13 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
}
ir.Primitive buildStaticNoSuchGetter(Element element) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.getter(new Name(element.name, element.library)),
const <ir.Primitive>[]);
}
ir.Primitive buildStaticNoSuchSetter(Element element, ir.Primitive value) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(new Name(element.name, element.library)),
<ir.Primitive>[value]);
}
@@ -2034,10 +2034,6 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
return irBuilder.buildNonTailThrow(visit(node.expression));
}
- ir.Primitive buildStaticNoSuchMethod(
- Selector selector,
- List<ir.Primitive> arguments);
-
ir.Primitive buildInstanceNoSuchMethod(
Selector selector,
TypeMask mask,
@@ -2055,7 +2051,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.Node rhs, _) {
// TODO(asgerf): What is unresolved? The getter and/or the setter?
// If it was the setter, we must evaluate the right-hand side.
- return buildStaticNoSuchMethod(elements.getSelector(node), []);
+ return irBuilder.buildStaticNoSuchMethod(elements.getSelector(node), []);
}
@override
@@ -2080,7 +2076,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
List<ir.Primitive> arguments = <ir.Primitive>[];
CallStructure callStructure = translateDynamicArguments(
argumentsNode, selector.callStructure, arguments);
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector(selector.kind, selector.memberName, callStructure),
arguments);
}
@@ -2095,7 +2091,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
List<ir.Primitive> arguments = <ir.Primitive>[];
callStructure =
translateDynamicArguments(argumentsNode, callStructure, arguments);
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.call(constructor.memberName, callStructure), arguments);
}
@@ -2103,7 +2099,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ir.Primitive visitUnresolvedGet(
ast.Send node,
Element element, _) {
- return buildStaticNoSuchMethod(elements.getSelector(node), []);
+ return irBuilder.buildStaticNoSuchMethod(elements.getSelector(node), []);
}
@override
@@ -2112,7 +2108,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
Element element,
ast.NodeList arguments,
Selector selector, _) {
- return buildStaticNoSuchMethod(elements.getSelector(node),
+ return irBuilder.buildStaticNoSuchMethod(elements.getSelector(node),
arguments.nodes.mapToList(visit));
}
@@ -2128,7 +2124,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
List<ir.Primitive> arguments = <ir.Primitive>[];
callStructure =
translateDynamicArguments(argumentsNode, callStructure, arguments);
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.call(name, callStructure),
arguments);
}
@@ -2138,7 +2134,8 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.Send node,
Element element,
ast.Node rhs, _) {
- return buildStaticNoSuchMethod(elements.getSelector(node), [visit(rhs)]);
+ return irBuilder.buildStaticNoSuchMethod(elements.getSelector(node),
+ [visit(rhs)]);
}
@override
@@ -2189,7 +2186,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.Node rhs, _) {
InterfaceType type = constant.type;
ClassElement element = type.element;
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(element.memberName),
[visit(rhs)]);
}
@@ -2201,7 +2198,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.Node rhs, _) {
TypedefType type = constant.type;
TypedefElement element = type.element;
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(element.memberName),
[visit(rhs)]);
}
@@ -2211,7 +2208,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.SendSet node,
TypeVariableElement element,
ast.Node rhs, _) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(element.memberName), [visit(rhs)]);
}
@@ -2220,7 +2217,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.SendSet node,
ConstantExpression constant,
ast.Node rhs, _) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(Names.dynamic_), [visit(rhs)]);
}
@@ -2241,7 +2238,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
FieldElement field,
ast.Node rhs, _) {
// TODO(asgerf): Include class name somehow for static class members?
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(field.memberName),
[visit(rhs)]);
}
@@ -2262,7 +2259,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.SendSet node,
LocalElement local,
ast.Node rhs, _) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(new Name(local.name, local.library)),
[visit(rhs)]);
}
@@ -2273,7 +2270,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
MethodElement function,
ast.Node rhs,
_) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(function.memberName),
[visit(rhs)]);
}
@@ -2284,7 +2281,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
GetterElement getter,
ast.Node rhs,
_) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.setter(getter.memberName),
[visit(rhs)]);
}
@@ -2294,7 +2291,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
ast.Send node,
SetterElement setter,
_) {
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.getter(setter.memberName),
[]);
}
@@ -2307,7 +2304,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive>
CallStructure callStructure, _) {
// Translate as a method call.
List<ir.Primitive> arguments = argumentsNode.nodes.mapToList(visit);
- return buildStaticNoSuchMethod(
+ return irBuilder.buildStaticNoSuchMethod(
new Selector.call(setter.memberName, callStructure),
arguments);
}
@@ -2579,6 +2576,7 @@ class GlobalProgramInformation {
}
FunctionElement get throwTypeErrorHelper => _backend.helpers.throwTypeError;
+ Element get throwNoSuchMethod => _backend.helpers.throwNoSuchMethod;
ClassElement get nullClass => _compiler.coreClasses.nullClass;
@@ -3368,20 +3366,6 @@ class JsIrBuilderVisitor extends IrBuilderVisitor {
}
@override
- ir.Primitive buildStaticNoSuchMethod(Selector selector,
- List<ir.Primitive> arguments) {
- Element thrower = backend.helpers.throwNoSuchMethod;
- ir.Primitive receiver = irBuilder.buildStringConstant('');
- ir.Primitive name = irBuilder.buildStringConstant(selector.name);
- ir.Primitive argumentList = irBuilder.buildListLiteral(null, arguments);
- ir.Primitive expectedArgumentNames = irBuilder.buildNullConstant();
- return irBuilder.buildStaticFunctionInvocation(
- thrower,
- new CallStructure.unnamed(4),
- [receiver, name, argumentList, expectedArgumentNames]);
- }
-
- @override
ir.Primitive buildInstanceNoSuchMethod(Selector selector,
TypeMask mask,
List<ir.Primitive> arguments) {

Powered by Google App Engine
This is Rietveld 408576698