| 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")*/;
|
|
|