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

Unified Diff: frog/frogsh

Issue 8662015: fix generic const canonicalization bug (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: presubmit tests Created 9 years, 1 month 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
« no previous file with comments | « no previous file | frog/gen.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/frogsh
diff --git a/frog/frogsh b/frog/frogsh
index aae0e45306011ee2920f49d5807e307fddf3f2bd..4f1c037de8423ac076db7af2489ea6e735d03cb4 100755
--- a/frog/frogsh
+++ b/frog/frogsh
@@ -2254,7 +2254,7 @@ StringBufferImpl.prototype.clear = function() {
}
StringBufferImpl.prototype.toString = function() {
if (this._buffer.length == 0) return "";
- if ($notnull_bool($eq(this._buffer.length, 1))) return $assert_String(this._buffer.$index(0));
+ if (this._buffer.length == 1) return $assert_String(this._buffer.$index(0));
var result = StringBase.concatAll(this._buffer);
this._buffer.clear();
this._buffer.add(result);
@@ -2284,10 +2284,10 @@ StringBase.createFromCharCodes = function(charCodes) {
return String.fromCharCode.apply(null, charCodes);
}
StringBase.join = function(strings, separator) {
- if ($notnull_bool($eq(strings.length, 0))) return '';
+ if (strings.length == 0) return '';
var s = $assert_String(strings.$index(0));
for (var i = 1;
- i < $assert_num(strings.length); i++) {
+ i < strings.length; i++) {
s = s + separator + strings.$index(i);
}
return s;
@@ -2668,10 +2668,30 @@ AbstractLink$T.prototype.is$Link$Node = function(){return this;};
AbstractLink$T.prototype.is$Link$Token = function(){return this;};
AbstractLink$T.prototype.is$Link$Type = function(){return this;};
AbstractLink$T.prototype.is$Iterable = function(){return this;};
+AbstractLink$T.prototype.prepend = function(element) {
+ return new LinkEntry$T(element, this);
+}
AbstractLink$T.prototype.iterator = function() {
var $0;
return (($0 = this.toList().iterator$0()) && $0.is$Iterator$T());
}
+AbstractLink$T.prototype.printOn = function(buffer, separatedBy) {
+ if ($notnull_bool(this.isEmpty())) return;
+ buffer.add(this.get$head() == null ? 'null' : this.get$head());
+ if (separatedBy == null) separatedBy = '';
+ for (var link = this.get$tail();
+ !$notnull_bool(link.isEmpty()); link = link.get$tail()) {
+ buffer.add(separatedBy);
+ buffer.add(link.get$head() == null ? 'null' : link.get$head());
+ }
+}
+AbstractLink$T.prototype.toString = function() {
+ var buffer = new StringBufferImpl("");
+ buffer.add('[ ');
+ this.printOn(buffer, ', ');
+ buffer.add(' ]');
+ return buffer.toString();
+}
// ********** Code for LinkTail **************
function LinkTail() {
// Initializers done
@@ -2800,8 +2820,8 @@ function LinkBuilderImplementation() {
LinkBuilderImplementation.prototype.get$head = function() { return this.head; };
LinkBuilderImplementation.prototype.set$head = function(value) { return this.head = value; };
LinkBuilderImplementation.prototype.toLink = function() {
- if (this.head == null) return const$16/*const EmptyLink<Token>()*/;
- this.lastLink.realTail = const$16/*const EmptyLink<Token>()*/;
+ if (this.head == null) return const$232/*const LinkTail()*/;
+ this.lastLink.realTail = const$232/*const LinkTail()*/;
var link = this.head;
this.lastLink = null;
this.head = null;
@@ -5632,8 +5652,8 @@ ParserError.prototype.toString$0 = function() {
// ********** Code for ElementListener **************
function ElementListener(canceler) {
this.previousIdentifier = null
- this.nodes = const$16/*const EmptyLink<Token>()*/
- this.topLevelElements = const$16/*const EmptyLink<Token>()*/
+ this.nodes = const$202/*const EmptyLink<Node>()*/
+ this.topLevelElements = const$203/*const EmptyLink<Element>()*/
this.canceler = canceler;
// Initializers done
Listener.call(this);
@@ -5934,7 +5954,7 @@ NodeListener.prototype.handleUnaryPrefixExpression = function(token) {
}
NodeListener.prototype.makeNodeList = function(count, beginToken, endToken, delimiter) {
var $0;
- var nodes = (const$16/*const EmptyLink<Token>()*/ && const$16/*const EmptyLink<Token>()*/.is$Link$Node());
+ var nodes = const$202/*const EmptyLink<Node>()*/;
for (; count > 0; --count) {
nodes = (($0 = nodes.prepend(this.popNode())) && $0.is$Link$Node());
}
@@ -6496,7 +6516,7 @@ function Send(receiver, selector, argumentsNode) {
Send.postfix$ctor = function(receiver, selector) {
this.receiver = receiver;
this.selector = selector;
- this.argumentsNode = const$215/*const Postfix()*/;
+ this.argumentsNode = const$219/*const Postfix()*/;
// Initializers done
Expression.call(this);
}
@@ -6504,7 +6524,7 @@ Send.postfix$ctor.prototype = Send.prototype;
Send.prefix$ctor = function(receiver, selector) {
this.receiver = receiver;
this.selector = selector;
- this.argumentsNode = const$214/*const Prefix()*/;
+ this.argumentsNode = const$217/*const Prefix()*/;
// Initializers done
Expression.call(this);
}
@@ -6601,7 +6621,7 @@ $inherits(NodeList, Node);
NodeList.prototype.is$NodeList = function(){return this;};
NodeList.prototype.get$nodes = function() {
var $0;
- return (($0 = this._nodes != null ? this._nodes : const$16/*const EmptyLink<Token>()*/) && $0.is$Link$Node());
+ return (($0 = this._nodes != null ? this._nodes : const$202/*const EmptyLink<Node>()*/) && $0.is$Link$Node());
}
NodeList.prototype.accept = function(visitor) {
return visitor.visitNodeList(this);
@@ -7269,7 +7289,7 @@ Unparser.prototype.visitVariableDefinitions = function(node) {
}
this.sb.add(' ');
this.visit(node.definitions);
- if ($notnull_bool($eq(node.endToken.get$value(), const$212/*const SourceString(';')*/))) {
+ if ($notnull_bool($eq(node.endToken.get$value(), const$215/*const SourceString(';')*/))) {
this.add((($0 = node.endToken.get$value()) && $0.is$SourceString()));
}
}
@@ -7454,7 +7474,7 @@ VariableElement.prototype.computeType$2 = function($0, $1) {
// ********** Code for ForeignElement **************
function ForeignElement(name) {
// Initializers done
- Element.call(this, name, const$208, null);
+ Element.call(this, name, const$211, null);
}
$inherits(ForeignElement, Element);
ForeignElement.prototype.computeType = function(compiler, types) {
@@ -7466,7 +7486,7 @@ ForeignElement.prototype.computeType$2 = function($0, $1) {
// ********** Code for FunctionElement **************
function FunctionElement(name) {
// Initializers done
- Element.call(this, name, const$205, null);
+ Element.call(this, name, const$208, null);
}
$inherits(FunctionElement, Element);
FunctionElement.prototype.is$FunctionElement = function(){return this;};
@@ -7492,10 +7512,10 @@ FunctionElement.prototype.computeType = function(compiler, types) {
FunctionElement.prototype.computeType$2 = FunctionElement.prototype.computeType;
// ********** Code for ClassElement **************
function ClassElement(name) {
- this.interfaces = const$16/*const EmptyLink<Token>()*/
+ this.interfaces = const$205/*const EmptyLink<Type>()*/
this.isResolved = false
// Initializers done
- Element.call(this, name, const$203, null);
+ Element.call(this, name, const$206, null);
}
$inherits(ClassElement, Element);
ClassElement.prototype.is$ClassElement = function(){return this;};
@@ -7783,7 +7803,7 @@ SsaBuilder.prototype.unquote = function(literal) {
return new StringWrapper(str.substring(quotes + 1, str.length - quotes));
}
SsaBuilder.prototype.visitLogicalAndOr = function(node, op) {
- var isAnd = $assert_bool(($eq(const$275/*const SourceString("&&")*/, op.get$source())));
+ var isAnd = $assert_bool(($eq(const$280/*const SourceString("&&")*/, op.get$source())));
this.visit(node.receiver);
var boolifiedLeft = this.popBoolified();
var condition;
@@ -7812,7 +7832,7 @@ SsaBuilder.prototype.visitLogicalAndOr = function(node, op) {
this.stack.add(result);
}
SsaBuilder.prototype.visitLogicalNot = function(node) {
- $assert(node.argumentsNode === const$214/*const Prefix()*/, "node.argumentsNode === const Prefix()", "builder.dart", 369, 12);
+ $assert(node.argumentsNode === const$217/*const Prefix()*/, "node.argumentsNode === const Prefix()", "builder.dart", 369, 12);
this.visit(node.receiver);
var not = new HNot(this.popBoolified());
this.push(not);
@@ -7825,37 +7845,37 @@ SsaBuilder.prototype.visitBinary = function(node, op, element) {
this.visit(node.argumentsNode);
var right = this.pop();
var left = this.pop();
- if ($notnull_bool($eq(const$278/*const SourceString("+")*/, op.get$source()))) {
+ if ($notnull_bool($eq(const$283/*const SourceString("+")*/, op.get$source()))) {
this.push(new HAdd(element, [left, right]));
}
- else if ($notnull_bool($eq(const$279/*const SourceString("-")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$284/*const SourceString("-")*/, op.get$source()))) {
this.push(new HSubtract(element, [left, right]));
}
- else if ($notnull_bool($eq(const$280/*const SourceString("*")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$285/*const SourceString("*")*/, op.get$source()))) {
this.push(new HMultiply(element, [left, right]));
}
- else if ($notnull_bool($eq(const$281/*const SourceString("/")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$286/*const SourceString("/")*/, op.get$source()))) {
this.push(new HDivide(element, [left, right]));
}
- else if ($notnull_bool($eq(const$282/*const SourceString("~/")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$287/*const SourceString("~/")*/, op.get$source()))) {
this.push(new HTruncatingDivide(element, [left, right]));
}
- else if ($notnull_bool($eq(const$283/*const SourceString("%")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$288/*const SourceString("%")*/, op.get$source()))) {
this.push(new HModulo(element, [left, right]));
}
- else if ($notnull_bool($eq(const$284/*const SourceString("==")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$289/*const SourceString("==")*/, op.get$source()))) {
this.push(new HEquals(element, [left, right]));
}
- else if ($notnull_bool($eq(const$285/*const SourceString("<")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$290/*const SourceString("<")*/, op.get$source()))) {
this.push(new HLess(element, [left, right]));
}
- else if ($notnull_bool($eq(const$286/*const SourceString("<=")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$291/*const SourceString("<=")*/, op.get$source()))) {
this.push(new HLessEqual(element, [left, right]));
}
- else if ($notnull_bool($eq(const$287/*const SourceString(">")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$292/*const SourceString(">")*/, op.get$source()))) {
this.push(new HGreater(element, [left, right]));
}
- else if ($notnull_bool($eq(const$288/*const SourceString(">=")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$293/*const SourceString(">=")*/, op.get$source()))) {
this.push(new HGreaterEqual(element, [left, right]));
}
}
@@ -7864,13 +7884,13 @@ SsaBuilder.prototype.visitSend = function(node) {
var element = (($0 = this.elements.$index(node)) && $0.is$Element());
if ((node.selector instanceof Operator)) {
var op = (($0 = node.selector) && $0.is$Operator());
- if ($notnull_bool($eq(const$275/*const SourceString("&&")*/, op.get$source())) || $notnull_bool($eq(const$276/*const SourceString("||")*/, op.get$source()))) {
+ if ($notnull_bool($eq(const$280/*const SourceString("&&")*/, op.get$source())) || $notnull_bool($eq(const$281/*const SourceString("||")*/, op.get$source()))) {
this.visitLogicalAndOr(node, op);
}
- else if ($notnull_bool($eq(const$277/*const SourceString("!")*/, op.get$source()))) {
+ else if ($notnull_bool($eq(const$282/*const SourceString("!")*/, op.get$source()))) {
this.visitLogicalNot(node);
}
- else if (node.argumentsNode === const$214/*const Prefix()*/ || node.argumentsNode === const$215/*const Postfix()*/) {
+ else if (node.argumentsNode === const$217/*const Prefix()*/ || node.argumentsNode === const$219/*const Postfix()*/) {
this.visitUnary(node, op, element);
}
else {
@@ -7885,7 +7905,7 @@ SsaBuilder.prototype.visitSend = function(node) {
}
else {
var link = node.get$arguments();
- if (element.kind === const$208/*ElementKind.FOREIGN*/) {
+ if (element.kind === const$211/*ElementKind.FOREIGN*/) {
link = (($0 = link.get$tail()) && $0.is$Link$Node());
}
var arguments = [];
@@ -7893,7 +7913,7 @@ SsaBuilder.prototype.visitSend = function(node) {
this.visit((($0 = link.get$head()) && $0.is$Node()));
arguments.add$1(this.pop());
}
- if (element.kind === const$208/*ElementKind.FOREIGN*/) {
+ if (element.kind === const$211/*ElementKind.FOREIGN*/) {
var literal = (($0 = node.get$arguments().get$head()) && $0.is$LiteralString());
this.compiler.ensure((literal instanceof LiteralString));
this.push(new HInvokeForeign(element, arguments, this.unquote(literal)));
@@ -8071,7 +8091,7 @@ SsaCodeGenerator.prototype.temporary = function(instruction) {
SsaCodeGenerator.prototype.local = function(local) {
var $0, $1;
var element = local.element;
- if (element != null && $eq(element.kind, const$224/*ElementKind.PARAMETER*/)) {
+ if (element != null && $eq(element.kind, const$228/*ElementKind.PARAMETER*/)) {
return $assert_String(this.parameterNames.$index(element));
}
var id = local.id;
@@ -8347,7 +8367,7 @@ SsaCodeGenerator.prototype.visitTypeGuard = function(node) {
var $0;
var name;
if ($notnull_bool(node.isNumber())) {
- name = const$305/*const SourceString('guard\$num')*/;
+ name = const$310/*const SourceString('guard\$num')*/;
}
else {
unreachable();
@@ -8383,9 +8403,9 @@ function JsNames() {}
JsNames.get$reserved = function() {
if ($globals.JsNames__reserved == null) {
$globals.JsNames__reserved = new HashSetImplementation();
- $globals.JsNames__reserved.addAll(const$299/*JsNames.reservedPropertySymbols*/);
- $globals.JsNames__reserved.addAll(const$301/*JsNames.reservedGlobalSymbols*/);
- $globals.JsNames__reserved.addAll(const$303/*JsNames.javaScriptKeywords*/);
+ $globals.JsNames__reserved.addAll(const$304/*JsNames.reservedPropertySymbols*/);
+ $globals.JsNames__reserved.addAll(const$306/*JsNames.reservedGlobalSymbols*/);
+ $globals.JsNames__reserved.addAll(const$308/*JsNames.javaScriptKeywords*/);
}
return $globals.JsNames__reserved;
}
@@ -10422,7 +10442,7 @@ SsaPhiEliminator.prototype.visitPhi = function(phi, loads) {
local = (($0 = this.namedLocals.putIfAbsent(phi.element, (function () {
var local0 = new HLocal(phi.element);
$this.entry.addAtEntry(local0);
- if (phi.element.kind === const$224/*ElementKind.PARAMETER*/) {
+ if (phi.element.kind === const$228/*ElementKind.PARAMETER*/) {
$this.entry.detach(local0);
}
return local0;
@@ -11079,15 +11099,15 @@ Compiler.prototype.run = function() {
Compiler.prototype.scanCoreLibrary = function() {
var fileName = join([this.get$legDirectory(), 'lib', 'core.dart']);
this.scanner.scan(this.readScript(fileName));
- var element = new ForeignElement(const$207/*const SourceString('JS')*/);
+ var element = new ForeignElement(const$210/*const SourceString('JS')*/);
this.universe.define(element);
}
Compiler.prototype.runCompiler = function() {
var $0;
this.scanCoreLibrary();
this.scanner.scan(this.script);
- var element = this.universe.find(const$210/*Compiler.MAIN*/);
- if (element == null) this.cancel(('Could not find ' + const$210/*Compiler.MAIN*/));
+ var element = this.universe.find(const$213/*Compiler.MAIN*/);
+ if (element == null) this.cancel(('Could not find ' + const$213/*Compiler.MAIN*/));
this.compileMethod(element);
while (!this.worklist.isEmpty()) {
this.compileMethod((($0 = this.worklist.removeLast()) && $0.is$Element()));
@@ -11240,20 +11260,20 @@ ResolverVisitor.prototype.visit = function(node) {
ResolverVisitor.prototype.visitIdentifier = function(node) {
var element = this.context.lookup(node.get$source());
if (element == null) {
- this.error(node, const$217/*MessageKind.CANNOT_RESOLVE*/, [node]);
+ this.error(node, const$221/*MessageKind.CANNOT_RESOLVE*/, [node]);
}
return this.useElement(node, element);
}
ResolverVisitor.prototype.visitTypeAnnotation = function(node) {
var name = node.typeName;
- if ($notnull_bool($eq(name.get$source(), const$219/*const SourceString('var')*/))) return null;
+ if ($notnull_bool($eq(name.get$source(), const$223/*const SourceString('var')*/))) return null;
if ($notnull_bool($eq(name.get$source(), const$6/*const SourceString('void')*/))) return null;
var element = this.context.lookup(name.get$source());
if (element == null) {
- this.warning(node, const$220/*MessageKind.CANNOT_RESOLVE_TYPE*/, [name]);
+ this.warning(node, const$224/*MessageKind.CANNOT_RESOLVE_TYPE*/, [name]);
}
- else if (element.kind !== const$203/*ElementKind.CLASS*/) {
- this.warning(node, const$222/*MessageKind.NOT_A_TYPE*/, [name]);
+ else if (element.kind !== const$206/*ElementKind.CLASS*/) {
+ this.warning(node, const$226/*MessageKind.NOT_A_TYPE*/, [name]);
}
else {
var cls = (element && element.is$ClassElement());
@@ -11347,17 +11367,17 @@ FullResolverVisitor.prototype.visitIf = function(node) {
this.visit(node.elsePart);
}
FullResolverVisitor.prototype.potentiallyMapOperatorToMethodName = function(name) {
- if ($notnull_bool($eq(name, const$228/*const SourceString('+')*/))) return const$229/*const SourceString('add')*/;
- if ($notnull_bool($eq(name, const$230/*const SourceString('-')*/))) return const$231/*const SourceString('sub')*/;
- if ($notnull_bool($eq(name, const$232/*const SourceString('*')*/))) return const$233/*const SourceString('mul')*/;
- if ($notnull_bool($eq(name, const$234/*const SourceString('/')*/))) return const$235/*const SourceString('div')*/;
- if ($notnull_bool($eq(name, const$236/*const SourceString('~/')*/))) return const$237/*const SourceString('tdiv')*/;
- if ($notnull_bool($eq(name, const$238/*const SourceString('%')*/))) return const$239/*const SourceString('mod')*/;
- if ($notnull_bool($eq(name, const$240/*const SourceString('==')*/))) return const$241/*const SourceString('eq')*/;
- if ($notnull_bool($eq(name, const$242/*const SourceString('<')*/))) return const$243/*const SourceString('lt')*/;
- if ($notnull_bool($eq(name, const$244/*const SourceString('<=')*/))) return const$245/*const SourceString('le')*/;
- if ($notnull_bool($eq(name, const$246/*const SourceString('>')*/))) return const$247/*const SourceString('gt')*/;
- if ($notnull_bool($eq(name, const$248/*const SourceString('>=')*/))) return const$249/*const SourceString('ge')*/;
+ if ($notnull_bool($eq(name, const$233/*const SourceString('+')*/))) return const$234/*const SourceString('add')*/;
+ if ($notnull_bool($eq(name, const$235/*const SourceString('-')*/))) return const$236/*const SourceString('sub')*/;
+ if ($notnull_bool($eq(name, const$237/*const SourceString('*')*/))) return const$238/*const SourceString('mul')*/;
+ if ($notnull_bool($eq(name, const$239/*const SourceString('/')*/))) return const$240/*const SourceString('div')*/;
+ if ($notnull_bool($eq(name, const$241/*const SourceString('~/')*/))) return const$242/*const SourceString('tdiv')*/;
+ if ($notnull_bool($eq(name, const$243/*const SourceString('%')*/))) return const$244/*const SourceString('mod')*/;
+ if ($notnull_bool($eq(name, const$245/*const SourceString('==')*/))) return const$246/*const SourceString('eq')*/;
+ if ($notnull_bool($eq(name, const$247/*const SourceString('<')*/))) return const$248/*const SourceString('lt')*/;
+ if ($notnull_bool($eq(name, const$249/*const SourceString('<=')*/))) return const$250/*const SourceString('le')*/;
+ if ($notnull_bool($eq(name, const$251/*const SourceString('>')*/))) return const$252/*const SourceString('gt')*/;
+ if ($notnull_bool($eq(name, const$253/*const SourceString('>=')*/))) return const$254/*const SourceString('ge')*/;
return name;
}
FullResolverVisitor.prototype.visitSend = function(node) {
@@ -11369,8 +11389,8 @@ FullResolverVisitor.prototype.visitSend = function(node) {
}
var name = this.potentiallyMapOperatorToMethodName(identifier.get$source());
var target = this.context.lookup(name);
- if (target == null && !(($notnull_bool($eq(name, const$250/*const SourceString('&&')*/)) || $notnull_bool($eq(name, const$251/*const SourceString('||')*/)) || $notnull_bool($eq(name, const$252/*const SourceString('!')*/))))) {
- this.error(node, const$217/*MessageKind.CANNOT_RESOLVE*/, [name]);
+ if (target == null && !(($notnull_bool($eq(name, const$255/*const SourceString('&&')*/)) || $notnull_bool($eq(name, const$256/*const SourceString('||')*/)) || $notnull_bool($eq(name, const$257/*const SourceString('!')*/))))) {
+ this.error(node, const$221/*MessageKind.CANNOT_RESOLVE*/, [name]);
}
this.visit(node.argumentsNode);
return this.useElement(node, target);
@@ -11384,7 +11404,7 @@ FullResolverVisitor.prototype.visitSendSet = function(node) {
}
var target = this.context.lookup(selector.get$source());
if (target == null) {
- this.error(node, const$217/*MessageKind.CANNOT_RESOLVE*/, [node]);
+ this.error(node, const$221/*MessageKind.CANNOT_RESOLVE*/, [node]);
}
this.visit(node.argumentsNode);
return this.useElement(node, target);
@@ -11422,7 +11442,7 @@ FullResolverVisitor.prototype.visitThrow = function(node) {
}
FullResolverVisitor.prototype.visitVariableDefinitions = function(node) {
this.visit(node.type);
- var visitor = new VariableDefinitionsVisitor(node, this, const$253/*ElementKind.VARIABLE*/);
+ var visitor = new VariableDefinitionsVisitor(node, this, const$258/*ElementKind.VARIABLE*/);
visitor.visit(node.definitions);
}
// ********** Code for ClassResolverVisitor **************
@@ -11450,10 +11470,10 @@ ClassResolverVisitor.prototype.visitTypeAnnotation = function(node) {
var name = node.typeName;
var element = this.context.lookup(name.get$source());
if (element == null) {
- this.compiler.cancel(new ResolutionError(const$220/*MessageKind.CANNOT_RESOLVE_TYPE*/, [name]).toString());
+ this.compiler.cancel(new ResolutionError(const$224/*MessageKind.CANNOT_RESOLVE_TYPE*/, [name]).toString());
}
- else if (element.kind !== const$203/*ElementKind.CLASS*/) {
- this.compiler.cancel(new ResolutionError(const$222/*MessageKind.NOT_A_TYPE*/, [name]).toString());
+ else if (element.kind !== const$206/*ElementKind.CLASS*/) {
+ this.compiler.cancel(new ResolutionError(const$226/*MessageKind.NOT_A_TYPE*/, [name]).toString());
}
else {
this.compiler.resolver.toResolve.add(element);
@@ -11506,7 +11526,7 @@ VariableDefinitionsVisitor.prototype.visitNodeList = function(node) {
var element = new VariableElement((($0 = link.get$head()) && $0.is$Node()), this.definitions.type, this.kind, name, this.resolver.context.enclosingElement);
var existing = this.resolver.defineElement((($0 = link.get$head()) && $0.is$Node()), element);
if ($ne(existing, element)) {
- this.resolver.error(node, const$226/*MessageKind.DUPLICATE_DEFINITION*/, [link.get$head()]);
+ this.resolver.error(node, const$230/*MessageKind.DUPLICATE_DEFINITION*/, [link.get$head()]);
}
}
}
@@ -11533,7 +11553,7 @@ ParametersVisitor.prototype.visitNodeList = function(node) {
}
ParametersVisitor.prototype.visitVariableDefinitions = function(node) {
this.resolver.visit(node.type);
- var visitor = new VariableDefinitionsVisitor(node, this.resolver, const$224/*ElementKind.PARAMETER*/);
+ var visitor = new VariableDefinitionsVisitor(node, this.resolver, const$228/*ElementKind.PARAMETER*/);
visitor.visit(node.definitions);
return this.resolver.mapping.$index(node.definitions.get$nodes().get$head());
}
@@ -11550,7 +11570,7 @@ function Scope(parent) {
}
Scope.top$ctor = function() {
this.parent = null;
- this.elements = const$216/*const {}*/;
+ this.elements = const$220/*const {}*/;
this.enclosingElement = null;
// Initializers done
}
@@ -11739,7 +11759,7 @@ TypeCheckerVisitor.prototype.reportTypeWarning = function(node, kind, arguments)
TypeCheckerVisitor.prototype.nonVoidType = function(node) {
var type = this.type(node);
if ($eq(type, this.types.voidType)) {
- this.reportTypeWarning(node, const$268/*MessageKind.VOID_EXPRESSION*/, const$15/*const []*/);
+ this.reportTypeWarning(node, const$273/*MessageKind.VOID_EXPRESSION*/, const$15/*const []*/);
}
return type;
}
@@ -11757,7 +11777,7 @@ TypeCheckerVisitor.prototype.get$type = function() {
}
TypeCheckerVisitor.prototype.checkAssignable = function(node, s, t) {
if (!$notnull_bool(this.types.isAssignable(s, t))) {
- this.reportTypeWarning(node, const$261/*MessageKind.NOT_ASSIGNABLE*/, [s, t]);
+ this.reportTypeWarning(node, const$266/*MessageKind.NOT_ASSIGNABLE*/, [s, t]);
}
}
TypeCheckerVisitor.prototype.visitBlock = function(node) {
@@ -11798,7 +11818,7 @@ TypeCheckerVisitor.prototype.visitSend = function(node) {
var selector = (($0 = node.selector) && $0.is$Identifier());
if (target != null) {
var name = selector.get$source();
- if ($notnull_bool($eq(name, const$228/*const SourceString('+')*/)) || $notnull_bool($eq(name, const$265/*const SourceString('=')*/)) || $notnull_bool($eq(name, const$230/*const SourceString('-')*/)) || $notnull_bool($eq(name, const$232/*const SourceString('*')*/)) || $notnull_bool($eq(name, const$234/*const SourceString('/')*/)) || $notnull_bool($eq(name, const$242/*const SourceString('<')*/)) || $notnull_bool($eq(name, const$236/*const SourceString('~/')*/))) {
+ if ($notnull_bool($eq(name, const$233/*const SourceString('+')*/)) || $notnull_bool($eq(name, const$270/*const SourceString('=')*/)) || $notnull_bool($eq(name, const$235/*const SourceString('-')*/)) || $notnull_bool($eq(name, const$237/*const SourceString('*')*/)) || $notnull_bool($eq(name, const$239/*const SourceString('/')*/)) || $notnull_bool($eq(name, const$247/*const SourceString('<')*/)) || $notnull_bool($eq(name, const$241/*const SourceString('~/')*/))) {
return this.types.dynamicType;
}
var targetType = target.computeType$2(this.compiler, this.types);
@@ -11878,14 +11898,14 @@ TypeCheckerVisitor.prototype.visitReturn = function(node) {
if (expression != null) {
var expressionType = this.type(expression);
if (isVoidFunction && !$notnull_bool(this.types.isAssignable(expressionType, this.types.voidType))) {
- this.reportTypeWarning(expression, const$259/*MessageKind.RETURN_VALUE_IN_VOID*/, const$15/*const []*/);
+ this.reportTypeWarning(expression, const$264/*MessageKind.RETURN_VALUE_IN_VOID*/, const$15/*const []*/);
}
else {
this.checkAssignable(expression, expressionType, this.expectedReturnType);
}
}
else if (!$notnull_bool(this.types.isAssignable(this.expectedReturnType, this.types.voidType))) {
- this.reportTypeWarning(node, const$263/*MessageKind.RETURN_NOTHING*/, [this.expectedReturnType]);
+ this.reportTypeWarning(node, const$268/*MessageKind.RETURN_NOTHING*/, [this.expectedReturnType]);
}
return null;
}
@@ -11904,7 +11924,7 @@ TypeCheckerVisitor.prototype.visitVariableDefinitions = function(node) {
var $0;
var type = this.typeWithDefault(node.type, this.types.dynamicType);
if ($eq(type, this.types.voidType)) {
- this.reportTypeWarning(node.type, const$266/*MessageKind.VOID_VARIABLE*/, const$15/*const []*/);
+ this.reportTypeWarning(node.type, const$271/*MessageKind.VOID_VARIABLE*/, const$15/*const []*/);
type = this.types.dynamicType;
}
for (var link = node.definitions.get$nodes();
@@ -12000,7 +12020,7 @@ ResolutionWarning.prototype.toString$0 = function() {
};
// ********** Code for top level **************
function unreachable() {
- $throw(const$270/*const Exception("Internal Error (Leg): UNREACHABLE")*/);
+ $throw(const$275/*const Exception("Internal Error (Leg): UNREACHABLE")*/);
}
// ********** Library frog_leg **************
// ********** Code for WorldCompiler **************
@@ -12346,11 +12366,12 @@ WorldGenerator.prototype.globalForStaticField = function(field, fieldValue, depe
}
WorldGenerator.prototype.globalForConst = function(exp, dependencies) {
var $0;
- var code = exp.canonicalCode;
- if (!this.globals.containsKey(code)) {
- this.globals.$setindex(code, GlobalValue.GlobalValue$fromConst$factory(this.globals.get$length(), exp, dependencies));
+ var key = exp.type.get$jsname() + ':' + exp.canonicalCode;
+ if (!this.globals.containsKey(key)) {
+ this.globals.$setindex(key, GlobalValue.GlobalValue$fromConst$factory(this.globals.get$length(), exp, dependencies));
}
- return (($0 = this.globals.$index(code)) && $0.is$GlobalValue());
+ $assert($eq(this.globals.$index(key).get$type(), exp.type), "globals[key].type == exp.type", "gen.dart", 121, 12);
+ return (($0 = this.globals.$index(key)) && $0.is$GlobalValue());
}
WorldGenerator.prototype.writeTypes = function(lib) {
var $0;
@@ -12890,7 +12911,7 @@ MethodGenerator.prototype.writeDefinition = function(defWriter, lambda) {
defWriter.writeln('var \$this = this; // closure support');
}
if (this._usedTemps.get$length() > 0 || this._freeTemps.length > 0) {
- $assert(this._usedTemps.get$length() == 0, "_usedTemps.length == 0", "gen.dart", 800, 14);
+ $assert(this._usedTemps.get$length() == 0, "_usedTemps.length == 0", "gen.dart", 803, 14);
this._freeTemps.addAll(this._usedTemps);
this._freeTemps.sort((function (x, y) {
return x.compareTo$1(y);
@@ -13397,7 +13418,7 @@ MethodGenerator.prototype.visitForInStatement = function(node) {
return false;
}
MethodGenerator.prototype._genToDartException = function(ex, node) {
- var types = const$418/*const [
+ var types = const$423/*const [
'NullPointerException', 'ObjectNotClosureException',
'NoSuchMethodException', 'StackOverflowException']*/;
var target = new Value($globals.world.varType, 'this', node.span, true);
@@ -14072,7 +14093,7 @@ MethodGenerator.prototype._isUnaryIncrement = function(item) {
MethodGenerator.prototype.visitLiteralExpression = function(node) {
var $0;
var type = node.type.type;
- $assert($ne(type, null), "type != null", "gen.dart", 2235, 12);
+ $assert($ne(type, null), "type != null", "gen.dart", 2238, 12);
if (!!(($0 = node.value) && $0.is$List)) {
var items = [];
var $list = node.value;
@@ -21369,6 +21390,7 @@ function ConcreteType(name, genericType, typeArguments, typeArgsInOrder) {
this.typeArgsInOrder = typeArgsInOrder;
this.constructors = $map([]);
this.members = $map([]);
+ this._resolvedMembers = $map([]);
this.factories = new FactoryMap();
// Initializers done
lang_Type.call(this, name);
@@ -21499,17 +21521,35 @@ ConcreteType.prototype.getMember = function(memberName) {
return this._getMemberInParents(memberName);
}
ConcreteType.prototype.resolveMember = function(memberName) {
- var mem = this.getMember(memberName);
- if ($notnull_bool(mem == null)) return null;
- var ret = new MemberSet((mem && mem.is$Member()), false);
- if ($notnull_bool(mem.get$isStatic())) return (ret && ret.is$MemberSet());
- var $list = this.genericType.get$subtypes();
- for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) {
- var t = $i.next$0();
- var m = t.get$members().$index(memberName);
- if ($notnull_bool($ne(m, null))) ret.add$1(m);
- }
- return (ret && ret.is$MemberSet());
+ var $0;
+ var ret = (($0 = this._resolvedMembers.$index(memberName)) && $0.is$MemberSet());
+ if (ret != null) return ret;
+ var member = this.getMember(memberName);
+ if (member == null) {
+ return null;
+ }
+ ret = new MemberSet(member, false);
+ this._resolvedMembers.$setindex(memberName, ret);
+ if ($notnull_bool(member.get$isStatic())) {
+ return ret;
+ }
+ else {
+ var $list = this.genericType.get$subtypes();
+ for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) {
+ var t = $i.next$0();
+ if (!$notnull_bool(this.get$isClass()) && $notnull_bool(t.get$isClass())) {
+ var m = t.getMember$1(memberName);
+ if ($notnull_bool($ne(m, null)) && ret.members.indexOf(m) == -1) {
+ ret.add((m && m.is$Member()));
+ }
+ }
+ else {
+ var m = t.get$members().$index(memberName);
+ if ($notnull_bool($ne(m, null))) ret.add((m && m.is$Member()));
+ }
+ }
+ return ret;
+ }
}
ConcreteType.prototype.resolveType = function(node, isRequired) {
var ret = this.genericType.resolveType(node, isRequired);
@@ -21584,7 +21624,7 @@ DefinedType.prototype.set$isUsed = function(value) { return this.isUsed = value;
DefinedType.prototype.get$isNativeType = function() { return this.isNativeType; };
DefinedType.prototype.set$isNativeType = function(value) { return this.isNativeType = value; };
DefinedType.prototype.setDefinition = function(def) {
- $assert(this.definition == null, "definition == null", "type.dart", 705, 12);
+ $assert(this.definition == null, "definition == null", "type.dart", 728, 12);
this.definition = def;
if ((this.definition instanceof TypeDefinition) && $notnull_bool($ne(this.definition.get$nativeType(), null))) {
this.isNativeType = true;
@@ -21697,7 +21737,7 @@ DefinedType.prototype._resolveInterfaces = function(types) {
return (interfaces && interfaces.is$List$Type());
}
DefinedType.prototype.addDirectSubtype = function(type) {
- $assert(this._subtypes == null, "_subtypes == null", "type.dart", 826, 12);
+ $assert(this._subtypes == null, "_subtypes == null", "type.dart", 849, 12);
this.directSubtypes.add(type);
}
DefinedType.prototype.get$subtypes = function() {
@@ -22077,7 +22117,7 @@ DefinedType.prototype.resolveTypeParams = function(inType) {
return this;
}
DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) {
- $assert(this.get$isGeneric(), "isGeneric", "type.dart", 1258, 12);
+ $assert(this.get$isGeneric(), "isGeneric", "type.dart", 1281, 12);
var names = [this.name];
var typeMap = $map([]);
for (var i = 0;
@@ -22095,7 +22135,7 @@ DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) {
return (ret && ret.is$lang_Type());
}
DefinedType.prototype.getCallStub = function(args) {
- $assert(this.get$isFunction(), "isFunction", "type.dart", 1278, 12);
+ $assert(this.get$isFunction(), "isFunction", "type.dart", 1301, 12);
var name = _getCallStubName('call', args);
if (this.varStubs == null) this.varStubs = $map([]);
var stub = this.varStubs.$index(name);
@@ -23645,83 +23685,88 @@ var const$12 = new StringWrapper('String')/*const SourceString('String')*/;
var const$14 = new IllegalAccessException()/*const IllegalAccessException()*/;
var const$15 = ImmutableList.ImmutableList$from$factory([])/*const []*/;
var const$16 = new LinkTail()/*const EmptyLink<Token>()*/;
-var const$203 = new ElementKind('class')/*const ElementKind('class')*/;
-var const$205 = new ElementKind('function')/*const ElementKind('function')*/;
-var const$207 = new StringWrapper('JS')/*const SourceString('JS')*/;
-var const$208 = new ElementKind('foreign')/*const ElementKind('foreign')*/;
-var const$210 = new StringWrapper('main')/*const SourceString('main')*/;
-var const$212 = new StringWrapper(';')/*const SourceString(';')*/;
-var const$213 = new NodeList()/*const Prefix()*/;
-var const$214 = new Prefix()/*const Prefix()*/;
-var const$215 = new Postfix()/*const Postfix()*/;
-var const$216 = new ImmutableMap([])/*const {}*/;
-var const$217 = new MessageKind('cannot resolve #{1}')/*const MessageKind(
+var const$202 = new LinkTail()/*const EmptyLink<Node>()*/;
+var const$203 = new LinkTail()/*const EmptyLink<Element>()*/;
+var const$205 = new LinkTail()/*const EmptyLink<Type>()*/;
+var const$206 = new ElementKind('class')/*const ElementKind('class')*/;
+var const$208 = new ElementKind('function')/*const ElementKind('function')*/;
+var const$210 = new StringWrapper('JS')/*const SourceString('JS')*/;
+var const$211 = new ElementKind('foreign')/*const ElementKind('foreign')*/;
+var const$213 = new StringWrapper('main')/*const SourceString('main')*/;
+var const$215 = new StringWrapper(';')/*const SourceString(';')*/;
+var const$216 = new NodeList()/*const Prefix()*/;
+var const$217 = new Prefix()/*const Prefix()*/;
+var const$218 = new NodeList()/*const Postfix()*/;
+var const$219 = new Postfix()/*const Postfix()*/;
+var const$220 = new ImmutableMap([])/*const {}*/;
+var const$221 = new MessageKind('cannot resolve #{1}')/*const MessageKind(
'cannot resolve #{1}')*/;
-var const$219 = new StringWrapper('var')/*const SourceString('var')*/;
-var const$220 = new MessageKind('cannot resolve type #{1}')/*const MessageKind(
+var const$223 = new StringWrapper('var')/*const SourceString('var')*/;
+var const$224 = new MessageKind('cannot resolve type #{1}')/*const MessageKind(
'cannot resolve type #{1}')*/;
-var const$222 = new MessageKind('#{1} is not a type')/*const MessageKind(
+var const$226 = new MessageKind('#{1} is not a type')/*const MessageKind(
'#{1} is not a type')*/;
-var const$224 = new ElementKind('parameter')/*const ElementKind('parameter')*/;
-var const$226 = new MessageKind('duplicate definition of #{1}')/*const MessageKind(
+var const$228 = new ElementKind('parameter')/*const ElementKind('parameter')*/;
+var const$230 = new MessageKind('duplicate definition of #{1}')/*const MessageKind(
'duplicate definition of #{1}')*/;
-var const$228 = new StringWrapper('+')/*const SourceString('+')*/;
-var const$229 = new StringWrapper('add')/*const SourceString('add')*/;
-var const$230 = new StringWrapper('-')/*const SourceString('-')*/;
-var const$231 = new StringWrapper('sub')/*const SourceString('sub')*/;
-var const$232 = new StringWrapper('*')/*const SourceString('*')*/;
-var const$233 = new StringWrapper('mul')/*const SourceString('mul')*/;
-var const$234 = new StringWrapper('/')/*const SourceString('/')*/;
-var const$235 = new StringWrapper('div')/*const SourceString('div')*/;
-var const$236 = new StringWrapper('~/')/*const SourceString('~/')*/;
-var const$237 = new StringWrapper('tdiv')/*const SourceString('tdiv')*/;
-var const$238 = new StringWrapper('%')/*const SourceString('%')*/;
-var const$239 = new StringWrapper('mod')/*const SourceString('mod')*/;
-var const$240 = new StringWrapper('==')/*const SourceString('==')*/;
-var const$241 = new StringWrapper('eq')/*const SourceString('eq')*/;
-var const$242 = new StringWrapper('<')/*const SourceString('<')*/;
-var const$243 = new StringWrapper('lt')/*const SourceString('lt')*/;
-var const$244 = new StringWrapper('<=')/*const SourceString('<=')*/;
-var const$245 = new StringWrapper('le')/*const SourceString('le')*/;
-var const$246 = new StringWrapper('>')/*const SourceString('>')*/;
-var const$247 = new StringWrapper('gt')/*const SourceString('gt')*/;
-var const$248 = new StringWrapper('>=')/*const SourceString('>=')*/;
-var const$249 = new StringWrapper('ge')/*const SourceString('ge')*/;
+var const$232 = new LinkTail()/*const LinkTail()*/;
+var const$233 = new StringWrapper('+')/*const SourceString('+')*/;
+var const$234 = new StringWrapper('add')/*const SourceString('add')*/;
+var const$235 = new StringWrapper('-')/*const SourceString('-')*/;
+var const$236 = new StringWrapper('sub')/*const SourceString('sub')*/;
+var const$237 = new StringWrapper('*')/*const SourceString('*')*/;
+var const$238 = new StringWrapper('mul')/*const SourceString('mul')*/;
+var const$239 = new StringWrapper('/')/*const SourceString('/')*/;
+var const$240 = new StringWrapper('div')/*const SourceString('div')*/;
+var const$241 = new StringWrapper('~/')/*const SourceString('~/')*/;
+var const$242 = new StringWrapper('tdiv')/*const SourceString('tdiv')*/;
+var const$243 = new StringWrapper('%')/*const SourceString('%')*/;
+var const$244 = new StringWrapper('mod')/*const SourceString('mod')*/;
+var const$245 = new StringWrapper('==')/*const SourceString('==')*/;
+var const$246 = new StringWrapper('eq')/*const SourceString('eq')*/;
+var const$247 = new StringWrapper('<')/*const SourceString('<')*/;
+var const$248 = new StringWrapper('lt')/*const SourceString('lt')*/;
+var const$249 = new StringWrapper('<=')/*const SourceString('<=')*/;
var const$25 = new Keyword("break", false)/*const Keyword("break")*/;
-var const$250 = new StringWrapper('&&')/*const SourceString('&&')*/;
-var const$251 = new StringWrapper('||')/*const SourceString('||')*/;
-var const$252 = new StringWrapper('!')/*const SourceString('!')*/;
-var const$253 = new ElementKind('variable')/*const ElementKind('variable')*/;
-var const$259 = new MessageKind('cannot return value from void function')/*const MessageKind(
+var const$250 = new StringWrapper('le')/*const SourceString('le')*/;
+var const$251 = new StringWrapper('>')/*const SourceString('>')*/;
+var const$252 = new StringWrapper('gt')/*const SourceString('gt')*/;
+var const$253 = new StringWrapper('>=')/*const SourceString('>=')*/;
+var const$254 = new StringWrapper('ge')/*const SourceString('ge')*/;
+var const$255 = new StringWrapper('&&')/*const SourceString('&&')*/;
+var const$256 = new StringWrapper('||')/*const SourceString('||')*/;
+var const$257 = new StringWrapper('!')/*const SourceString('!')*/;
+var const$258 = new ElementKind('variable')/*const ElementKind('variable')*/;
+var const$264 = new MessageKind('cannot return value from void function')/*const MessageKind(
'cannot return value from void function')*/;
-var const$261 = new MessageKind('#{1} is not assignable to #{2}')/*const MessageKind(
+var const$266 = new MessageKind('#{1} is not assignable to #{2}')/*const MessageKind(
'#{1} is not assignable to #{2}')*/;
-var const$263 = new MessageKind('value of type #{1} expected')/*const MessageKind(
+var const$268 = new MessageKind('value of type #{1} expected')/*const MessageKind(
'value of type #{1} expected')*/;
-var const$265 = new StringWrapper('=')/*const SourceString('=')*/;
-var const$266 = new MessageKind('variable cannot be of type void')/*const MessageKind(
+var const$27 = new Keyword("case", false)/*const Keyword("case")*/;
+var const$270 = new StringWrapper('=')/*const SourceString('=')*/;
+var const$271 = new MessageKind('variable cannot be of type void')/*const MessageKind(
'variable cannot be of type void')*/;
-var const$268 = new MessageKind('expression does not yield a value')/*const MessageKind(
+var const$273 = new MessageKind('expression does not yield a value')/*const MessageKind(
'expression does not yield a value')*/;
-var const$27 = new Keyword("case", false)/*const Keyword("case")*/;
-var const$270 = new ExceptionImplementation("Internal Error (Leg): UNREACHABLE")/*const Exception("Internal Error (Leg): UNREACHABLE")*/;
-var const$275 = new StringWrapper("&&")/*const SourceString("&&")*/;
-var const$276 = new StringWrapper("||")/*const SourceString("||")*/;
-var const$277 = new StringWrapper("!")/*const SourceString("!")*/;
-var const$278 = new StringWrapper("+")/*const SourceString("+")*/;
-var const$279 = new StringWrapper("-")/*const SourceString("-")*/;
-var const$280 = new StringWrapper("*")/*const SourceString("*")*/;
-var const$281 = new StringWrapper("/")/*const SourceString("/")*/;
-var const$282 = new StringWrapper("~/")/*const SourceString("~/")*/;
-var const$283 = new StringWrapper("%")/*const SourceString("%")*/;
-var const$284 = new StringWrapper("==")/*const SourceString("==")*/;
-var const$285 = new StringWrapper("<")/*const SourceString("<")*/;
-var const$286 = new StringWrapper("<=")/*const SourceString("<=")*/;
-var const$287 = new StringWrapper(">")/*const SourceString(">")*/;
-var const$288 = new StringWrapper(">=")/*const SourceString(">=")*/;
+var const$275 = new ExceptionImplementation("Internal Error (Leg): UNREACHABLE")/*const Exception("Internal Error (Leg): UNREACHABLE")*/;
+var const$280 = new StringWrapper("&&")/*const SourceString("&&")*/;
+var const$281 = new StringWrapper("||")/*const SourceString("||")*/;
+var const$282 = new StringWrapper("!")/*const SourceString("!")*/;
+var const$283 = new StringWrapper("+")/*const SourceString("+")*/;
+var const$284 = new StringWrapper("-")/*const SourceString("-")*/;
+var const$285 = new StringWrapper("*")/*const SourceString("*")*/;
+var const$286 = new StringWrapper("/")/*const SourceString("/")*/;
+var const$287 = new StringWrapper("~/")/*const SourceString("~/")*/;
+var const$288 = new StringWrapper("%")/*const SourceString("%")*/;
+var const$289 = new StringWrapper("==")/*const SourceString("==")*/;
var const$29 = new Keyword("catch", false)/*const Keyword("catch")*/;
-var const$299 = ImmutableList.ImmutableList$from$factory(["__PROTO__", "prototype"])/*const <String>["__PROTO__", "prototype"]*/;
-var const$301 = ImmutableList.ImmutableList$from$factory(["NaN", "Infinity", "undefined", "eval", "parseInt", "parseFloat", "isNan", "isFinite", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "Object", "Function", "Array", "String", "Boolean", "Number", "Date", "RegExp", "Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "Math", "arguments", "escape", "unescape", "applicationCache", "closed", "Components", "content", "controllers", "crypto", "defaultStatus", "dialogArguments", "directories", "document", "frameElement", "frames", "fullScreen", "globalStorage", "history", "innerHeight", "innerWidth", "length", "location", "locationbar", "localStorage", "menubar", "mozInnerScreenX", "mozInnerScreenY", "mozScreenPixelsPerCssPixel", "name", "navigator", "opener", "outerHeight", "outerWidth", "pageXOffset", "pageYOffset", "parent", "personalbar", "pkcs11", "returnValue", "screen", "scrollbars", "scrollMaxX", "scrollMaxY", "self", "sessionStorage", "sidebar", "status", "statusbar", "toolbar", "top", "window", "alert", "addEventListener", "atob", "back", "blur", "btoa", "captureEvents", "clearInterval", "clearTimeout", "close", "confirm", "disableExternalCapture", "dispatchEvent", "dump", "enableExternalCapture", "escape", "find", "focus", "forward", "GeckoActiveXObject", "getAttention", "getAttentionWithCycleCount", "getComputedStyle", "getSelection", "home", "maximize", "minimize", "moveBy", "moveTo", "open", "openDialog", "postMessage", "print", "prompt", "QueryInterface", "releaseEvents", "removeEventListener", "resizeBy", "resizeTo", "restore", "routeEvent", "scroll", "scrollBy", "scrollByLines", "scrollByPages", "scrollTo", "setInterval", "setResizeable", "setTimeout", "showModalDialog", "sizeToContent", "stop", "uuescape", "updateCommands", "XPCNativeWrapper", "XPCSafeJSOjbectWrapper", "onabort", "onbeforeunload", "onchange", "onclick", "onclose", "oncontextmenu", "ondragdrop", "onerror", "onfocus", "onhashchange", "onkeydown", "onkeypress", "onkeyup", "onload", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmozorientation", "onpaint", "onreset", "onresize", "onscroll", "onselect", "onsubmit", "onunload", "ontouchcancel", "ontouchend", "ontouchmove", "ontouchstart", "ongesturestart", "ongesturechange", "ongestureend", "uneval", "getPrototypeOf", "let", "yield", "abstract", "int", "short", "boolean", "interface", "static", "byte", "long", "char", "final", "native", "synchronized", "float", "package", "throws", "goto", "private", "transient", "implements", "protected", "volatile", "double", "public", "attachEvent", "clientInformation", "clipboardData", "createPopup", "dialogHeight", "dialogLeft", "dialogTop", "dialogWidth", "onafterprint", "onbeforedeactivate", "onbeforeprint", "oncontrolselect", "ondeactivate", "onhelp", "onresizeend", "event", "external", "Debug", "Enumerator", "Global", "Image", "ActiveXObject", "VBArray", "Components", "toString", "getClass", "constructor", "prototype", "valueOf", "Anchor", "Applet", "Attr", "Canvas", "CanvasGradient", "CanvasPattern", "CanvasRenderingContext2D", "CDATASection", "CharacterData", "Comment", "CSS2Properties", "CSSRule", "CSSStyleSheet", "Document", "DocumentFragment", "DocumentType", "DOMException", "DOMImplementation", "DOMParser", "Element", "Event", "ExternalInterface", "FlashPlayer", "Form", "Frame", "History", "HTMLCollection", "HTMLDocument", "HTMLElement", "IFrame", "Image", "Input", "JSObject", "KeyEvent", "Link", "Location", "MimeType", "MouseEvent", "Navigator", "Node", "NodeList", "Option", "Plugin", "ProcessingInstruction", "Range", "RangeException", "Screen", "Select", "Table", "TableCell", "TableRow", "TableSelection", "Text", "TextArea", "UIEvent", "Window", "XMLHttpRequest", "XMLSerializer", "XPathException", "XPathResult", "XSLTProcessor", "java", "Packages", "netscape", "sun", "JavaObject", "JavaClass", "JavaArray", "JavaMember", "\$wnd", "\$doc", "\$entry", "\$moduleName", "\$moduleBase", "\$gwt_version", "\$sessionId", "\$stack", "\$stackDepth", "\$location", "call"])/*const <String>[
+var const$290 = new StringWrapper("<")/*const SourceString("<")*/;
+var const$291 = new StringWrapper("<=")/*const SourceString("<=")*/;
+var const$292 = new StringWrapper(">")/*const SourceString(">")*/;
+var const$293 = new StringWrapper(">=")/*const SourceString(">=")*/;
+var const$304 = ImmutableList.ImmutableList$from$factory(["__PROTO__", "prototype"])/*const <String>["__PROTO__", "prototype"]*/;
+var const$306 = ImmutableList.ImmutableList$from$factory(["NaN", "Infinity", "undefined", "eval", "parseInt", "parseFloat", "isNan", "isFinite", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "Object", "Function", "Array", "String", "Boolean", "Number", "Date", "RegExp", "Error", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "Math", "arguments", "escape", "unescape", "applicationCache", "closed", "Components", "content", "controllers", "crypto", "defaultStatus", "dialogArguments", "directories", "document", "frameElement", "frames", "fullScreen", "globalStorage", "history", "innerHeight", "innerWidth", "length", "location", "locationbar", "localStorage", "menubar", "mozInnerScreenX", "mozInnerScreenY", "mozScreenPixelsPerCssPixel", "name", "navigator", "opener", "outerHeight", "outerWidth", "pageXOffset", "pageYOffset", "parent", "personalbar", "pkcs11", "returnValue", "screen", "scrollbars", "scrollMaxX", "scrollMaxY", "self", "sessionStorage", "sidebar", "status", "statusbar", "toolbar", "top", "window", "alert", "addEventListener", "atob", "back", "blur", "btoa", "captureEvents", "clearInterval", "clearTimeout", "close", "confirm", "disableExternalCapture", "dispatchEvent", "dump", "enableExternalCapture", "escape", "find", "focus", "forward", "GeckoActiveXObject", "getAttention", "getAttentionWithCycleCount", "getComputedStyle", "getSelection", "home", "maximize", "minimize", "moveBy", "moveTo", "open", "openDialog", "postMessage", "print", "prompt", "QueryInterface", "releaseEvents", "removeEventListener", "resizeBy", "resizeTo", "restore", "routeEvent", "scroll", "scrollBy", "scrollByLines", "scrollByPages", "scrollTo", "setInterval", "setResizeable", "setTimeout", "showModalDialog", "sizeToContent", "stop", "uuescape", "updateCommands", "XPCNativeWrapper", "XPCSafeJSOjbectWrapper", "onabort", "onbeforeunload", "onchange", "onclick", "onclose", "oncontextmenu", "ondragdrop", "onerror", "onfocus", "onhashchange", "onkeydown", "onkeypress", "onkeyup", "onload", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmozorientation", "onpaint", "onreset", "onresize", "onscroll", "onselect", "onsubmit", "onunload", "ontouchcancel", "ontouchend", "ontouchmove", "ontouchstart", "ongesturestart", "ongesturechange", "ongestureend", "uneval", "getPrototypeOf", "let", "yield", "abstract", "int", "short", "boolean", "interface", "static", "byte", "long", "char", "final", "native", "synchronized", "float", "package", "throws", "goto", "private", "transient", "implements", "protected", "volatile", "double", "public", "attachEvent", "clientInformation", "clipboardData", "createPopup", "dialogHeight", "dialogLeft", "dialogTop", "dialogWidth", "onafterprint", "onbeforedeactivate", "onbeforeprint", "oncontrolselect", "ondeactivate", "onhelp", "onresizeend", "event", "external", "Debug", "Enumerator", "Global", "Image", "ActiveXObject", "VBArray", "Components", "toString", "getClass", "constructor", "prototype", "valueOf", "Anchor", "Applet", "Attr", "Canvas", "CanvasGradient", "CanvasPattern", "CanvasRenderingContext2D", "CDATASection", "CharacterData", "Comment", "CSS2Properties", "CSSRule", "CSSStyleSheet", "Document", "DocumentFragment", "DocumentType", "DOMException", "DOMImplementation", "DOMParser", "Element", "Event", "ExternalInterface", "FlashPlayer", "Form", "Frame", "History", "HTMLCollection", "HTMLDocument", "HTMLElement", "IFrame", "Image", "Input", "JSObject", "KeyEvent", "Link", "Location", "MimeType", "MouseEvent", "Navigator", "Node", "NodeList", "Option", "Plugin", "ProcessingInstruction", "Range", "RangeException", "Screen", "Select", "Table", "TableCell", "TableRow", "TableSelection", "Text", "TextArea", "UIEvent", "Window", "XMLHttpRequest", "XMLSerializer", "XPathException", "XPathResult", "XSLTProcessor", "java", "Packages", "netscape", "sun", "JavaObject", "JavaClass", "JavaArray", "JavaMember", "\$wnd", "\$doc", "\$entry", "\$moduleName", "\$moduleBase", "\$gwt_version", "\$sessionId", "\$stack", "\$stackDepth", "\$location", "call"])/*const <String>[
// Section references are from Ecma-262
// (http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf)
@@ -23852,7 +23897,7 @@ var const$301 = ImmutableList.ImmutableList$from$factory(["NaN", "Infinity", "un
// TODO: prove why this is necessary or remove it
"call"
]*/;
-var const$303 = ImmutableList.ImmutableList$from$factory(["break", "delete", "function", "return", "typeof", "case", "do", "if", "switch", "var", "catch", "else", "in", "this", "void", "continue", "false", "instanceof", "throw", "while", "debugger", "finally", "new", "true", "with", "default", "for", "null", "try", "abstract", "double", "goto", "native", "static", "boolean", "enum", "implements", "package", "super", "byte", "export", "import", "private", "synchronized", "char", "extends", "int", "protected", "throws", "class", "final", "interface", "public", "transient", "const", "float", "long", "short", "volatile"])/*const <String>[
+var const$308 = ImmutableList.ImmutableList$from$factory(["break", "delete", "function", "return", "typeof", "case", "do", "if", "switch", "var", "catch", "else", "in", "this", "void", "continue", "false", "instanceof", "throw", "while", "debugger", "finally", "new", "true", "with", "default", "for", "null", "try", "abstract", "double", "goto", "native", "static", "boolean", "enum", "implements", "package", "super", "byte", "export", "import", "private", "synchronized", "char", "extends", "int", "protected", "throws", "class", "final", "interface", "public", "transient", "const", "float", "long", "short", "volatile"])/*const <String>[
// These are current keywords
"break", "delete", "function", "return", "typeof", "case", "do", "if",
"switch", "var", "catch", "else", "in", "this", "void", "continue",
@@ -23866,15 +23911,15 @@ var const$303 = ImmutableList.ImmutableList$from$factory(["break", "delete", "fu
"class", "final", "interface", "public", "transient", "const", "float",
"long", "short", "volatile"
]*/;
-var const$305 = new StringWrapper('guard\$num')/*const SourceString('guard\$num')*/;
var const$31 = new Keyword("const", false)/*const Keyword("const")*/;
+var const$310 = new StringWrapper('guard\$num')/*const SourceString('guard\$num')*/;
var const$33 = new Keyword("continue", false)/*const Keyword("continue")*/;
var const$35 = new Keyword("default", false)/*const Keyword("default")*/;
var const$37 = new Keyword("do", false)/*const Keyword("do")*/;
var const$39 = new Keyword("else", false)/*const Keyword("else")*/;
var const$4 = new StringWrapper('global scope')/*const SourceString('global scope')*/;
var const$41 = new Keyword("false", false)/*const Keyword("false")*/;
-var const$418 = ImmutableList.ImmutableList$from$factory(['NullPointerException', 'ObjectNotClosureException', 'NoSuchMethodException', 'StackOverflowException'])/*const [
+var const$423 = ImmutableList.ImmutableList$from$factory(['NullPointerException', 'ObjectNotClosureException', 'NoSuchMethodException', 'StackOverflowException'])/*const [
'NullPointerException', 'ObjectNotClosureException',
'NoSuchMethodException', 'StackOverflowException']*/;
var const$43 = new Keyword("final", false)/*const Keyword("final")*/;
« no previous file with comments | « no previous file | frog/gen.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698