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

Side by Side Diff: frog/frogsh

Issue 8588060: Fixes to get Swarm demo working again. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: update client status 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env node 1 #!/usr/bin/env node
2 // ********** Library dart:core ************** 2 // ********** Library dart:core **************
3 // ********** Natives dart:core ************** 3 // ********** Natives dart:core **************
4 /** 4 /**
5 * Generates a dynamic call stub for a function. 5 * Generates a dynamic call stub for a function.
6 * Our goal is to create a stub method like this on-the-fly: 6 * Our goal is to create a stub method like this on-the-fly:
7 * function($0, $1, capture) { this($0, $1, true, capture); } 7 * function($0, $1, capture) { this($0, $1, true, capture); }
8 * 8 *
9 * This stub then replaces the dynamic one on Function, with one that is 9 * This stub then replaces the dynamic one on Function, with one that is
10 * specialized for that particular function, taking into account its default 10 * specialized for that particular function, taking into account its default
(...skipping 1828 matching lines...) Expand 10 before | Expand all | Expand 10 after
1839 this._previous = null; 1839 this._previous = null;
1840 return this._element; 1840 return this._element;
1841 } 1841 }
1842 DoubleLinkedQueueEntry$E.prototype._asNonSentinelEntry = function() { 1842 DoubleLinkedQueueEntry$E.prototype._asNonSentinelEntry = function() {
1843 return this; 1843 return this;
1844 } 1844 }
1845 DoubleLinkedQueueEntry$E.prototype.previousEntry = function() { 1845 DoubleLinkedQueueEntry$E.prototype.previousEntry = function() {
1846 return this._previous._asNonSentinelEntry(); 1846 return this._previous._asNonSentinelEntry();
1847 } 1847 }
1848 // ********** Code for DoubleLinkedQueueEntry$KeyValuePair$K$V ************** 1848 // ********** Code for DoubleLinkedQueueEntry$KeyValuePair$K$V **************
1849 function DoubleLinkedQueueEntry$KeyValuePair$K$V() {} 1849 function DoubleLinkedQueueEntry$KeyValuePair$K$V(e) {
1850 // Initializers done
1851 this._element = e;
1852 }
1850 $inherits(DoubleLinkedQueueEntry$KeyValuePair$K$V, DoubleLinkedQueueEntry); 1853 $inherits(DoubleLinkedQueueEntry$KeyValuePair$K$V, DoubleLinkedQueueEntry);
1851 DoubleLinkedQueueEntry$KeyValuePair$K$V.prototype.is$DoubleLinkedQueueEntry$KeyV aluePair$K$V = function(){return this;}; 1854 DoubleLinkedQueueEntry$KeyValuePair$K$V.prototype.is$DoubleLinkedQueueEntry$KeyV aluePair$K$V = function(){return this;};
1855 DoubleLinkedQueueEntry$KeyValuePair$K$V.prototype._link = function(p, n) {
1856 this._next = n;
1857 this._previous = p;
1858 p._next = this;
1859 n._previous = this;
1860 }
1861 DoubleLinkedQueueEntry$KeyValuePair$K$V.prototype.prepend = function(e) {
1862 new DoubleLinkedQueueEntry$KeyValuePair$K$V(e)._link(this._previous, this);
1863 }
1864 DoubleLinkedQueueEntry$KeyValuePair$K$V.prototype._asNonSentinelEntry = function () {
1865 return this;
1866 }
1867 DoubleLinkedQueueEntry$KeyValuePair$K$V.prototype.previousEntry = function() {
1868 var $0;
1869 return (($0 = this._previous._asNonSentinelEntry()) && $0.is$DoubleLinkedQueue Entry$KeyValuePair$K$V());
1870 }
1852 // ********** Code for _DoubleLinkedQueueEntrySentinel ************** 1871 // ********** Code for _DoubleLinkedQueueEntrySentinel **************
1853 function _DoubleLinkedQueueEntrySentinel() { 1872 function _DoubleLinkedQueueEntrySentinel() {
1854 // Initializers done 1873 // Initializers done
1855 DoubleLinkedQueueEntry$E.call(this, null); 1874 DoubleLinkedQueueEntry$E.call(this, null);
1856 this._link(this, this); 1875 this._link(this, this);
1857 } 1876 }
1858 $inherits(_DoubleLinkedQueueEntrySentinel, DoubleLinkedQueueEntry$E); 1877 $inherits(_DoubleLinkedQueueEntrySentinel, DoubleLinkedQueueEntry$E);
1859 _DoubleLinkedQueueEntrySentinel.prototype.remove = function() { 1878 _DoubleLinkedQueueEntrySentinel.prototype.remove = function() {
1860 $throw(const$3/*const EmptyQueueException()*/); 1879 $throw(const$3/*const EmptyQueueException()*/);
1861 } 1880 }
1862 _DoubleLinkedQueueEntrySentinel.prototype._asNonSentinelEntry = function() { 1881 _DoubleLinkedQueueEntrySentinel.prototype._asNonSentinelEntry = function() {
1863 return null; 1882 return null;
1864 } 1883 }
1865 _DoubleLinkedQueueEntrySentinel.prototype.get$element = function() { 1884 _DoubleLinkedQueueEntrySentinel.prototype.get$element = function() {
1866 $throw(const$3/*const EmptyQueueException()*/); 1885 $throw(const$3/*const EmptyQueueException()*/);
1867 } 1886 }
1868 // ********** Code for _DoubleLinkedQueueEntrySentinel$E ************** 1887 // ********** Code for _DoubleLinkedQueueEntrySentinel$E **************
1869 function _DoubleLinkedQueueEntrySentinel$E() { 1888 function _DoubleLinkedQueueEntrySentinel$E() {
1870 // Initializers done 1889 // Initializers done
1871 DoubleLinkedQueueEntry$E.call(this, null); 1890 DoubleLinkedQueueEntry$E.call(this, null);
1872 this._link(this, this); 1891 this._link(this, this);
1873 } 1892 }
1874 $inherits(_DoubleLinkedQueueEntrySentinel$E, _DoubleLinkedQueueEntrySentinel); 1893 $inherits(_DoubleLinkedQueueEntrySentinel$E, _DoubleLinkedQueueEntrySentinel);
1875 // ********** Code for _DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V ******** ****** 1894 // ********** Code for _DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V ******** ******
1876 function _DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V() { 1895 function _DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V() {
1877 // Initializers done 1896 // Initializers done
1878 DoubleLinkedQueueEntry$E.call(this, null); 1897 DoubleLinkedQueueEntry$KeyValuePair$K$V.call(this, null);
1879 this._link(this, this); 1898 this._link(this, this);
1880 } 1899 }
1881 $inherits(_DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V, _DoubleLinkedQueueEn trySentinel); 1900 $inherits(_DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V, _DoubleLinkedQueueEn trySentinel);
1882 // ********** Code for DoubleLinkedQueue ************** 1901 // ********** Code for DoubleLinkedQueue **************
1883 function DoubleLinkedQueue() { 1902 function DoubleLinkedQueue() {
1884 // Initializers done 1903 // Initializers done
1885 this._sentinel = new _DoubleLinkedQueueEntrySentinel$E(); 1904 this._sentinel = new _DoubleLinkedQueueEntrySentinel$E();
1886 } 1905 }
1887 DoubleLinkedQueue.prototype.is$Collection$E = function(){return this;}; 1906 DoubleLinkedQueue.prototype.is$Collection$E = function(){return this;};
1888 DoubleLinkedQueue.prototype.is$Collection$Object = function(){return this;}; 1907 DoubleLinkedQueue.prototype.is$Collection$Object = function(){return this;};
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 } 2138 }
2120 return this; 2139 return this;
2121 } 2140 }
2122 StringBufferImpl.prototype.clear = function() { 2141 StringBufferImpl.prototype.clear = function() {
2123 this._buffer = new ListFactory(); 2142 this._buffer = new ListFactory();
2124 this._length = 0; 2143 this._length = 0;
2125 return this; 2144 return this;
2126 } 2145 }
2127 StringBufferImpl.prototype.toString = function() { 2146 StringBufferImpl.prototype.toString = function() {
2128 if (this._buffer.length == 0) return ""; 2147 if (this._buffer.length == 0) return "";
2129 if (this._buffer.length == 1) return $assert_String(this._buffer.$index(0)); 2148 if ($notnull_bool($eq(this._buffer.length, 1))) return $assert_String(this._bu ffer.$index(0));
2130 var result = StringBase.concatAll(this._buffer); 2149 var result = StringBase.concatAll(this._buffer);
2131 this._buffer.clear(); 2150 this._buffer.clear();
2132 this._buffer.add(result); 2151 this._buffer.add(result);
2133 return result; 2152 return result;
2134 } 2153 }
2135 StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add; 2154 StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add;
2136 StringBufferImpl.prototype.addAll$1 = function($0) { 2155 StringBufferImpl.prototype.addAll$1 = function($0) {
2137 return this.addAll(($0 && $0.is$Collection$Object())); 2156 return this.addAll(($0 && $0.is$Collection$Object()));
2138 }; 2157 };
2139 StringBufferImpl.prototype.isEmpty$0 = function() { 2158 StringBufferImpl.prototype.isEmpty$0 = function() {
2140 return this.isEmpty(); 2159 return this.isEmpty();
2141 }; 2160 };
2142 StringBufferImpl.prototype.toString$0 = function() { 2161 StringBufferImpl.prototype.toString$0 = function() {
2143 return this.toString(); 2162 return this.toString();
2144 }; 2163 };
2145 // ********** Code for StringBase ************** 2164 // ********** Code for StringBase **************
2146 function StringBase() {} 2165 function StringBase() {}
2147 StringBase.createFromCharCodes = function(charCodes) { 2166 StringBase.createFromCharCodes = function(charCodes) {
2148 if (Object.getPrototypeOf(charCodes) !== Array.prototype) { 2167 if (Object.getPrototypeOf(charCodes) !== Array.prototype) {
2149 var length = charCodes.length; 2168 var length = charCodes.length;
2150 var tmp = new Array(length); 2169 var tmp = new Array(length);
2151 for (var i = 0; i < length; i++) { 2170 for (var i = 0; i < length; i++) {
2152 tmp[i] = charCodes.$index(i); 2171 tmp[i] = charCodes.$index(i);
2153 } 2172 }
2154 charCodes = tmp; 2173 charCodes = tmp;
2155 } 2174 }
2156 return String.fromCharCode.apply(null, charCodes); 2175 return String.fromCharCode.apply(null, charCodes);
2157 } 2176 }
2158 StringBase.join = function(strings, separator) { 2177 StringBase.join = function(strings, separator) {
2159 if (strings.length == 0) return ''; 2178 if ($notnull_bool($eq(strings.length, 0))) return '';
2160 var s = $assert_String(strings.$index(0)); 2179 var s = $assert_String(strings.$index(0));
2161 for (var i = 1; 2180 for (var i = 1;
2162 i < strings.length; i++) { 2181 i < $assert_num(strings.length); i++) {
2163 s = s + separator + strings.$index(i); 2182 s = s + separator + strings.$index(i);
2164 } 2183 }
2165 return s; 2184 return s;
2166 } 2185 }
2167 StringBase.concatAll = function(strings) { 2186 StringBase.concatAll = function(strings) {
2168 return StringBase.join(strings, ""); 2187 return StringBase.join(strings, "");
2169 } 2188 }
2170 // ********** Code for StringImplementation ************** 2189 // ********** Code for StringImplementation **************
2171 StringImplementation = String; 2190 StringImplementation = String;
2172 StringImplementation.prototype.is$Pattern = function(){return this;}; 2191 StringImplementation.prototype.is$Pattern = function(){return this;};
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
2558 LinkTail.prototype.isEmpty = function() { 2577 LinkTail.prototype.isEmpty = function() {
2559 return true; 2578 return true;
2560 } 2579 }
2561 LinkTail.prototype.isEmpty$0 = function() { 2580 LinkTail.prototype.isEmpty$0 = function() {
2562 return this.isEmpty(); 2581 return this.isEmpty();
2563 }; 2582 };
2564 // ********** Code for LinkTail$Node ************** 2583 // ********** Code for LinkTail$Node **************
2565 function LinkTail$Node() {} 2584 function LinkTail$Node() {}
2566 $inherits(LinkTail$Node, LinkTail); 2585 $inherits(LinkTail$Node, LinkTail);
2567 LinkTail$Node.prototype.is$Link = function(){return this;}; 2586 LinkTail$Node.prototype.is$Link = function(){return this;};
2568 LinkTail$Node.prototype.is$Link$Element = function(){return this;}; 2587 LinkTail$Node.prototype.is$Link$Element = false;
2569 LinkTail$Node.prototype.is$Link$Node = function(){return this;}; 2588 LinkTail$Node.prototype.is$Link$Node = function(){return this;};
2570 LinkTail$Node.prototype.is$Link$T = function(){return this;}; 2589 LinkTail$Node.prototype.is$Link$T = function(){return this;};
2571 LinkTail$Node.prototype.is$Link$Token = function(){return this;}; 2590 LinkTail$Node.prototype.is$Link$Token = false;
2572 LinkTail$Node.prototype.is$Link$Type = function(){return this;}; 2591 LinkTail$Node.prototype.is$Link$Type = false;
2573 LinkTail$Node.prototype.is$Iterable = function(){return this;}; 2592 LinkTail$Node.prototype.is$Iterable = function(){return this;};
2574 // ********** Code for LinkTail$T ************** 2593 // ********** Code for LinkTail$T **************
2575 function LinkTail$T() {} 2594 function LinkTail$T() {}
2576 $inherits(LinkTail$T, LinkTail); 2595 $inherits(LinkTail$T, LinkTail);
2577 LinkTail$T.prototype.is$Link = function(){return this;}; 2596 LinkTail$T.prototype.is$Link = function(){return this;};
2578 LinkTail$T.prototype.is$Link$Element = function(){return this;}; 2597 LinkTail$T.prototype.is$Link$Element = function(){return this;};
2579 LinkTail$T.prototype.is$Link$Node = function(){return this;}; 2598 LinkTail$T.prototype.is$Link$Node = function(){return this;};
2580 LinkTail$T.prototype.is$Link$T = function(){return this;}; 2599 LinkTail$T.prototype.is$Link$T = function(){return this;};
2581 LinkTail$T.prototype.is$Link$Token = function(){return this;}; 2600 LinkTail$T.prototype.is$Link$Token = function(){return this;};
2582 LinkTail$T.prototype.is$Link$Type = function(){return this;}; 2601 LinkTail$T.prototype.is$Link$Type = function(){return this;};
2583 LinkTail$T.prototype.is$Iterable = function(){return this;}; 2602 LinkTail$T.prototype.is$Iterable = function(){return this;};
2584 // ********** Code for LinkTail$Type ************** 2603 // ********** Code for LinkTail$Type **************
2585 function LinkTail$Type() {} 2604 function LinkTail$Type() {}
2586 $inherits(LinkTail$Type, LinkTail); 2605 $inherits(LinkTail$Type, LinkTail);
2587 LinkTail$Type.prototype.is$Link = function(){return this;}; 2606 LinkTail$Type.prototype.is$Link = function(){return this;};
2588 LinkTail$Type.prototype.is$Link$Element = function(){return this;}; 2607 LinkTail$Type.prototype.is$Link$Element = false;
2589 LinkTail$Type.prototype.is$Link$Node = function(){return this;}; 2608 LinkTail$Type.prototype.is$Link$Node = false;
2590 LinkTail$Type.prototype.is$Link$T = function(){return this;}; 2609 LinkTail$Type.prototype.is$Link$T = function(){return this;};
2591 LinkTail$Type.prototype.is$Link$Token = function(){return this;}; 2610 LinkTail$Type.prototype.is$Link$Token = false;
2592 LinkTail$Type.prototype.is$Link$Type = function(){return this;}; 2611 LinkTail$Type.prototype.is$Link$Type = function(){return this;};
2593 LinkTail$Type.prototype.is$Iterable = function(){return this;}; 2612 LinkTail$Type.prototype.is$Iterable = function(){return this;};
2594 // ********** Code for LinkEntry ************** 2613 // ********** Code for LinkEntry **************
2595 function LinkEntry(head, realTail) { 2614 function LinkEntry(head, realTail) {
2596 this.head = head; 2615 this.head = head;
2597 this.realTail = realTail; 2616 this.realTail = realTail;
2598 // Initializers done 2617 // Initializers done
2599 AbstractLink$T.call(this); 2618 AbstractLink$T.call(this);
2600 } 2619 }
2601 $inherits(LinkEntry, AbstractLink$T); 2620 $inherits(LinkEntry, AbstractLink$T);
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 } 2800 }
2782 } 2801 }
2783 // ********** Code for ArrayBasedScanner$SourceString ************** 2802 // ********** Code for ArrayBasedScanner$SourceString **************
2784 function ArrayBasedScanner$SourceString() { 2803 function ArrayBasedScanner$SourceString() {
2785 this.groupingStack = const$14/*const EmptyLink()*/ 2804 this.groupingStack = const$14/*const EmptyLink()*/
2786 this.extraCharOffset = 0; 2805 this.extraCharOffset = 0;
2787 this.tokenStart = -1; 2806 this.tokenStart = -1;
2788 this.byteOffset = -1; 2807 this.byteOffset = -1;
2789 this.tokens = new Token(0/*null.EOF_TOKEN*/, -1); 2808 this.tokens = new Token(0/*null.EOF_TOKEN*/, -1);
2790 // Initializers done 2809 // Initializers done
2791 AbstractScanner$S.call(this); 2810 AbstractScanner$SourceString.call(this);
2792 this.tail = this.tokens; 2811 this.tail = this.tokens;
2793 } 2812 }
2794 $inherits(ArrayBasedScanner$SourceString, ArrayBasedScanner); 2813 $inherits(ArrayBasedScanner$SourceString, ArrayBasedScanner);
2795 // ********** Code for top level ************** 2814 // ********** Code for top level **************
2796 // ********** Library scanner ************** 2815 // ********** Library scanner **************
2797 // ********** Code for AbstractScanner ************** 2816 // ********** Code for AbstractScanner **************
2798 function AbstractScanner() { 2817 function AbstractScanner() {
2799 // Initializers done 2818 // Initializers done
2800 } 2819 }
2801 AbstractScanner.prototype.tokenize = function() { 2820 AbstractScanner.prototype.tokenize = function() {
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
3375 next = this.advance(); 3394 next = this.advance();
3376 } 3395 }
3377 return next; 3396 return next;
3378 } 3397 }
3379 AbstractScanner.prototype.appendByteStringToken$2 = AbstractScanner.prototype.ap pendByteStringToken; 3398 AbstractScanner.prototype.appendByteStringToken$2 = AbstractScanner.prototype.ap pendByteStringToken;
3380 // ********** Code for AbstractScanner$S ************** 3399 // ********** Code for AbstractScanner$S **************
3381 function AbstractScanner$S() { 3400 function AbstractScanner$S() {
3382 // Initializers done 3401 // Initializers done
3383 } 3402 }
3384 $inherits(AbstractScanner$S, AbstractScanner); 3403 $inherits(AbstractScanner$S, AbstractScanner);
3385 AbstractScanner$S.prototype.tokenize = function() { 3404 // ********** Code for AbstractScanner$SourceString **************
3405 function AbstractScanner$SourceString() {
3406 // Initializers done
3407 }
3408 $inherits(AbstractScanner$SourceString, AbstractScanner);
3409 AbstractScanner$SourceString.prototype.tokenize = function() {
3386 var next = this.advance(); 3410 var next = this.advance();
3387 while (next != -1) { 3411 while (next != -1) {
3388 next = this.bigSwitch(next); 3412 next = this.bigSwitch(next);
3389 } 3413 }
3390 this.appendEofToken(); 3414 this.appendEofToken();
3391 return this.firstToken(); 3415 return this.firstToken();
3392 } 3416 }
3393 AbstractScanner$S.prototype.bigSwitch = function(next) { 3417 AbstractScanner$SourceString.prototype.bigSwitch = function(next) {
3394 this.beginToken(); 3418 this.beginToken();
3395 if (next === 9/*null.$TAB*/ || next === 10/*null.$LF*/ || next === 13/*null.$C R*/ || next === 32/*null.$SPACE*/) { 3419 if (next === 9/*null.$TAB*/ || next === 10/*null.$LF*/ || next === 13/*null.$C R*/ || next === 32/*null.$SPACE*/) {
3396 this.appendWhiteSpace(next); 3420 this.appendWhiteSpace(next);
3397 return this.advance(); 3421 return this.advance();
3398 } 3422 }
3399 if (97/*null.$a*/ <= next && next <= 122/*null.$z*/) { 3423 if (97/*null.$a*/ <= next && next <= 122/*null.$z*/) {
3400 return this.tokenizeKeywordOrIdentifier(next); 3424 return this.tokenizeKeywordOrIdentifier(next);
3401 } 3425 }
3402 if ((65/*null.$A*/ <= next && next <= 90/*null.$Z*/) || next === 95/*null.$_*/ || next === 36/*null.$DOLLAR*/) { 3426 if ((65/*null.$A*/ <= next && next <= 90/*null.$Z*/) || next === 95/*null.$_*/ || next === 36/*null.$DOLLAR*/) {
3403 return this.tokenizeIdentifier(next, this.get$byteOffset()); 3427 return this.tokenizeIdentifier(next, this.get$byteOffset());
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
3507 return this.tokenizeNumber(next); 3531 return this.tokenizeNumber(next);
3508 } 3532 }
3509 if (next === -1) { 3533 if (next === -1) {
3510 return -1; 3534 return -1;
3511 } 3535 }
3512 if (next < 0x1f) { 3536 if (next < 0x1f) {
3513 $throw(new MalformedInputException(this.get$charOffset())); 3537 $throw(new MalformedInputException(this.get$charOffset()));
3514 } 3538 }
3515 return this.tokenizeIdentifier(next, this.get$byteOffset()); 3539 return this.tokenizeIdentifier(next, this.get$byteOffset());
3516 } 3540 }
3517 AbstractScanner$S.prototype.tokenizeTag = function(next) { 3541 AbstractScanner$SourceString.prototype.tokenizeTag = function(next) {
3518 if (this.get$byteOffset() === 0) { 3542 if (this.get$byteOffset() === 0) {
3519 if (this.peek() === 33/*null.$BANG*/) { 3543 if (this.peek() === 33/*null.$BANG*/) {
3520 do { 3544 do {
3521 next = this.advance(); 3545 next = this.advance();
3522 } 3546 }
3523 while (next != 10/*null.$LF*/ && next != 13/*null.$CR*/) 3547 while (next != 10/*null.$LF*/ && next != 13/*null.$CR*/)
3524 return next; 3548 return next;
3525 } 3549 }
3526 } 3550 }
3527 this.appendStringToken(35/*null.HASH_TOKEN*/, "#"); 3551 this.appendStringToken(35/*null.HASH_TOKEN*/, "#");
3528 return this.advance(); 3552 return this.advance();
3529 } 3553 }
3530 AbstractScanner$S.prototype.tokenizeTilde = function(next) { 3554 AbstractScanner$SourceString.prototype.tokenizeTilde = function(next) {
3531 next = this.advance(); 3555 next = this.advance();
3532 if (next === 47/*null.$SLASH*/) { 3556 if (next === 47/*null.$SLASH*/) {
3533 return this.select(61/*null.$EQ*/, "~/=", "~/"); 3557 return this.select(61/*null.$EQ*/, "~/=", "~/");
3534 } 3558 }
3535 else { 3559 else {
3536 this.appendStringToken(126/*null.TILDE_TOKEN*/, "~"); 3560 this.appendStringToken(126/*null.TILDE_TOKEN*/, "~");
3537 return next; 3561 return next;
3538 } 3562 }
3539 } 3563 }
3540 AbstractScanner$S.prototype.tokenizeOpenBracket = function(next) { 3564 AbstractScanner$SourceString.prototype.tokenizeOpenBracket = function(next) {
3541 next = this.advance(); 3565 next = this.advance();
3542 if (next === 93/*null.$RBRACKET*/) { 3566 if (next === 93/*null.$RBRACKET*/) {
3543 return this.select(61/*null.$EQ*/, "[]=", "[]"); 3567 return this.select(61/*null.$EQ*/, "[]=", "[]");
3544 } 3568 }
3545 else { 3569 else {
3546 this.appendBeginGroup(91/*null.LBRACKET_TOKEN*/, "["); 3570 this.appendBeginGroup(91/*null.LBRACKET_TOKEN*/, "[");
3547 return next; 3571 return next;
3548 } 3572 }
3549 } 3573 }
3550 AbstractScanner$S.prototype.tokenizeCaret = function(next) { 3574 AbstractScanner$SourceString.prototype.tokenizeCaret = function(next) {
3551 return this.select(61/*null.$EQ*/, "^=", "^"); 3575 return this.select(61/*null.$EQ*/, "^=", "^");
3552 } 3576 }
3553 AbstractScanner$S.prototype.tokenizeBar = function(next) { 3577 AbstractScanner$SourceString.prototype.tokenizeBar = function(next) {
3554 next = this.advance(); 3578 next = this.advance();
3555 if (next === 124/*null.$BAR*/) { 3579 if (next === 124/*null.$BAR*/) {
3556 this.appendStringToken(124/*null.BAR_TOKEN*/, "||"); 3580 this.appendStringToken(124/*null.BAR_TOKEN*/, "||");
3557 return this.advance(); 3581 return this.advance();
3558 } 3582 }
3559 else if (next === 61/*null.$EQ*/) { 3583 else if (next === 61/*null.$EQ*/) {
3560 this.appendStringToken(124/*null.BAR_TOKEN*/, "|="); 3584 this.appendStringToken(124/*null.BAR_TOKEN*/, "|=");
3561 return this.advance(); 3585 return this.advance();
3562 } 3586 }
3563 else { 3587 else {
3564 this.appendStringToken(124/*null.BAR_TOKEN*/, "|"); 3588 this.appendStringToken(124/*null.BAR_TOKEN*/, "|");
3565 return next; 3589 return next;
3566 } 3590 }
3567 } 3591 }
3568 AbstractScanner$S.prototype.tokenizeAmpersand = function(next) { 3592 AbstractScanner$SourceString.prototype.tokenizeAmpersand = function(next) {
3569 next = this.advance(); 3593 next = this.advance();
3570 if (next === 38/*null.$AMPERSAND*/) { 3594 if (next === 38/*null.$AMPERSAND*/) {
3571 this.appendStringToken(38/*null.AMPERSAND_TOKEN*/, "&&"); 3595 this.appendStringToken(38/*null.AMPERSAND_TOKEN*/, "&&");
3572 return this.advance(); 3596 return this.advance();
3573 } 3597 }
3574 else if (next === 61/*null.$EQ*/) { 3598 else if (next === 61/*null.$EQ*/) {
3575 this.appendStringToken(38/*null.AMPERSAND_TOKEN*/, "&="); 3599 this.appendStringToken(38/*null.AMPERSAND_TOKEN*/, "&=");
3576 return this.advance(); 3600 return this.advance();
3577 } 3601 }
3578 else { 3602 else {
3579 this.appendStringToken(38/*null.AMPERSAND_TOKEN*/, "&"); 3603 this.appendStringToken(38/*null.AMPERSAND_TOKEN*/, "&");
3580 return next; 3604 return next;
3581 } 3605 }
3582 } 3606 }
3583 AbstractScanner$S.prototype.tokenizePercent = function(next) { 3607 AbstractScanner$SourceString.prototype.tokenizePercent = function(next) {
3584 return this.select(61/*null.$EQ*/, "%=", "%"); 3608 return this.select(61/*null.$EQ*/, "%=", "%");
3585 } 3609 }
3586 AbstractScanner$S.prototype.tokenizeMultiply = function(next) { 3610 AbstractScanner$SourceString.prototype.tokenizeMultiply = function(next) {
3587 return this.select(61/*null.$EQ*/, "*=", "*"); 3611 return this.select(61/*null.$EQ*/, "*=", "*");
3588 } 3612 }
3589 AbstractScanner$S.prototype.tokenizeMinus = function(next) { 3613 AbstractScanner$SourceString.prototype.tokenizeMinus = function(next) {
3590 next = this.advance(); 3614 next = this.advance();
3591 if (next === 45/*null.$MINUS*/) { 3615 if (next === 45/*null.$MINUS*/) {
3592 this.appendStringToken(45/*null.MINUS_TOKEN*/, "--"); 3616 this.appendStringToken(45/*null.MINUS_TOKEN*/, "--");
3593 return this.advance(); 3617 return this.advance();
3594 } 3618 }
3595 else if (next === 61/*null.$EQ*/) { 3619 else if (next === 61/*null.$EQ*/) {
3596 this.appendStringToken(45/*null.MINUS_TOKEN*/, "-="); 3620 this.appendStringToken(45/*null.MINUS_TOKEN*/, "-=");
3597 return this.advance(); 3621 return this.advance();
3598 } 3622 }
3599 else { 3623 else {
3600 this.appendStringToken(45/*null.MINUS_TOKEN*/, "-"); 3624 this.appendStringToken(45/*null.MINUS_TOKEN*/, "-");
3601 return next; 3625 return next;
3602 } 3626 }
3603 } 3627 }
3604 AbstractScanner$S.prototype.tokenizePlus = function(next) { 3628 AbstractScanner$SourceString.prototype.tokenizePlus = function(next) {
3605 next = this.advance(); 3629 next = this.advance();
3606 if (43/*null.$PLUS*/ === next) { 3630 if (43/*null.$PLUS*/ === next) {
3607 this.appendStringToken(43/*null.PLUS_TOKEN*/, "++"); 3631 this.appendStringToken(43/*null.PLUS_TOKEN*/, "++");
3608 return this.advance(); 3632 return this.advance();
3609 } 3633 }
3610 else if (61/*null.$EQ*/ === next) { 3634 else if (61/*null.$EQ*/ === next) {
3611 this.appendStringToken(43/*null.PLUS_TOKEN*/, "+="); 3635 this.appendStringToken(43/*null.PLUS_TOKEN*/, "+=");
3612 return this.advance(); 3636 return this.advance();
3613 } 3637 }
3614 else { 3638 else {
3615 this.appendStringToken(43/*null.PLUS_TOKEN*/, "+"); 3639 this.appendStringToken(43/*null.PLUS_TOKEN*/, "+");
3616 return next; 3640 return next;
3617 } 3641 }
3618 } 3642 }
3619 AbstractScanner$S.prototype.tokenizeExclamation = function(next) { 3643 AbstractScanner$SourceString.prototype.tokenizeExclamation = function(next) {
3620 next = this.advance(); 3644 next = this.advance();
3621 if (next === 61/*null.$EQ*/) { 3645 if (next === 61/*null.$EQ*/) {
3622 return this.select(61/*null.$EQ*/, "!==", "!="); 3646 return this.select(61/*null.$EQ*/, "!==", "!=");
3623 } 3647 }
3624 this.appendStringToken(33/*null.BANG_TOKEN*/, "!"); 3648 this.appendStringToken(33/*null.BANG_TOKEN*/, "!");
3625 return next; 3649 return next;
3626 } 3650 }
3627 AbstractScanner$S.prototype.tokenizeEquals = function(next) { 3651 AbstractScanner$SourceString.prototype.tokenizeEquals = function(next) {
3628 next = this.advance(); 3652 next = this.advance();
3629 if (next === 61/*null.$EQ*/) { 3653 if (next === 61/*null.$EQ*/) {
3630 return this.select(61/*null.$EQ*/, "===", "=="); 3654 return this.select(61/*null.$EQ*/, "===", "==");
3631 } 3655 }
3632 this.appendStringToken(61/*null.EQ_TOKEN*/, "="); 3656 this.appendStringToken(61/*null.EQ_TOKEN*/, "=");
3633 return next; 3657 return next;
3634 } 3658 }
3635 AbstractScanner$S.prototype.tokenizeGreaterThan = function(next) { 3659 AbstractScanner$SourceString.prototype.tokenizeGreaterThan = function(next) {
3636 next = this.advance(); 3660 next = this.advance();
3637 if (61/*null.$EQ*/ === next) { 3661 if (61/*null.$EQ*/ === next) {
3638 this.appendStringToken(62/*null.GT_TOKEN*/, ">="); 3662 this.appendStringToken(62/*null.GT_TOKEN*/, ">=");
3639 return this.advance(); 3663 return this.advance();
3640 } 3664 }
3641 else if (62/*null.$GT*/ === next) { 3665 else if (62/*null.$GT*/ === next) {
3642 next = this.advance(); 3666 next = this.advance();
3643 if (61/*null.$EQ*/ === next) { 3667 if (61/*null.$EQ*/ === next) {
3644 this.appendStringToken(62/*null.GT_TOKEN*/, ">>="); 3668 this.appendStringToken(62/*null.GT_TOKEN*/, ">>=");
3645 return this.advance(); 3669 return this.advance();
(...skipping 12 matching lines...) Expand all
3658 else { 3682 else {
3659 this.appendGtGt(62/*null.GT_TOKEN*/, ">>"); 3683 this.appendGtGt(62/*null.GT_TOKEN*/, ">>");
3660 return next; 3684 return next;
3661 } 3685 }
3662 } 3686 }
3663 else { 3687 else {
3664 this.appendEndGroup(62/*null.GT_TOKEN*/, ">", 60/*null.LT_TOKEN*/); 3688 this.appendEndGroup(62/*null.GT_TOKEN*/, ">", 60/*null.LT_TOKEN*/);
3665 return next; 3689 return next;
3666 } 3690 }
3667 } 3691 }
3668 AbstractScanner$S.prototype.tokenizeLessThan = function(next) { 3692 AbstractScanner$SourceString.prototype.tokenizeLessThan = function(next) {
3669 next = this.advance(); 3693 next = this.advance();
3670 if (61/*null.$EQ*/ === next) { 3694 if (61/*null.$EQ*/ === next) {
3671 this.appendStringToken(188/*null.LT_EQ_TOKEN*/, "<="); 3695 this.appendStringToken(188/*null.LT_EQ_TOKEN*/, "<=");
3672 return this.advance(); 3696 return this.advance();
3673 } 3697 }
3674 else if (60/*null.$LT*/ === next) { 3698 else if (60/*null.$LT*/ === next) {
3675 return this.select(61/*null.$EQ*/, "<<=", "<<"); 3699 return this.select(61/*null.$EQ*/, "<<=", "<<");
3676 } 3700 }
3677 else { 3701 else {
3678 this.appendBeginGroup(60/*null.LT_TOKEN*/, "<"); 3702 this.appendBeginGroup(60/*null.LT_TOKEN*/, "<");
3679 return next; 3703 return next;
3680 } 3704 }
3681 } 3705 }
3682 AbstractScanner$S.prototype.tokenizeNumber = function(next) { 3706 AbstractScanner$SourceString.prototype.tokenizeNumber = function(next) {
3683 var $0;
3684 var start = this.get$byteOffset(); 3707 var start = this.get$byteOffset();
3685 while (true) { 3708 while (true) {
3686 next = this.advance(); 3709 next = this.advance();
3687 if (48/*null.$0*/ <= next && next <= 57/*null.$9*/) { 3710 if (48/*null.$0*/ <= next && next <= 57/*null.$9*/) {
3688 continue; 3711 continue;
3689 } 3712 }
3690 else if (next === 46/*null.$PERIOD*/) { 3713 else if (next === 46/*null.$PERIOD*/) {
3691 return this.tokenizeFractionPart(this.advance(), start); 3714 return this.tokenizeFractionPart(this.advance(), start);
3692 } 3715 }
3693 else if (next === 101/*null.$e*/ || next === 69/*null.$E*/ || next === 100/* null.$d*/ || next === 68/*null.$D*/) { 3716 else if (next === 101/*null.$e*/ || next === 69/*null.$E*/ || next === 100/* null.$d*/ || next === 68/*null.$D*/) {
3694 return this.tokenizeFractionPart(next, start); 3717 return this.tokenizeFractionPart(next, start);
3695 } 3718 }
3696 else { 3719 else {
3697 this.appendByteStringToken$2(105/*null.INT_TOKEN*/, this.asciiString(start )); 3720 this.appendByteStringToken(105/*null.INT_TOKEN*/, this.asciiString(start)) ;
3698 return next; 3721 return next;
3699 } 3722 }
3700 } 3723 }
3701 } 3724 }
3702 AbstractScanner$S.prototype.tokenizeHexOrNumber = function(next) { 3725 AbstractScanner$SourceString.prototype.tokenizeHexOrNumber = function(next) {
3703 var x = this.peek(); 3726 var x = this.peek();
3704 if (x === 120/*null.$x*/ || x === 88/*null.$X*/) { 3727 if (x === 120/*null.$x*/ || x === 88/*null.$X*/) {
3705 this.advance(); 3728 this.advance();
3706 return this.tokenizeHex(x); 3729 return this.tokenizeHex(x);
3707 } 3730 }
3708 return this.tokenizeNumber(next); 3731 return this.tokenizeNumber(next);
3709 } 3732 }
3710 AbstractScanner$S.prototype.tokenizeHex = function(next) { 3733 AbstractScanner$SourceString.prototype.tokenizeHex = function(next) {
3711 var $0;
3712 var start = this.get$byteOffset(); 3734 var start = this.get$byteOffset();
3713 var hasDigits = false; 3735 var hasDigits = false;
3714 while (true) { 3736 while (true) {
3715 next = this.advance(); 3737 next = this.advance();
3716 if ((48/*null.$0*/ <= next && next <= 57/*null.$9*/) || (65/*null.$A*/ <= ne xt && next <= 70/*null.$F*/) || (97/*null.$a*/ <= next && next <= 102/*null.$f*/ )) { 3738 if ((48/*null.$0*/ <= next && next <= 57/*null.$9*/) || (65/*null.$A*/ <= ne xt && next <= 70/*null.$F*/) || (97/*null.$a*/ <= next && next <= 102/*null.$f*/ )) {
3717 hasDigits = true; 3739 hasDigits = true;
3718 } 3740 }
3719 else { 3741 else {
3720 if (!$notnull_bool(hasDigits)) { 3742 if (!$notnull_bool(hasDigits)) {
3721 $throw(new MalformedInputException(this.get$charOffset())); 3743 $throw(new MalformedInputException(this.get$charOffset()));
3722 } 3744 }
3723 this.appendByteStringToken$2(120/*null.HEXADECIMAL_TOKEN*/, this.asciiStri ng(start)); 3745 this.appendByteStringToken(120/*null.HEXADECIMAL_TOKEN*/, this.asciiString (start));
3724 return next; 3746 return next;
3725 } 3747 }
3726 } 3748 }
3727 } 3749 }
3728 AbstractScanner$S.prototype.tokenizeDotOrNumber = function(next) { 3750 AbstractScanner$SourceString.prototype.tokenizeDotOrNumber = function(next) {
3729 var start = this.get$byteOffset(); 3751 var start = this.get$byteOffset();
3730 next = this.advance(); 3752 next = this.advance();
3731 if ((48/*null.$0*/ <= next && next <= 57/*null.$9*/)) { 3753 if ((48/*null.$0*/ <= next && next <= 57/*null.$9*/)) {
3732 return this.tokenizeFractionPart(next, start); 3754 return this.tokenizeFractionPart(next, start);
3733 } 3755 }
3734 else if (46/*null.$PERIOD*/ === next) { 3756 else if (46/*null.$PERIOD*/ === next) {
3735 return this.select(46/*null.$PERIOD*/, "...", ".."); 3757 return this.select(46/*null.$PERIOD*/, "...", "..");
3736 } 3758 }
3737 else { 3759 else {
3738 this.appendStringToken(46/*null.PERIOD_TOKEN*/, "."); 3760 this.appendStringToken(46/*null.PERIOD_TOKEN*/, ".");
3739 return next; 3761 return next;
3740 } 3762 }
3741 } 3763 }
3742 AbstractScanner$S.prototype.tokenizeFractionPart = function(next, start) { 3764 AbstractScanner$SourceString.prototype.tokenizeFractionPart = function(next, sta rt) {
3743 var $0;
3744 var done = false; 3765 var done = false;
3745 LOOP: 3766 LOOP:
3746 while (!$notnull_bool(done)) { 3767 while (!$notnull_bool(done)) {
3747 if (48/*null.$0*/ <= next && next <= 57/*null.$9*/) { 3768 if (48/*null.$0*/ <= next && next <= 57/*null.$9*/) {
3748 } 3769 }
3749 else if (101/*null.$e*/ === next || 69/*null.$E*/ === next) { 3770 else if (101/*null.$e*/ === next || 69/*null.$E*/ === next) {
3750 next = this.tokenizeExponent(this.advance()); 3771 next = this.tokenizeExponent(this.advance());
3751 done = true; 3772 done = true;
3752 continue LOOP; 3773 continue LOOP;
3753 } 3774 }
3754 else { 3775 else {
3755 done = true; 3776 done = true;
3756 continue LOOP; 3777 continue LOOP;
3757 } 3778 }
3758 next = this.advance(); 3779 next = this.advance();
3759 } 3780 }
3760 if (next === 100/*null.$d*/ || next === 68/*null.$D*/) { 3781 if (next === 100/*null.$d*/ || next === 68/*null.$D*/) {
3761 next = this.advance(); 3782 next = this.advance();
3762 } 3783 }
3763 this.appendByteStringToken$2(100/*null.DOUBLE_TOKEN*/, this.asciiString(start) ); 3784 this.appendByteStringToken(100/*null.DOUBLE_TOKEN*/, this.asciiString(start));
3764 return next; 3785 return next;
3765 } 3786 }
3766 AbstractScanner$S.prototype.tokenizeExponent = function(next) { 3787 AbstractScanner$SourceString.prototype.tokenizeExponent = function(next) {
3767 if (next === 43/*null.$PLUS*/ || next === 45/*null.$MINUS*/) { 3788 if (next === 43/*null.$PLUS*/ || next === 45/*null.$MINUS*/) {
3768 next = this.advance(); 3789 next = this.advance();
3769 } 3790 }
3770 var hasDigits = false; 3791 var hasDigits = false;
3771 while (true) { 3792 while (true) {
3772 if (48/*null.$0*/ <= next && next <= 57/*null.$9*/) { 3793 if (48/*null.$0*/ <= next && next <= 57/*null.$9*/) {
3773 hasDigits = true; 3794 hasDigits = true;
3774 } 3795 }
3775 else { 3796 else {
3776 if (!$notnull_bool(hasDigits)) { 3797 if (!$notnull_bool(hasDigits)) {
3777 $throw(new MalformedInputException(this.get$charOffset())); 3798 $throw(new MalformedInputException(this.get$charOffset()));
3778 } 3799 }
3779 return next; 3800 return next;
3780 } 3801 }
3781 next = this.advance(); 3802 next = this.advance();
3782 } 3803 }
3783 } 3804 }
3784 AbstractScanner$S.prototype.tokenizeSlashOrComment = function(next) { 3805 AbstractScanner$SourceString.prototype.tokenizeSlashOrComment = function(next) {
3785 next = this.advance(); 3806 next = this.advance();
3786 if (42/*null.$STAR*/ === next) { 3807 if (42/*null.$STAR*/ === next) {
3787 return this.tokenizeMultiLineComment(next); 3808 return this.tokenizeMultiLineComment(next);
3788 } 3809 }
3789 else if (47/*null.$SLASH*/ === next) { 3810 else if (47/*null.$SLASH*/ === next) {
3790 return this.tokenizeSingleLineComment(next); 3811 return this.tokenizeSingleLineComment(next);
3791 } 3812 }
3792 else if (61/*null.$EQ*/ === next) { 3813 else if (61/*null.$EQ*/ === next) {
3793 this.appendStringToken(47/*null.SLASH_TOKEN*/, "/="); 3814 this.appendStringToken(47/*null.SLASH_TOKEN*/, "/=");
3794 return this.advance(); 3815 return this.advance();
3795 } 3816 }
3796 else { 3817 else {
3797 this.appendStringToken(47/*null.SLASH_TOKEN*/, "/"); 3818 this.appendStringToken(47/*null.SLASH_TOKEN*/, "/");
3798 return next; 3819 return next;
3799 } 3820 }
3800 } 3821 }
3801 AbstractScanner$S.prototype.tokenizeSingleLineComment = function(next) { 3822 AbstractScanner$SourceString.prototype.tokenizeSingleLineComment = function(next ) {
3802 while (true) { 3823 while (true) {
3803 next = this.advance(); 3824 next = this.advance();
3804 if (10/*null.$LF*/ === next || 13/*null.$CR*/ === next || -1 === next) { 3825 if (10/*null.$LF*/ === next || 13/*null.$CR*/ === next || -1 === next) {
3805 return next; 3826 return next;
3806 } 3827 }
3807 } 3828 }
3808 } 3829 }
3809 AbstractScanner$S.prototype.tokenizeMultiLineComment = function(next) { 3830 AbstractScanner$SourceString.prototype.tokenizeMultiLineComment = function(next) {
3810 next = this.advance(); 3831 next = this.advance();
3811 while (true) { 3832 while (true) {
3812 if (-1 === next) { 3833 if (-1 === next) {
3813 return next; 3834 return next;
3814 } 3835 }
3815 else if (42/*null.$STAR*/ === next) { 3836 else if (42/*null.$STAR*/ === next) {
3816 next = this.advance(); 3837 next = this.advance();
3817 if (next === 47/*null.$SLASH*/) { 3838 if (next === 47/*null.$SLASH*/) {
3818 return this.advance(); 3839 return this.advance();
3819 } 3840 }
3820 else if (next === -1) { 3841 else if (next === -1) {
3821 return next; 3842 return next;
3822 } 3843 }
3823 } 3844 }
3824 else { 3845 else {
3825 next = this.advance(); 3846 next = this.advance();
3826 } 3847 }
3827 } 3848 }
3828 } 3849 }
3829 AbstractScanner$S.prototype.tokenizeKeywordOrIdentifier = function(next) { 3850 AbstractScanner$SourceString.prototype.tokenizeKeywordOrIdentifier = function(ne xt) {
3830 var state = KeywordState.get$KEYWORD_STATE(); 3851 var state = KeywordState.get$KEYWORD_STATE();
3831 var start = this.get$byteOffset(); 3852 var start = this.get$byteOffset();
3832 while (state != null && 97/*null.$a*/ <= next && next <= 122/*null.$z*/) { 3853 while (state != null && 97/*null.$a*/ <= next && next <= 122/*null.$z*/) {
3833 state = state.next(next); 3854 state = state.next(next);
3834 next = this.advance(); 3855 next = this.advance();
3835 } 3856 }
3836 if (state == null || !$notnull_bool(state.isLeaf())) { 3857 if (state == null || !$notnull_bool(state.isLeaf())) {
3837 return this.tokenizeIdentifier(next, start); 3858 return this.tokenizeIdentifier(next, start);
3838 } 3859 }
3839 if ((65/*null.$A*/ <= next && next <= 90/*null.$Z*/) || (48/*null.$0*/ <= next && next <= 57/*null.$9*/) || next === 95/*null.$_*/ || next === 36/*null.$DOLLA R*/) { 3860 if ((65/*null.$A*/ <= next && next <= 90/*null.$Z*/) || (48/*null.$0*/ <= next && next <= 57/*null.$9*/) || next === 95/*null.$_*/ || next === 36/*null.$DOLLA R*/) {
3840 return this.tokenizeIdentifier(next, start); 3861 return this.tokenizeIdentifier(next, start);
3841 } 3862 }
3842 else if (next < 128) { 3863 else if (next < 128) {
3843 this.appendKeywordToken(state.get$keyword()); 3864 this.appendKeywordToken(state.get$keyword());
3844 return next; 3865 return next;
3845 } 3866 }
3846 else { 3867 else {
3847 return this.tokenizeIdentifier(next, start); 3868 return this.tokenizeIdentifier(next, start);
3848 } 3869 }
3849 } 3870 }
3850 AbstractScanner$S.prototype.tokenizeIdentifier = function(next, start) { 3871 AbstractScanner$SourceString.prototype.tokenizeIdentifier = function(next, start ) {
3851 var $0;
3852 var isAscii = true; 3872 var isAscii = true;
3853 while (true) { 3873 while (true) {
3854 if ((97/*null.$a*/ <= next && next <= 122/*null.$z*/) || (65/*null.$A*/ <= n ext && next <= 90/*null.$Z*/) || (48/*null.$0*/ <= next && next <= 57/*null.$9*/ ) || next === 95/*null.$_*/ || next === 36/*null.$DOLLAR*/) { 3874 if ((97/*null.$a*/ <= next && next <= 122/*null.$z*/) || (65/*null.$A*/ <= n ext && next <= 90/*null.$Z*/) || (48/*null.$0*/ <= next && next <= 57/*null.$9*/ ) || next === 95/*null.$_*/ || next === 36/*null.$DOLLAR*/) {
3855 next = this.advance(); 3875 next = this.advance();
3856 } 3876 }
3857 else if (next < 128) { 3877 else if (next < 128) {
3858 if ($notnull_bool(isAscii)) { 3878 if ($notnull_bool(isAscii)) {
3859 this.appendByteStringToken$2(97/*null.IDENTIFIER_TOKEN*/, this.asciiStri ng(start)); 3879 this.appendByteStringToken(97/*null.IDENTIFIER_TOKEN*/, this.asciiString (start));
3860 } 3880 }
3861 else { 3881 else {
3862 this.appendByteStringToken$2(97/*null.IDENTIFIER_TOKEN*/, this.utf8Strin g(start, -1)); 3882 this.appendByteStringToken(97/*null.IDENTIFIER_TOKEN*/, this.utf8String( start, -1));
3863 } 3883 }
3864 return next; 3884 return next;
3865 } 3885 }
3866 else { 3886 else {
3867 var nonAsciiStart = this.get$byteOffset(); 3887 var nonAsciiStart = this.get$byteOffset();
3868 do { 3888 do {
3869 next = this.nextByte(); 3889 next = this.nextByte();
3870 } 3890 }
3871 while (next > 127) 3891 while (next > 127)
3872 var string = this.utf8String(nonAsciiStart, -1).toString$0(); 3892 var string = this.utf8String(nonAsciiStart, -1).toString();
3873 isAscii = false; 3893 isAscii = false;
3874 var byteLength = nonAsciiStart - this.get$byteOffset(); 3894 var byteLength = nonAsciiStart - this.get$byteOffset();
3875 this.addToCharOffset(string.length - byteLength); 3895 this.addToCharOffset(string.length - byteLength);
3876 } 3896 }
3877 } 3897 }
3878 } 3898 }
3879 AbstractScanner$S.prototype.tokenizeRawString = function(next) { 3899 AbstractScanner$SourceString.prototype.tokenizeRawString = function(next) {
3880 var start = this.get$byteOffset(); 3900 var start = this.get$byteOffset();
3881 next = this.advance(); 3901 next = this.advance();
3882 if (next === 34/*null.$DQ*/ || next === 39/*null.$SQ*/) { 3902 if (next === 34/*null.$DQ*/ || next === 39/*null.$SQ*/) {
3883 return this.tokenizeString(next, start, true); 3903 return this.tokenizeString(next, start, true);
3884 } 3904 }
3885 else { 3905 else {
3886 $throw(new MalformedInputException(this.get$charOffset())); 3906 $throw(new MalformedInputException(this.get$charOffset()));
3887 } 3907 }
3888 } 3908 }
3889 AbstractScanner$S.prototype.tokenizeString = function(next, start, raw) { 3909 AbstractScanner$SourceString.prototype.tokenizeString = function(next, start, ra w) {
3890 var $0;
3891 var q = next; 3910 var q = next;
3892 next = this.advance(); 3911 next = this.advance();
3893 if (q === next) { 3912 if (q === next) {
3894 next = this.advance(); 3913 next = this.advance();
3895 if (q === next) { 3914 if (q === next) {
3896 return this.tokenizeMultiLineString(q, start, raw); 3915 return this.tokenizeMultiLineString(q, start, raw);
3897 } 3916 }
3898 else { 3917 else {
3899 this.appendByteStringToken$2(39/*null.STRING_TOKEN*/, this.utf8String(star t, -1)); 3918 this.appendByteStringToken(39/*null.STRING_TOKEN*/, this.utf8String(start, -1));
3900 return next; 3919 return next;
3901 } 3920 }
3902 } 3921 }
3903 if ($notnull_bool(raw)) { 3922 if ($notnull_bool(raw)) {
3904 return this.tokenizeSingleLineRawString(next, q, start); 3923 return this.tokenizeSingleLineRawString(next, q, start);
3905 } 3924 }
3906 else { 3925 else {
3907 return this.tokenizeSingleLineString(next, q, start); 3926 return this.tokenizeSingleLineString(next, q, start);
3908 } 3927 }
3909 } 3928 }
3910 AbstractScanner$S.prototype.tokenizeSingleLineString = function(next, q1, start) { 3929 AbstractScanner$SourceString.prototype.tokenizeSingleLineString = function(next, q1, start) {
3911 var $0;
3912 while (next != -1) { 3930 while (next != -1) {
3913 if (next === q1) { 3931 if (next === q1) {
3914 this.appendByteStringToken$2(39/*null.STRING_TOKEN*/, this.utf8String(star t, 0)); 3932 this.appendByteStringToken(39/*null.STRING_TOKEN*/, this.utf8String(start, 0));
3915 return this.advance(); 3933 return this.advance();
3916 } 3934 }
3917 else if (next === 92/*null.$BACKSLASH*/) { 3935 else if (next === 92/*null.$BACKSLASH*/) {
3918 next = this.advance(); 3936 next = this.advance();
3919 if (next === -1) { 3937 if (next === -1) {
3920 $throw(new MalformedInputException(this.get$charOffset())); 3938 $throw(new MalformedInputException(this.get$charOffset()));
3921 } 3939 }
3922 } 3940 }
3923 else if (next === 10/*null.$LF*/ || next === 13/*null.$CR*/) { 3941 else if (next === 10/*null.$LF*/ || next === 13/*null.$CR*/) {
3924 $throw(new MalformedInputException(this.get$charOffset())); 3942 $throw(new MalformedInputException(this.get$charOffset()));
3925 } 3943 }
3926 next = this.advance(); 3944 next = this.advance();
3927 } 3945 }
3928 $throw(new MalformedInputException(this.get$charOffset())); 3946 $throw(new MalformedInputException(this.get$charOffset()));
3929 } 3947 }
3930 AbstractScanner$S.prototype.tokenizeSingleLineRawString = function(next, q1, sta rt) { 3948 AbstractScanner$SourceString.prototype.tokenizeSingleLineRawString = function(ne xt, q1, start) {
3931 var $0;
3932 next = this.advance(); 3949 next = this.advance();
3933 while (next != -1) { 3950 while (next != -1) {
3934 if (next === q1) { 3951 if (next === q1) {
3935 this.appendByteStringToken$2(39/*null.STRING_TOKEN*/, this.utf8String(star t, 0)); 3952 this.appendByteStringToken(39/*null.STRING_TOKEN*/, this.utf8String(start, 0));
3936 return this.advance(); 3953 return this.advance();
3937 } 3954 }
3938 else if (next === 10/*null.$LF*/ || next === 13/*null.$CR*/) { 3955 else if (next === 10/*null.$LF*/ || next === 13/*null.$CR*/) {
3939 $throw(new MalformedInputException(this.get$charOffset())); 3956 $throw(new MalformedInputException(this.get$charOffset()));
3940 } 3957 }
3941 next = this.advance(); 3958 next = this.advance();
3942 } 3959 }
3943 $throw(new MalformedInputException(this.get$charOffset())); 3960 $throw(new MalformedInputException(this.get$charOffset()));
3944 } 3961 }
3945 AbstractScanner$S.prototype.tokenizeMultiLineString = function(q, start, raw) { 3962 AbstractScanner$SourceString.prototype.tokenizeMultiLineString = function(q, sta rt, raw) {
3946 var $0;
3947 var next = this.advance(); 3963 var next = this.advance();
3948 while (next != -1) { 3964 while (next != -1) {
3949 if (next === q) { 3965 if (next === q) {
3950 next = this.advance(); 3966 next = this.advance();
3951 if (next === q) { 3967 if (next === q) {
3952 next = this.advance(); 3968 next = this.advance();
3953 if (next === q) { 3969 if (next === q) {
3954 this.appendByteStringToken$2(39/*null.STRING_TOKEN*/, this.utf8String( start, 0)); 3970 this.appendByteStringToken(39/*null.STRING_TOKEN*/, this.utf8String(st art, 0));
3955 return this.advance(); 3971 return this.advance();
3956 } 3972 }
3957 } 3973 }
3958 } 3974 }
3959 next = this.advance(); 3975 next = this.advance();
3960 } 3976 }
3961 return next; 3977 return next;
3962 } 3978 }
3963 // ********** Code for MalformedInputException ************** 3979 // ********** Code for MalformedInputException **************
3964 function MalformedInputException(message) { 3980 function MalformedInputException(message) {
(...skipping 2127 matching lines...) Expand 10 before | Expand all | Expand 10 after
6092 if (KeywordState._KEYWORD_STATE == null) { 6108 if (KeywordState._KEYWORD_STATE == null) {
6093 var strings = new ListFactory(const$110/*Keyword.values*/.get$length()); 6109 var strings = new ListFactory(const$110/*Keyword.values*/.get$length());
6094 for (var i = 0; 6110 for (var i = 0;
6095 i < const$110/*Keyword.values*/.get$length(); i++) { 6111 i < const$110/*Keyword.values*/.get$length(); i++) {
6096 strings.$setindex(i, const$110/*Keyword.values*/[i].get$syntax()); 6112 strings.$setindex(i, const$110/*Keyword.values*/[i].get$syntax());
6097 } 6113 }
6098 strings.sort((function (a, b) { 6114 strings.sort((function (a, b) {
6099 return a.compareTo$1(b); 6115 return a.compareTo$1(b);
6100 }) 6116 })
6101 ); 6117 );
6102 KeywordState._KEYWORD_STATE = KeywordState.computeKeywordStateTable(0, strin gs, 0, strings.length); 6118 KeywordState._KEYWORD_STATE = KeywordState.computeKeywordStateTable(0, strin gs, 0, $assert_num(strings.length));
6103 } 6119 }
6104 return KeywordState._KEYWORD_STATE; 6120 return KeywordState._KEYWORD_STATE;
6105 } 6121 }
6106 KeywordState.computeKeywordStateTable = function(start, strings, offset, length) { 6122 KeywordState.computeKeywordStateTable = function(start, strings, offset, length) {
6107 var result = new ListFactory(26); 6123 var result = new ListFactory(26);
6108 $assert(length != 0, "length != 0", "keyword.dart", 161, 12); 6124 $assert(length != 0, "length != 0", "keyword.dart", 161, 12);
6109 var chunk = 0; 6125 var chunk = 0;
6110 var chunkStart = -1; 6126 var chunkStart = -1;
6111 for (var i = offset; 6127 for (var i = offset;
6112 i < offset + length; i++) { 6128 i < offset + length; i++) {
(...skipping 1456 matching lines...) Expand 10 before | Expand all | Expand 10 after
7569 )); 7585 ));
7570 } 7586 }
7571 SsaCodeGeneratorTask.prototype.generateMethod = function(methodName, parameterNa mes, graph) { 7587 SsaCodeGeneratorTask.prototype.generateMethod = function(methodName, parameterNa mes, graph) {
7572 new SsaPhiEliminator().visitGraph(graph); 7588 new SsaPhiEliminator().visitGraph(graph);
7573 var buffer = new StringBufferImpl(""); 7589 var buffer = new StringBufferImpl("");
7574 var codegen = new SsaCodeGenerator(this.compiler, buffer, parameterNames); 7590 var codegen = new SsaCodeGenerator(this.compiler, buffer, parameterNames);
7575 graph.assignInstructionIds(); 7591 graph.assignInstructionIds();
7576 codegen.visitGraph(graph); 7592 codegen.visitGraph(graph);
7577 var parameters = new StringBufferImpl(""); 7593 var parameters = new StringBufferImpl("");
7578 for (var i = 0; 7594 for (var i = 0;
7579 i < parameterNames.length; i++) { 7595 i < $assert_num(parameterNames.length); i++) {
7580 if (i != 0) parameters.add(', '); 7596 if (i != 0) parameters.add(', ');
7581 parameters.add(parameterNames.$index(i)); 7597 parameters.add(parameterNames.$index(i));
7582 } 7598 }
7583 return ('function ' + methodName + '(' + parameters + ') {\n' + buffer + '}\n' ); 7599 return ('function ' + methodName + '(' + parameters + ') {\n' + buffer + '}\n' );
7584 } 7600 }
7585 // ********** Code for SsaCodeGenerator ************** 7601 // ********** Code for SsaCodeGenerator **************
7586 function SsaCodeGenerator(compiler, buffer, parameterNames) { 7602 function SsaCodeGenerator(compiler, buffer, parameterNames) {
7587 this.indent = 0 7603 this.indent = 0
7588 this.compiler = compiler; 7604 this.compiler = compiler;
7589 this.buffer = buffer; 7605 this.buffer = buffer;
(...skipping 3115 matching lines...) Expand 10 before | Expand all | Expand 10 after
10705 world.get$coreimpl().types.$index('StringImplementation').markUsed$0(); 10721 world.get$coreimpl().types.$index('StringImplementation').markUsed$0();
10706 this.genMethod((($0 = world.get$coreimpl().types.$index('StringImplementation' ).getMember$1('contains')) && $0.is$Member())); 10722 this.genMethod((($0 = world.get$coreimpl().types.$index('StringImplementation' ).getMember$1('contains')) && $0.is$Member()));
10707 if ($notnull_bool(world.corelib.types.$index('Isolate').get$isUsed()) || $notn ull_bool(world.get$coreimpl().types.$index('ReceivePortImpl').get$isUsed())) { 10723 if ($notnull_bool(world.corelib.types.$index('Isolate').get$isUsed()) || $notn ull_bool(world.get$coreimpl().types.$index('ReceivePortImpl').get$isUsed())) {
10708 this.corejs.useIsolates = true; 10724 this.corejs.useIsolates = true;
10709 var isolateMain = (($0 = world.get$coreimpl().topType.resolveMember('startAs Isolate').members.$index(0)) && $0.is$MethodMember()); 10725 var isolateMain = (($0 = world.get$coreimpl().topType.resolveMember('startAs Isolate').members.$index(0)) && $0.is$MethodMember());
10710 mainCall = isolateMain.invoke((metaGen && metaGen.is$MethodGenerator()), nul l, null, new Arguments(null, [this.main._get((metaGen && metaGen.is$MethodGenera tor()), this.main.definition, null, false)]), false); 10726 mainCall = isolateMain.invoke((metaGen && metaGen.is$MethodGenerator()), nul l, null, new Arguments(null, [this.main._get((metaGen && metaGen.is$MethodGenera tor()), this.main.definition, null, false)]), false);
10711 } 10727 }
10712 this.writeTypes(world.get$coreimpl()); 10728 this.writeTypes(world.get$coreimpl());
10713 this.writeTypes(world.corelib); 10729 this.writeTypes(world.corelib);
10714 this.writeTypes(this.main.declaringType.get$library()); 10730 this.writeTypes(this.main.declaringType.get$library());
10731 if (this._mixins != null) this.writer.write(this._mixins.get$text());
10715 this._writeGlobals(); 10732 this._writeGlobals();
10716 this.writer.writeln(('' + mainCall.get$code() + ';')); 10733 this.writer.writeln(('' + mainCall.get$code() + ';'));
10717 } 10734 }
10718 WorldGenerator.prototype.globalForStaticField = function(field, fieldValue, depe ndencies) { 10735 WorldGenerator.prototype.globalForStaticField = function(field, fieldValue, depe ndencies) {
10719 var $0; 10736 var $0;
10720 var fullname = ("" + field.declaringType.get$jsname() + "." + field.get$jsname () + ""); 10737 var fullname = ("" + field.declaringType.get$jsname() + "." + field.get$jsname () + "");
10721 if (!this.globals.containsKey(fullname)) { 10738 if (!this.globals.containsKey(fullname)) {
10722 this.globals.$setindex(fullname, GlobalValue.GlobalValue$fromStatic$factory( field, fieldValue, dependencies)); 10739 this.globals.$setindex(fullname, GlobalValue.GlobalValue$fromStatic$factory( field, fieldValue, dependencies));
10723 } 10740 }
10724 return (($0 = this.globals.$index(fullname)) && $0.is$GlobalValue()); 10741 return (($0 = this.globals.$index(fullname)) && $0.is$GlobalValue());
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
10829 var $list = type.get$constructors().getValues(); 10846 var $list = type.get$constructors().getValues();
10830 for (var $i = type.get$constructors().getValues().iterator$0(); $i.hasNext$0 (); ) { 10847 for (var $i = type.get$constructors().getValues().iterator$0(); $i.hasNext$0 (); ) {
10831 var c = $i.next$0(); 10848 var c = $i.next$0();
10832 if ($notnull_bool($ne(c.get$generator(), null)) && $notnull_bool($ne(c, st andardConstructor))) { 10849 if ($notnull_bool($ne(c.get$generator(), null)) && $notnull_bool($ne(c, st andardConstructor))) {
10833 c.get$generator().writeDefinition$2(this.writer); 10850 c.get$generator().writeDefinition$2(this.writer);
10834 } 10851 }
10835 } 10852 }
10836 } 10853 }
10837 if (!$notnull_bool(type.get$isTop())) { 10854 if (!$notnull_bool(type.get$isTop())) {
10838 if ((type instanceof ConcreteType)) { 10855 if ((type instanceof ConcreteType)) {
10856 var c = (type && type.is$ConcreteType());
10839 this._ensureInheritsHelper(); 10857 this._ensureInheritsHelper();
10840 this.writer.writeln(('\$inherits(' + type.get$jsname() + ', ' + type.get$g enericType().get$jsname() + ');')); 10858 this.writer.writeln(('\$inherits(' + c.get$jsname() + ', ' + c.genericType .get$jsname() + ');'));
10859 for (var p = c._parent;
10860 (p instanceof ConcreteType); p = p._parent) {
10861 this._ensureInheritMembersHelper();
10862 this._mixins.writeln(('\$inheritsMembers(' + c.get$jsname() + ', ' + p.g et$jsname() + ');'));
10863 }
10841 } 10864 }
10842 else if (!$notnull_bool(type.get$isNativeType())) { 10865 else if (!$notnull_bool(type.get$isNativeType())) {
10843 if (type.get$parent() != null && !$notnull_bool(type.get$parent().get$isOb ject())) { 10866 if (type.get$parent() != null && !$notnull_bool(type.get$parent().get$isOb ject())) {
10844 this._ensureInheritsHelper(); 10867 this._ensureInheritsHelper();
10845 this.writer.writeln(('\$inherits(' + type.get$jsname() + ', ' + type.get $parent().get$jsname() + ');')); 10868 this.writer.writeln(('\$inherits(' + type.get$jsname() + ', ' + type.get $parent().get$jsname() + ');'));
10846 } 10869 }
10847 } 10870 }
10848 } 10871 }
10849 if (!(type instanceof ConcreteType)) { 10872 if (!(type instanceof ConcreteType)) {
10850 this._maybeIsTest(type, type); 10873 this._maybeIsTest(type, type);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
10895 this._writeMethod((member && member.is$Member())); 10918 this._writeMethod((member && member.is$Member()));
10896 } 10919 }
10897 } 10920 }
10898 this._writeDynamicStubs(type); 10921 this._writeDynamicStubs(type);
10899 } 10922 }
10900 WorldGenerator.prototype._ensureInheritsHelper = function() { 10923 WorldGenerator.prototype._ensureInheritsHelper = function() {
10901 if ($notnull_bool(this._inheritsGenerated)) return; 10924 if ($notnull_bool(this._inheritsGenerated)) return;
10902 this._inheritsGenerated = true; 10925 this._inheritsGenerated = true;
10903 this.writer.writeln("/** Implements extends for Dart classes on JavaScript pro totypes. */\nfunction $inherits(child, parent) {\n if (child.prototype.__proto_ _) {\n child.prototype.__proto__ = parent.prototype;\n } else {\n functio n tmp() {};\n tmp.prototype = parent.prototype;\n child.prototype = new tm p();\n child.prototype.constructor = child;\n }\n}"); 10926 this.writer.writeln("/** Implements extends for Dart classes on JavaScript pro totypes. */\nfunction $inherits(child, parent) {\n if (child.prototype.__proto_ _) {\n child.prototype.__proto__ = parent.prototype;\n } else {\n functio n tmp() {};\n tmp.prototype = parent.prototype;\n child.prototype = new tm p();\n child.prototype.constructor = child;\n }\n}");
10904 } 10927 }
10928 WorldGenerator.prototype._ensureInheritMembersHelper = function() {
10929 if (this._mixins != null) return;
10930 this._mixins = new CodeWriter();
10931 this._mixins.comment('// ********** Generic Type Inheritance **************');
10932 this._mixins.writeln("/** Implements extends for generic types. */\nfunction $ inheritsMembers(child, parent) {\n child = child.prototype;\n parent = parent. prototype;\n Object.getOwnPropertyNames(parent).forEach(function(name) {\n i f (typeof(child[name]) == 'undefined') child[name] = parent[name];\n });\n}");
10933 }
10905 WorldGenerator.prototype._writeDynamicStubs = function(type) { 10934 WorldGenerator.prototype._writeDynamicStubs = function(type) {
10906 if (type.varStubs != null) { 10935 if (type.varStubs != null) {
10907 var $list = orderValuesByKeys(type.varStubs); 10936 var $list = orderValuesByKeys(type.varStubs);
10908 for (var $i = 0;$i < $list.length; $i++) { 10937 for (var $i = 0;$i < $list.length; $i++) {
10909 var stub = $list.$index($i); 10938 var stub = $list.$index($i);
10910 stub.generate$1(this.writer); 10939 stub.generate$1(this.writer);
10911 } 10940 }
10912 } 10941 }
10913 } 10942 }
10914 WorldGenerator.prototype._writeStaticField = function(field) { 10943 WorldGenerator.prototype._writeStaticField = function(field) {
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
11237 else if ($notnull_bool(this.method.get$isStatic())) { 11266 else if ($notnull_bool(this.method.get$isStatic())) {
11238 defWriter.enterBlock(('' + this.method.declaringType.get$jsname() + '.' + th is.method.get$jsname() + ' = function' + _params + ' {')); 11267 defWriter.enterBlock(('' + this.method.declaringType.get$jsname() + '.' + th is.method.get$jsname() + ' = function' + _params + ' {'));
11239 } 11268 }
11240 else { 11269 else {
11241 defWriter.enterBlock(('' + this.method.declaringType.get$jsname() + '.protot ype.') + ('' + this.method.get$jsname() + ' = function' + _params + ' {')); 11270 defWriter.enterBlock(('' + this.method.declaringType.get$jsname() + '.protot ype.') + ('' + this.method.get$jsname() + ' = function' + _params + ' {'));
11242 } 11271 }
11243 if ($notnull_bool(this.needsThis)) { 11272 if ($notnull_bool(this.needsThis)) {
11244 defWriter.writeln('var \$this = this; // closure support'); 11273 defWriter.writeln('var \$this = this; // closure support');
11245 } 11274 }
11246 if (this._usedTemps.get$length() > 0 || this._freeTemps.length > 0) { 11275 if (this._usedTemps.get$length() > 0 || this._freeTemps.length > 0) {
11247 $assert(this._usedTemps.get$length() == 0, "_usedTemps.length == 0", "gen.da rt", 706, 14); 11276 $assert(this._usedTemps.get$length() == 0, "_usedTemps.length == 0", "gen.da rt", 739, 14);
11248 this._freeTemps.addAll(this._usedTemps); 11277 this._freeTemps.addAll(this._usedTemps);
11249 this._freeTemps.sort((function (x, y) { 11278 this._freeTemps.sort((function (x, y) {
11250 return x.compareTo$1(y); 11279 return x.compareTo$1(y);
11251 }) 11280 })
11252 ); 11281 );
11253 defWriter.writeln(('var ' + Strings.join(this._freeTemps, ", ") + ';')); 11282 defWriter.writeln(('var ' + Strings.join(this._freeTemps, ", ") + ';'));
11254 } 11283 }
11255 defWriter.writeln(this.writer.get$text()); 11284 defWriter.writeln(this.writer.get$text());
11256 if ($notnull_bool($ne(names, null))) { 11285 if ($notnull_bool($ne(names, null))) {
11257 defWriter.exitBlock(('}).bind(null, ' + Strings.join((names && names.is$List $String()), ", ") + ')')); 11286 defWriter.exitBlock(('}).bind(null, ' + Strings.join((names && names.is$List $String()), ", ") + ')'));
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
11308 var optional = "['" + Strings.join((optNames && optNames.is$List$String( )), "', '") + "']"; 11337 var optional = "['" + Strings.join((optNames && optNames.is$List$String( )), "', '") + "']";
11309 defWriter.writeln(('' + start + '' + meth.get$jsname() + '.\$optional = ' + optional + '')); 11338 defWriter.writeln(('' + start + '' + meth.get$jsname() + '.\$optional = ' + optional + ''));
11310 } 11339 }
11311 } 11340 }
11312 } 11341 }
11313 } 11342 }
11314 MethodGenerator.prototype.writeBody = function() { 11343 MethodGenerator.prototype.writeBody = function() {
11315 var $0; 11344 var $0;
11316 var initializers = null; 11345 var initializers = null;
11317 var initializedFields = null; 11346 var initializedFields = null;
11347 var allMembers = null;
11318 if ($notnull_bool(this.method.get$isConstructor())) { 11348 if ($notnull_bool(this.method.get$isConstructor())) {
11319 initializers = []; 11349 initializers = [];
11320 initializedFields = new HashSetImplementation(); 11350 initializedFields = new HashSetImplementation();
11321 var $list = world.gen._orderValues(this.method.declaringType.getAllMembers() ); 11351 allMembers = world.gen._orderValues(this.method.declaringType.getAllMembers( ));
11322 for (var $i = 0;$i < $list.length; $i++) { 11352 for (var $i = allMembers.iterator$0(); $i.hasNext$0(); ) {
11323 var f = $list.$index($i); 11353 var f = $i.next$0();
11324 if ((f instanceof FieldMember) && !$notnull_bool(f.get$isStatic())) { 11354 if ($notnull_bool(f.get$isField()) && !$notnull_bool(f.get$isStatic())) {
11325 var cv = f.computeValue$0(); 11355 var cv = f.computeValue$0();
11326 if ($notnull_bool($ne(cv, null))) { 11356 if ($notnull_bool($ne(cv, null))) {
11327 initializers.add$1(('this.' + f.get$jsname() + ' = ' + cv.get$code() + '')); 11357 initializers.add$1(('this.' + f.get$jsname() + ' = ' + cv.get$code() + ''));
11328 initializedFields.add$1(f.get$name()); 11358 initializedFields.add$1(f.get$name());
11329 } 11359 }
11330 } 11360 }
11331 } 11361 }
11332 } 11362 }
11333 this._paramCode = []; 11363 this._paramCode = [];
11334 var $list = this.method.get$parameters(); 11364 var $list = this.method.get$parameters();
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
11417 } 11447 }
11418 } 11448 }
11419 if ($notnull_bool($ne(declaredInitializers, null)) && declaredInitializers .length > 1) { 11449 if ($notnull_bool($ne(declaredInitializers, null)) && declaredInitializers .length > 1) {
11420 var init = $notnull_bool($eq(declaredInitializers.$index(0), initializer Call)) ? declaredInitializers.$index(1) : declaredInitializers.$index(0); 11450 var init = $notnull_bool($eq(declaredInitializers.$index(0), initializer Call)) ? declaredInitializers.$index(1) : declaredInitializers.$index(0);
11421 world.error('no initialization allowed on redirecting constructors', (($ 0 = init.get$span()) && $0.is$SourceSpan())); 11451 world.error('no initialization allowed on redirecting constructors', (($ 0 = init.get$span()) && $0.is$SourceSpan()));
11422 } 11452 }
11423 initializedFields = null; 11453 initializedFields = null;
11424 } 11454 }
11425 } 11455 }
11426 if ($notnull_bool($ne(initializedFields, null))) { 11456 if ($notnull_bool($ne(initializedFields, null))) {
11427 var $list = this.method.declaringType.get$members().getKeys(); 11457 for (var $i = allMembers.iterator$0(); $i.hasNext$0(); ) {
11428 for (var $i = this.method.declaringType.get$members().getKeys().iterator$0() ; $i.hasNext$0(); ) { 11458 var member = $i.next$0();
11429 var name = $i.next$0(); 11459 if ($notnull_bool(member.get$isField()) && $notnull_bool(member.get$isFina l()) && !$notnull_bool(member.get$isStatic()) && !$notnull_bool(initializedField s.contains$1(member.get$name()))) {
11430 var member = this.method.declaringType.get$members().$index(name); 11460 world.error(('Field "' + member.get$name() + '" is final and was not ini tialized'), (($0 = this.method.get$definition().get$span()) && $0.is$SourceSpan( )));
11431 if ((member instanceof FieldMember) && $notnull_bool(member.get$isFinal()) && !$notnull_bool(member.get$isStatic()) && !$notnull_bool(initializedFields.co ntains$1(name))) {
11432 world.error(('Field "' + name + '" is final and was not initialized'), ( ($0 = this.method.get$definition().get$span()) && $0.is$SourceSpan()));
11433 } 11461 }
11434 } 11462 }
11435 } 11463 }
11436 this.visitStatementsInBlock((body && body.is$lang_Statement())); 11464 this.visitStatementsInBlock((body && body.is$lang_Statement()));
11437 } 11465 }
11438 MethodGenerator.prototype._writeInitializerCall = function(node) { 11466 MethodGenerator.prototype._writeInitializerCall = function(node) {
11439 var contructorName = ''; 11467 var contructorName = '';
11440 var targetExp = node.target; 11468 var targetExp = node.target;
11441 if ((targetExp instanceof DotExpression)) { 11469 if ((targetExp instanceof DotExpression)) {
11442 var dot = (targetExp && targetExp.is$DotExpression()); 11470 var dot = (targetExp && targetExp.is$DotExpression());
(...skipping 976 matching lines...) Expand 10 before | Expand all | Expand 10 after
12419 var u = (item && item.is$UnaryExpression()); 12447 var u = (item && item.is$UnaryExpression());
12420 return u.op.kind == 16/*TokenKind.INCR*/ || u.op.kind == 17/*TokenKind.DECR* /; 12448 return u.op.kind == 16/*TokenKind.INCR*/ || u.op.kind == 17/*TokenKind.DECR* /;
12421 } 12449 }
12422 else { 12450 else {
12423 return false; 12451 return false;
12424 } 12452 }
12425 } 12453 }
12426 MethodGenerator.prototype.visitLiteralExpression = function(node) { 12454 MethodGenerator.prototype.visitLiteralExpression = function(node) {
12427 var $0; 12455 var $0;
12428 var type = node.type.type; 12456 var type = node.type.type;
12429 $assert($ne(type, null), "type != null", "gen.dart", 2128, 12); 12457 $assert($ne(type, null), "type != null", "gen.dart", 2162, 12);
12430 if (!!(($0 = node.value) && $0.is$List)) { 12458 if (!!(($0 = node.value) && $0.is$List)) {
12431 var items = []; 12459 var items = [];
12432 var $list = node.value; 12460 var $list = node.value;
12433 for (var $i = node.value.iterator$0(); $i.hasNext$0(); ) { 12461 for (var $i = node.value.iterator$0(); $i.hasNext$0(); ) {
12434 var item = $i.next$0(); 12462 var item = $i.next$0();
12435 var val = this.visitValue((item && item.is$lang_Expression())); 12463 var val = this.visitValue((item && item.is$lang_Expression()));
12436 val.invoke$4(this, 'toString', item, Arguments.get$EMPTY()); 12464 val.invoke$4(this, 'toString', item, Arguments.get$EMPTY());
12437 var code = val.get$code(); 12465 var code = val.get$code();
12438 if ((item instanceof BinaryExpression) || (item instanceof ConditionalExpr ession) || (item instanceof PostfixExpression) || $notnull_bool(this._isUnaryInc rement((item && item.is$lang_Expression())))) { 12466 if ((item instanceof BinaryExpression) || (item instanceof ConditionalExpr ession) || (item instanceof PostfixExpression) || $notnull_bool(this._isUnaryInc rement((item && item.is$lang_Expression())))) {
12439 code = ('(' + code + ')'); 12467 code = ('(' + code + ')');
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after
13102 } 13130 }
13103 Member.prototype.get$isMethod = function() { 13131 Member.prototype.get$isMethod = function() {
13104 return false; 13132 return false;
13105 } 13133 }
13106 Member.prototype.get$isProperty = function() { 13134 Member.prototype.get$isProperty = function() {
13107 return false; 13135 return false;
13108 } 13136 }
13109 Member.prototype.get$isAbstract = function() { 13137 Member.prototype.get$isAbstract = function() {
13110 return false; 13138 return false;
13111 } 13139 }
13140 Member.prototype.get$isFinal = function() {
13141 return false;
13142 }
13112 Member.prototype.get$isConst = function() { 13143 Member.prototype.get$isConst = function() {
13113 return false; 13144 return false;
13114 } 13145 }
13115 Member.prototype.get$isFactory = function() { 13146 Member.prototype.get$isFactory = function() {
13116 return false; 13147 return false;
13117 } 13148 }
13118 Member.prototype.get$isOperator = function() { 13149 Member.prototype.get$isOperator = function() {
13119 return this.name.startsWith('\$'); 13150 return this.name.startsWith('\$');
13120 } 13151 }
13121 Member.prototype.get$isCallMethod = function() { 13152 Member.prototype.get$isCallMethod = function() {
(...skipping 16 matching lines...) Expand all
13138 } 13169 }
13139 Member.prototype.providePropertySyntax = function() { 13170 Member.prototype.providePropertySyntax = function() {
13140 13171
13141 } 13172 }
13142 Member.prototype.get$initDelegate = function() { 13173 Member.prototype.get$initDelegate = function() {
13143 world.internalError('cannot have initializers', this.get$span()); 13174 world.internalError('cannot have initializers', this.get$span());
13144 } 13175 }
13145 Member.prototype.set$initDelegate = function(ctor) { 13176 Member.prototype.set$initDelegate = function(ctor) {
13146 world.internalError('cannot have initializers', this.get$span()); 13177 world.internalError('cannot have initializers', this.get$span());
13147 } 13178 }
13179 Member.prototype.computeValue = function() {
13180 world.internalError('cannot have value', this.get$span());
13181 }
13148 Member.prototype.get$inferredResult = function() { 13182 Member.prototype.get$inferredResult = function() {
13149 var t = this.get$returnType(); 13183 var t = this.get$returnType();
13150 if ($notnull_bool(t.get$isBool()) && ($notnull_bool(this.get$library().get$isC ore()) || $notnull_bool(this.get$library().get$isCoreImpl()))) { 13184 if ($notnull_bool(t.get$isBool()) && ($notnull_bool(this.get$library().get$isC ore()) || $notnull_bool(this.get$library().get$isCoreImpl()))) {
13151 return world.nonNullBool; 13185 return world.nonNullBool;
13152 } 13186 }
13153 return (t && t.is$lang_Type()); 13187 return (t && t.is$lang_Type());
13154 } 13188 }
13155 Member.prototype.get$definition = function() { 13189 Member.prototype.get$definition = function() {
13156 return null; 13190 return null;
13157 } 13191 }
(...skipping 13 matching lines...) Expand all
13171 world.error('static members can not hide parent members', this.get$span(), o ther.get$span()); 13205 world.error('static members can not hide parent members', this.get$span(), o ther.get$span());
13172 return false; 13206 return false;
13173 } 13207 }
13174 else if ($notnull_bool(other.get$isStatic())) { 13208 else if ($notnull_bool(other.get$isStatic())) {
13175 world.error('can not override static member', this.get$span(), other.get$spa n()); 13209 world.error('can not override static member', this.get$span(), other.get$spa n());
13176 return false; 13210 return false;
13177 } 13211 }
13178 return true; 13212 return true;
13179 } 13213 }
13180 Member.prototype.get$generatedFactoryName = function() { 13214 Member.prototype.get$generatedFactoryName = function() {
13181 $assert(this.get$isFactory(), "this.isFactory", "member.dart", 195, 12); 13215 $assert(this.get$isFactory(), "this.isFactory", "member.dart", 201, 12);
13182 var prefix = ('' + this.declaringType.get$jsname() + '.' + this.get$constructo rName() + '\$'); 13216 var prefix = ('' + this.declaringType.get$jsname() + '.' + this.get$constructo rName() + '\$');
13183 if (this.name == '') { 13217 if (this.name == '') {
13184 return ('' + prefix + 'factory'); 13218 return ('' + prefix + 'factory');
13185 } 13219 }
13186 else { 13220 else {
13187 return ('' + prefix + '' + this.name + '\$factory'); 13221 return ('' + prefix + '' + this.name + '\$factory');
13188 } 13222 }
13189 } 13223 }
13190 Member.prototype.resolveType = function(node, isRequired) { 13224 Member.prototype.resolveType = function(node, isRequired) {
13191 var type = this.declaringType.resolveType(node, isRequired); 13225 var type = this.declaringType.resolveType(node, isRequired);
13192 if ($notnull_bool(this.get$isStatic()) && $notnull_bool(type.get$hasTypeParams ())) { 13226 if ($notnull_bool(this.get$isStatic()) && $notnull_bool(type.get$hasTypeParams ())) {
13193 world.error('using type parameter in static context', node.span); 13227 world.error('using type parameter in static context', node.span);
13194 } 13228 }
13195 return (type && type.is$lang_Type()); 13229 return (type && type.is$lang_Type());
13196 } 13230 }
13197 Member.prototype._get$3 = function($0, $1, $2) { 13231 Member.prototype._get$3 = function($0, $1, $2) {
13198 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value())); 13232 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()));
13199 }; 13233 };
13200 Member.prototype._set$4 = function($0, $1, $2, $3) { 13234 Member.prototype._set$4 = function($0, $1, $2, $3) {
13201 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()), ($3 && $3.is$Value())); 13235 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()), ($3 && $3.is$Value()));
13202 }; 13236 };
13203 Member.prototype.canInvoke$2 = function($0, $1) { 13237 Member.prototype.canInvoke$2 = function($0, $1) {
13204 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments( ))); 13238 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments( )));
13205 }; 13239 };
13240 Member.prototype.computeValue$0 = function() {
13241 return this.computeValue();
13242 };
13206 Member.prototype.invoke$4 = function($0, $1, $2, $3) { 13243 Member.prototype.invoke$4 = function($0, $1, $2, $3) {
13207 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); 13244 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false);
13208 }; 13245 };
13209 Member.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { 13246 Member.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) {
13210 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); 13247 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic));
13211 }; 13248 };
13212 Member.prototype.invoke$5 = function($0, $1, $2, $3, $4) { 13249 Member.prototype.invoke$5 = function($0, $1, $2, $3, $4) {
13213 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); 13250 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4));
13214 }; 13251 };
13215 Member.prototype.provideFieldSyntax$0 = function() { 13252 Member.prototype.provideFieldSyntax$0 = function() {
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
13595 } 13632 }
13596 ConcreteMember.prototype.get$isAbstract = function() { 13633 ConcreteMember.prototype.get$isAbstract = function() {
13597 return this.baseMember.get$isAbstract(); 13634 return this.baseMember.get$isAbstract();
13598 } 13635 }
13599 ConcreteMember.prototype.get$isConst = function() { 13636 ConcreteMember.prototype.get$isConst = function() {
13600 return this.baseMember.get$isConst(); 13637 return this.baseMember.get$isConst();
13601 } 13638 }
13602 ConcreteMember.prototype.get$isFactory = function() { 13639 ConcreteMember.prototype.get$isFactory = function() {
13603 return this.baseMember.get$isFactory(); 13640 return this.baseMember.get$isFactory();
13604 } 13641 }
13642 ConcreteMember.prototype.get$isFinal = function() {
13643 return this.baseMember.get$isFinal();
13644 }
13605 ConcreteMember.prototype.get$jsname = function() { 13645 ConcreteMember.prototype.get$jsname = function() {
13606 return this.baseMember.get$jsname(); 13646 return this.baseMember.get$jsname();
13607 } 13647 }
13608 ConcreteMember.prototype.set$jsname = function(name) { 13648 ConcreteMember.prototype.set$jsname = function(name) {
13609 return world.internalError('bad set of jsname on ConcreteMember'); 13649 return world.internalError('bad set of jsname on ConcreteMember');
13610 } 13650 }
13611 ConcreteMember.prototype.get$canGet = function() { 13651 ConcreteMember.prototype.get$canGet = function() {
13612 return this.baseMember.get$canGet(); 13652 return this.baseMember.get$canGet();
13613 } 13653 }
13614 ConcreteMember.prototype.get$canSet = function() { 13654 ConcreteMember.prototype.get$canSet = function() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
13652 return this.baseMember.get$initDelegate(); 13692 return this.baseMember.get$initDelegate();
13653 } 13693 }
13654 ConcreteMember.prototype.set$initDelegate = function(ctor) { 13694 ConcreteMember.prototype.set$initDelegate = function(ctor) {
13655 this.baseMember.set$initDelegate(ctor); 13695 this.baseMember.set$initDelegate(ctor);
13656 } 13696 }
13657 ConcreteMember.prototype.resolveType = function(node, isRequired) { 13697 ConcreteMember.prototype.resolveType = function(node, isRequired) {
13658 var $0; 13698 var $0;
13659 var type = this.baseMember.resolveType(node, isRequired); 13699 var type = this.baseMember.resolveType(node, isRequired);
13660 return (($0 = type.resolveTypeParams$1(this.declaringType)) && $0.is$lang_Type ()); 13700 return (($0 = type.resolveTypeParams$1(this.declaringType)) && $0.is$lang_Type ());
13661 } 13701 }
13702 ConcreteMember.prototype.computeValue = function() {
13703 return this.baseMember.computeValue();
13704 }
13662 ConcreteMember.prototype.override = function(other) { 13705 ConcreteMember.prototype.override = function(other) {
13663 return this.baseMember.override(other); 13706 return this.baseMember.override(other);
13664 } 13707 }
13665 ConcreteMember.prototype._get = function(context, node, target, isDynamic) { 13708 ConcreteMember.prototype._get = function(context, node, target, isDynamic) {
13666 var ret = this.baseMember._get(context, node, target, isDynamic); 13709 var ret = this.baseMember._get(context, node, target, isDynamic);
13667 return new Value(this.get$inferredResult(), ret.code, node.span, true); 13710 return new Value(this.get$inferredResult(), ret.code, node.span, true);
13668 } 13711 }
13669 ConcreteMember.prototype._set = function(context, node, target, value, isDynamic ) { 13712 ConcreteMember.prototype._set = function(context, node, target, value, isDynamic ) {
13670 var ret = this.baseMember._set(context, node, target, value, isDynamic); 13713 var ret = this.baseMember._set(context, node, target, value, isDynamic);
13671 return new Value(this.returnType, ret.code, node.span, true); 13714 return new Value(this.returnType, ret.code, node.span, true);
(...skipping 11 matching lines...) Expand all
13683 } 13726 }
13684 ConcreteMember.prototype._get$3 = function($0, $1, $2) { 13727 ConcreteMember.prototype._get$3 = function($0, $1, $2) {
13685 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()), false); 13728 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()), false);
13686 }; 13729 };
13687 ConcreteMember.prototype._set$4 = function($0, $1, $2, $3) { 13730 ConcreteMember.prototype._set$4 = function($0, $1, $2, $3) {
13688 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()), ($3 && $3.is$Value()), false); 13731 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ( $2 && $2.is$Value()), ($3 && $3.is$Value()), false);
13689 }; 13732 };
13690 ConcreteMember.prototype.canInvoke$2 = function($0, $1) { 13733 ConcreteMember.prototype.canInvoke$2 = function($0, $1) {
13691 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments( ))); 13734 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments( )));
13692 }; 13735 };
13736 ConcreteMember.prototype.computeValue$0 = function() {
13737 return this.computeValue();
13738 };
13693 ConcreteMember.prototype.invoke$4 = function($0, $1, $2, $3) { 13739 ConcreteMember.prototype.invoke$4 = function($0, $1, $2, $3) {
13694 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); 13740 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false);
13695 }; 13741 };
13696 ConcreteMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic ) { 13742 ConcreteMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic ) {
13697 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); 13743 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic));
13698 }; 13744 };
13699 ConcreteMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { 13745 ConcreteMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) {
13700 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); 13746 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), ($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4));
13701 }; 13747 };
13702 ConcreteMember.prototype.provideFieldSyntax$0 = function() { 13748 ConcreteMember.prototype.provideFieldSyntax$0 = function() {
(...skipping 5535 matching lines...) Expand 10 before | Expand all | Expand 10 after
19238 } 19284 }
19239 lang_Type.prototype.get$parent = function() { 19285 lang_Type.prototype.get$parent = function() {
19240 return null; 19286 return null;
19241 } 19287 }
19242 lang_Type.prototype.getAllMembers = function() { 19288 lang_Type.prototype.getAllMembers = function() {
19243 return $map([]); 19289 return $map([]);
19244 } 19290 }
19245 lang_Type.prototype.hashCode = function() { 19291 lang_Type.prototype.hashCode = function() {
19246 return this.name.hashCode(); 19292 return this.name.hashCode();
19247 } 19293 }
19294 lang_Type.prototype._checkOverride = function(member) {
19295 var parentMember = this._getMemberInParents(member.name);
19296 if ($notnull_bool($ne(parentMember, null))) {
19297 if (!$notnull_bool(member.get$isPrivate()) || $eq(member.get$library(), pare ntMember.get$library())) {
19298 member.override((parentMember && parentMember.is$Member()));
19299 }
19300 }
19301 }
19302 lang_Type.prototype._createNotEqualMember = function() {
19303 var $0;
19304 var eq = (($0 = this.get$members().$index('\$eq')) && $0.is$MethodMember());
19305 if (eq == null) {
19306 world.internalError('INTERNAL: object does not define ==', this.get$definiti on().span);
19307 }
19308 var ne = new MethodMember('\$ne', this, eq.definition);
19309 ne.isGenerated = true;
19310 ne.returnType = eq.returnType;
19311 ne.parameters = eq.parameters;
19312 ne.isStatic = eq.isStatic;
19313 ne.isAbstract = eq.isAbstract;
19314 return ne;
19315 }
19316 lang_Type.prototype._getMemberInParents = function(memberName) {
19317 if ($notnull_bool(this.get$isClass())) {
19318 if (this.get$parent() != null) {
19319 return this.get$parent().getMember(memberName);
19320 }
19321 else if ($notnull_bool(this.get$isObject())) {
19322 if (memberName == '\$ne') {
19323 var ret = this._createNotEqualMember();
19324 this.get$members().$setindex(memberName, ret);
19325 return (ret && ret.is$Member());
19326 }
19327 return null;
19328 }
19329 }
19330 else {
19331 if (this.get$interfaces() != null && this.get$interfaces().length > 0) {
19332 var $list = this.get$interfaces();
19333 for (var $i = 0;$i < $list.length; $i++) {
19334 var i = $list.$index($i);
19335 var ret = i.getMember$1(memberName);
19336 if ($notnull_bool($ne(ret, null))) {
19337 return (ret && ret.is$Member());
19338 }
19339 }
19340 return null;
19341 }
19342 else {
19343 return world.objectType.getMember(memberName);
19344 }
19345 }
19346 }
19248 lang_Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { 19347 lang_Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) {
19249 if (!$notnull_bool(this.isSubtypeOf(other))) { 19348 if (!$notnull_bool(this.isSubtypeOf(other))) {
19250 var msg = ('type ' + this.name + ' is not a subtype of ' + other.name + ''); 19349 var msg = ('type ' + this.name + ' is not a subtype of ' + other.name + '');
19251 if ($notnull_bool(typeErrors)) { 19350 if ($notnull_bool(typeErrors)) {
19252 world.error($assert_String(msg), span); 19351 world.error($assert_String(msg), span);
19253 } 19352 }
19254 else { 19353 else {
19255 world.warning($assert_String(msg), span); 19354 world.warning($assert_String(msg), span);
19256 } 19355 }
19257 } 19356 }
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
19641 if ($notnull_bool($ne(newType, t))) needsNewType = true; 19740 if ($notnull_bool($ne(newType, t))) needsNewType = true;
19642 newTypeArgs.add$1(newType); 19741 newTypeArgs.add$1(newType);
19643 } 19742 }
19644 if (!$notnull_bool(needsNewType)) return this; 19743 if (!$notnull_bool(needsNewType)) return this;
19645 return this.genericType.getOrMakeConcreteType((newTypeArgs && newTypeArgs.is$L ist$Type())); 19744 return this.genericType.getOrMakeConcreteType((newTypeArgs && newTypeArgs.is$L ist$Type()));
19646 } 19745 }
19647 ConcreteType.prototype.getOrMakeConcreteType = function(typeArgs) { 19746 ConcreteType.prototype.getOrMakeConcreteType = function(typeArgs) {
19648 return this.genericType.getOrMakeConcreteType(typeArgs); 19747 return this.genericType.getOrMakeConcreteType(typeArgs);
19649 } 19748 }
19650 ConcreteType.prototype.get$parent = function() { 19749 ConcreteType.prototype.get$parent = function() {
19651 return this.genericType.get$parent(); 19750 if (this._parent == null && this.genericType.get$parent() != null) {
19751 this._parent = this.genericType.get$parent().resolveTypeParams(this);
19752 }
19753 return this._parent;
19652 } 19754 }
19653 ConcreteType.prototype.get$interfaces = function() { 19755 ConcreteType.prototype.get$interfaces = function() {
19654 if (this._interfaces == null && this.genericType.interfaces != null) { 19756 if (this._interfaces == null && this.genericType.interfaces != null) {
19655 this._interfaces = []; 19757 this._interfaces = [];
19656 var $list = this.genericType.interfaces; 19758 var $list = this.genericType.interfaces;
19657 for (var $i = 0;$i < $list.length; $i++) { 19759 for (var $i = 0;$i < $list.length; $i++) {
19658 var i = $list.$index($i); 19760 var i = $list.$index($i);
19659 this._interfaces.add(i.resolveTypeParams$1(this)); 19761 this._interfaces.add(i.resolveTypeParams$1(this));
19660 } 19762 }
19661 } 19763 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
19703 ret = new ConcreteMember($assert_String(genericMember.get$name()), this, gen ericMember); 19805 ret = new ConcreteMember($assert_String(genericMember.get$name()), this, gen ericMember);
19704 this.factories.addFactory(this.name, constructorName, (ret && ret.is$Member( ))); 19806 this.factories.addFactory(this.name, constructorName, (ret && ret.is$Member( )));
19705 } 19807 }
19706 else { 19808 else {
19707 ret = new ConcreteMember(this.name, this, genericMember); 19809 ret = new ConcreteMember(this.name, this, genericMember);
19708 this.constructors.$setindex(constructorName, ret); 19810 this.constructors.$setindex(constructorName, ret);
19709 } 19811 }
19710 return ret; 19812 return ret;
19711 } 19813 }
19712 ConcreteType.prototype.getMember = function(memberName) { 19814 ConcreteType.prototype.getMember = function(memberName) {
19713 var ret = this.members.$index(memberName); 19815 var $0;
19714 if ($notnull_bool($ne(ret, null))) return (ret && ret.is$Member()); 19816 var member = (($0 = this.members.$index(memberName)) && $0.is$Member());
19715 var genericMember = this.genericType.getMember(memberName); 19817 if (member != null) {
19716 if ($notnull_bool(genericMember == null)) return null; 19818 this._checkOverride(member);
19717 ret = new ConcreteMember($assert_String(genericMember.get$name()), this, gener icMember); 19819 return member;
19718 this.members.$setindex(memberName, ret); 19820 }
19719 return (ret && ret.is$Member()); 19821 var genericMember = this.genericType.members.$index(memberName);
19822 if ($notnull_bool($ne(genericMember, null))) {
19823 member = new ConcreteMember($assert_String(genericMember.get$name()), this, genericMember);
19824 this.members.$setindex(memberName, member);
19825 return member;
19826 }
19827 return this._getMemberInParents(memberName);
19720 } 19828 }
19721 ConcreteType.prototype.resolveMember = function(memberName) { 19829 ConcreteType.prototype.resolveMember = function(memberName) {
19722 var mem = this.getMember(memberName); 19830 var mem = this.getMember(memberName);
19723 if ($notnull_bool(mem == null)) return null; 19831 if ($notnull_bool(mem == null)) return null;
19724 var ret = new MemberSet((mem && mem.is$Member()), false); 19832 var ret = new MemberSet((mem && mem.is$Member()), false);
19725 if ($notnull_bool(mem.get$isStatic())) return (ret && ret.is$MemberSet()); 19833 if ($notnull_bool(mem.get$isStatic())) return (ret && ret.is$MemberSet());
19726 var $list = this.genericType.get$subtypes(); 19834 var $list = this.genericType.get$subtypes();
19727 for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) { 19835 for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) {
19728 var t = $i.next$0(); 19836 var t = $i.next$0();
19729 var m = t.get$members().$index(memberName); 19837 var m = t.get$members().$index(memberName);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
19797 DefinedType.prototype.set$constructors = function(value) { return this.construct ors = value; }; 19905 DefinedType.prototype.set$constructors = function(value) { return this.construct ors = value; };
19798 DefinedType.prototype.get$members = function() { return this.members; }; 19906 DefinedType.prototype.get$members = function() { return this.members; };
19799 DefinedType.prototype.set$members = function(value) { return this.members = valu e; }; 19907 DefinedType.prototype.set$members = function(value) { return this.members = valu e; };
19800 DefinedType.prototype.get$factories = function() { return this.factories; }; 19908 DefinedType.prototype.get$factories = function() { return this.factories; };
19801 DefinedType.prototype.set$factories = function(value) { return this.factories = value; }; 19909 DefinedType.prototype.set$factories = function(value) { return this.factories = value; };
19802 DefinedType.prototype.get$isUsed = function() { return this.isUsed; }; 19910 DefinedType.prototype.get$isUsed = function() { return this.isUsed; };
19803 DefinedType.prototype.set$isUsed = function(value) { return this.isUsed = value; }; 19911 DefinedType.prototype.set$isUsed = function(value) { return this.isUsed = value; };
19804 DefinedType.prototype.get$isNativeType = function() { return this.isNativeType; }; 19912 DefinedType.prototype.get$isNativeType = function() { return this.isNativeType; };
19805 DefinedType.prototype.set$isNativeType = function(value) { return this.isNativeT ype = value; }; 19913 DefinedType.prototype.set$isNativeType = function(value) { return this.isNativeT ype = value; };
19806 DefinedType.prototype.setDefinition = function(def) { 19914 DefinedType.prototype.setDefinition = function(def) {
19807 $assert(this.definition == null, "definition == null", "type.dart", 632, 12); 19915 $assert(this.definition == null, "definition == null", "type.dart", 703, 12);
19808 this.definition = def; 19916 this.definition = def;
19809 if ((this.definition instanceof TypeDefinition) && this.definition.get$nativeT ype() != null) { 19917 if ((this.definition instanceof TypeDefinition) && this.definition.get$nativeT ype() != null) {
19810 this.isNativeType = true; 19918 this.isNativeType = true;
19811 } 19919 }
19812 if (this.definition != null && this.definition.get$typeParameters() != null) { 19920 if (this.definition != null && this.definition.get$typeParameters() != null) {
19813 this._concreteTypes = $map([]); 19921 this._concreteTypes = $map([]);
19814 this.typeParameters = []; 19922 this.typeParameters = [];
19815 var $list = this.definition.get$typeParameters(); 19923 var $list = this.definition.get$typeParameters();
19816 for (var $i = 0;$i < $list.length; $i++) { 19924 for (var $i = 0;$i < $list.length; $i++) {
19817 var tp = $list.$index($i); 19925 var tp = $list.$index($i);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
19907 var resolvedInterface = this.resolveType((type && type.is$TypeReference()), true); 20015 var resolvedInterface = this.resolveType((type && type.is$TypeReference()), true);
19908 if ($notnull_bool(resolvedInterface.get$isClosed()) && !($notnull_bool(this. library.get$isCore()) || $notnull_bool(this.library.get$isCoreImpl()))) { 20016 if ($notnull_bool(resolvedInterface.get$isClosed()) && !($notnull_bool(this. library.get$isCore()) || $notnull_bool(this.library.get$isCoreImpl()))) {
19909 world.error(('can not implement "' + resolvedInterface.get$name() + '": ') + 'only native implementation allowed', (($0 = type.get$span()) && $0.is$Source Span())); 20017 world.error(('can not implement "' + resolvedInterface.get$name() + '": ') + 'only native implementation allowed', (($0 = type.get$span()) && $0.is$Source Span()));
19910 } 20018 }
19911 resolvedInterface.addDirectSubtype$1(this); 20019 resolvedInterface.addDirectSubtype$1(this);
19912 interfaces.add$1(resolvedInterface); 20020 interfaces.add$1(resolvedInterface);
19913 } 20021 }
19914 return (interfaces && interfaces.is$List$Type()); 20022 return (interfaces && interfaces.is$List$Type());
19915 } 20023 }
19916 DefinedType.prototype.addDirectSubtype = function(type) { 20024 DefinedType.prototype.addDirectSubtype = function(type) {
19917 $assert(this._subtypes == null, "_subtypes == null", "type.dart", 748, 12); 20025 $assert(this._subtypes == null, "_subtypes == null", "type.dart", 819, 12);
19918 this.directSubtypes.add(type); 20026 this.directSubtypes.add(type);
19919 } 20027 }
19920 DefinedType.prototype.get$subtypes = function() { 20028 DefinedType.prototype.get$subtypes = function() {
19921 var $0; 20029 var $0;
19922 if (this._subtypes == null) { 20030 if (this._subtypes == null) {
19923 this._subtypes = new HashSetImplementation(); 20031 this._subtypes = new HashSetImplementation();
19924 var $list = this.directSubtypes; 20032 var $list = this.directSubtypes;
19925 for (var $i = this.directSubtypes.iterator(); $i.hasNext$0(); ) { 20033 for (var $i = this.directSubtypes.iterator(); $i.hasNext$0(); ) {
19926 var st = $i.next$0(); 20034 var st = $i.next$0();
19927 this._subtypes.add(st); 20035 this._subtypes.add(st);
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
20158 this.addMethod(null, (c && c.is$FunctionDefinition())); 20266 this.addMethod(null, (c && c.is$FunctionDefinition()));
20159 this.constructors.$index('').resolve$1(this); 20267 this.constructors.$index('').resolve$1(this);
20160 return this.constructors.$index(''); 20268 return this.constructors.$index('');
20161 } 20269 }
20162 return null; 20270 return null;
20163 } 20271 }
20164 DefinedType.prototype.getMember = function(memberName) { 20272 DefinedType.prototype.getMember = function(memberName) {
20165 var $0; 20273 var $0;
20166 var member = (($0 = this.members.$index(memberName)) && $0.is$Member()); 20274 var member = (($0 = this.members.$index(memberName)) && $0.is$Member());
20167 if (member != null) { 20275 if (member != null) {
20168 var parentMember = this.getMemberInParents(memberName); 20276 this._checkOverride(member);
20169 if ($notnull_bool($ne(parentMember, null))) {
20170 if (!$notnull_bool(member.get$isPrivate()) || $eq(member.get$library(), pa rentMember.get$library())) {
20171 member.override((parentMember && parentMember.is$Member()));
20172 }
20173 }
20174 return member; 20277 return member;
20175 } 20278 }
20176 if ($notnull_bool(this.get$isTop())) { 20279 if ($notnull_bool(this.get$isTop())) {
20177 var libType = this.library.findTypeByName(memberName); 20280 var libType = this.library.findTypeByName(memberName);
20178 if ($notnull_bool($ne(libType, null))) { 20281 if ($notnull_bool($ne(libType, null))) {
20179 return (($0 = libType.get$typeMember()) && $0.is$Member()); 20282 return (($0 = libType.get$typeMember()) && $0.is$Member());
20180 } 20283 }
20181 } 20284 }
20182 return this.getMemberInParents(memberName); 20285 return this._getMemberInParents(memberName);
20183 }
20184 DefinedType.prototype.getMemberInParents = function(memberName) {
20185 if ($notnull_bool(this.isClass)) {
20186 if (this.get$parent() != null) {
20187 return this.get$parent().getMember(memberName);
20188 }
20189 else if ($notnull_bool(this.get$isObject())) {
20190 if (memberName == '\$ne') {
20191 var ret = this._createNotEqualMember();
20192 this.members.$setindex(memberName, ret);
20193 return (ret && ret.is$Member());
20194 }
20195 return null;
20196 }
20197 }
20198 else {
20199 if (this.interfaces != null && this.interfaces.length > 0) {
20200 var $list = this.interfaces;
20201 for (var $i = 0;$i < $list.length; $i++) {
20202 var i = $list.$index($i);
20203 var ret = i.getMember$1(memberName);
20204 if ($notnull_bool($ne(ret, null))) {
20205 return (ret && ret.is$Member());
20206 }
20207 }
20208 return null;
20209 }
20210 else {
20211 return world.objectType.getMember(memberName);
20212 }
20213 }
20214 } 20286 }
20215 DefinedType.prototype.resolveMember = function(memberName) { 20287 DefinedType.prototype.resolveMember = function(memberName) {
20216 var $0; 20288 var $0;
20217 var ret = (($0 = this._resolvedMembers.$index(memberName)) && $0.is$MemberSet( )); 20289 var ret = (($0 = this._resolvedMembers.$index(memberName)) && $0.is$MemberSet( ));
20218 if (ret != null) return ret; 20290 if (ret != null) return ret;
20219 var member = this.getMember(memberName); 20291 var member = this.getMember(memberName);
20220 if (member == null) { 20292 if (member == null) {
20221 return null; 20293 return null;
20222 } 20294 }
20223 ret = new MemberSet(member, false); 20295 ret = new MemberSet(member, false);
(...skipping 10 matching lines...) Expand all
20234 m = t.getMember$1(memberName); 20306 m = t.getMember$1(memberName);
20235 } 20307 }
20236 else { 20308 else {
20237 m = t.get$members().$index(memberName); 20309 m = t.get$members().$index(memberName);
20238 } 20310 }
20239 if ($notnull_bool($ne(m, null))) ret.add((m && m.is$Member())); 20311 if ($notnull_bool($ne(m, null))) ret.add((m && m.is$Member()));
20240 } 20312 }
20241 return ret; 20313 return ret;
20242 } 20314 }
20243 } 20315 }
20244 DefinedType.prototype._createNotEqualMember = function() {
20245 var $0;
20246 var eq = (($0 = this.members.$index('\$eq')) && $0.is$MethodMember());
20247 if (eq == null) {
20248 world.internalError('INTERNAL: object does not define ==', this.definition.s pan);
20249 }
20250 var ne = new MethodMember('\$ne', this, eq.definition);
20251 ne.isGenerated = true;
20252 ne.returnType = eq.returnType;
20253 ne.parameters = eq.parameters;
20254 ne.isStatic = eq.isStatic;
20255 ne.isAbstract = eq.isAbstract;
20256 return ne;
20257 }
20258 DefinedType._getDottedName = function(type) { 20316 DefinedType._getDottedName = function(type) {
20259 if (type.names != null) { 20317 if (type.names != null) {
20260 var names = map(type.names, (function (n) { 20318 var names = map(type.names, (function (n) {
20261 return n.get$name(); 20319 return n.get$name();
20262 }) 20320 })
20263 ); 20321 );
20264 return type.name.name + '.' + Strings.join((names && names.is$List$String()) , '.'); 20322 return type.name.name + '.' + Strings.join((names && names.is$List$String()) , '.');
20265 } 20323 }
20266 else { 20324 else {
20267 return type.name.name; 20325 return type.name.name;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
20335 } 20393 }
20336 else { 20394 else {
20337 world.internalError('unknown type reference', node.span); 20395 world.internalError('unknown type reference', node.span);
20338 } 20396 }
20339 return node.type; 20397 return node.type;
20340 } 20398 }
20341 DefinedType.prototype.resolveTypeParams = function(inType) { 20399 DefinedType.prototype.resolveTypeParams = function(inType) {
20342 return this; 20400 return this;
20343 } 20401 }
20344 DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) { 20402 DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) {
20345 $assert(this.get$isGeneric(), "isGeneric", "type.dart", 1231, 12); 20403 $assert(this.get$isGeneric(), "isGeneric", "type.dart", 1248, 12);
20346 var names = [this.name]; 20404 var names = [this.name];
20347 var typeMap = $map([]); 20405 var typeMap = $map([]);
20348 for (var i = 0; 20406 for (var i = 0;
20349 i < typeArgs.length; i++) { 20407 i < typeArgs.length; i++) {
20350 var paramName = this.typeParameters.$index(i).get$name(); 20408 var paramName = this.typeParameters.$index(i).get$name();
20351 typeMap.$setindex(paramName, typeArgs.$index(i)); 20409 typeMap.$setindex(paramName, typeArgs.$index(i));
20352 names.add$1(typeArgs.$index(i).get$name()); 20410 names.add$1(typeArgs.$index(i).get$name());
20353 } 20411 }
20354 var concreteName = Strings.join((names && names.is$List$String()), '\$'); 20412 var concreteName = Strings.join((names && names.is$List$String()), '\$');
20355 var ret = this._concreteTypes.$index(concreteName); 20413 var ret = this._concreteTypes.$index(concreteName);
20356 if ($notnull_bool(ret == null)) { 20414 if ($notnull_bool(ret == null)) {
20357 ret = new ConcreteType($assert_String(concreteName), this, typeMap, typeArgs ); 20415 ret = new ConcreteType($assert_String(concreteName), this, typeMap, typeArgs );
20358 this._concreteTypes.$setindex(concreteName, ret); 20416 this._concreteTypes.$setindex(concreteName, ret);
20359 } 20417 }
20360 return (ret && ret.is$lang_Type()); 20418 return (ret && ret.is$lang_Type());
20361 } 20419 }
20362 DefinedType.prototype.getCallStub = function(args) { 20420 DefinedType.prototype.getCallStub = function(args) {
20363 $assert(this.get$isFunction(), "isFunction", "type.dart", 1251, 12); 20421 $assert(this.get$isFunction(), "isFunction", "type.dart", 1268, 12);
20364 var name = _getCallStubName('call', args); 20422 var name = _getCallStubName('call', args);
20365 if (this.varStubs == null) this.varStubs = $map([]); 20423 if (this.varStubs == null) this.varStubs = $map([]);
20366 var stub = this.varStubs.$index(name); 20424 var stub = this.varStubs.$index(name);
20367 if ($notnull_bool(stub == null)) { 20425 if ($notnull_bool(stub == null)) {
20368 stub = new VarFunctionStub($assert_String(name), args); 20426 stub = new VarFunctionStub($assert_String(name), args);
20369 this.varStubs.$setindex(name, stub); 20427 this.varStubs.$setindex(name, stub);
20370 } 20428 }
20371 return (stub && stub.is$VarFunctionStub()); 20429 return (stub && stub.is$VarFunctionStub());
20372 } 20430 }
20373 DefinedType.prototype.addDirectSubtype$1 = function($0) { 20431 DefinedType.prototype.addDirectSubtype$1 = function($0) {
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
20606 world.error($assert_String(message), node.span); 20664 world.error($assert_String(message), node.span);
20607 } 20665 }
20608 else { 20666 else {
20609 world.warning($assert_String(message), node.span); 20667 world.warning($assert_String(message), node.span);
20610 } 20668 }
20611 } 20669 }
20612 } 20670 }
20613 if ($notnull_bool(member == null) && !$notnull_bool(this.isSuper) && !$notnull _bool(this.isType)) { 20671 if ($notnull_bool(member == null) && !$notnull_bool(this.isSuper) && !$notnull _bool(this.isType)) {
20614 member = context.findMembers(name); 20672 member = context.findMembers(name);
20615 if ($notnull_bool(member == null) && !$notnull_bool(isDynamic)) { 20673 if ($notnull_bool(member == null) && !$notnull_bool(isDynamic)) {
20616 world.warning(('' + name + ' is not defined anywhere in the world.'), node .span); 20674 var where = 'the world';
20675 if (name.startsWith('_')) {
20676 where = ('library "' + context.get$library().name + '"');
20677 }
20678 world.warning(('' + name + ' is not defined anywhere in ' + where + '.'), node.span);
20617 } 20679 }
20618 } 20680 }
20619 return member; 20681 return member;
20620 } 20682 }
20621 Value.prototype.checkFirstClass = function(span) { 20683 Value.prototype.checkFirstClass = function(span) {
20622 if ($notnull_bool(this.isType)) { 20684 if ($notnull_bool(this.isType)) {
20623 world.error('Types are not first class', span); 20685 world.error('Types are not first class', span);
20624 } 20686 }
20625 } 20687 }
20626 Value.prototype._varCall = function(context, args) { 20688 Value.prototype._varCall = function(context, args) {
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
20785 for (var i = 0; 20847 for (var i = 0;
20786 i < args.get$length(); i++) { 20848 i < args.get$length(); i++) {
20787 argsCode.add$1(args.values.$index(i).get$code()); 20849 argsCode.add$1(args.values.$index(i).get$code());
20788 } 20850 }
20789 pos = Strings.join((argsCode && argsCode.is$List$String()), ", "); 20851 pos = Strings.join((argsCode && argsCode.is$List$String()), ", ");
20790 } 20852 }
20791 var noSuchArgs = [new Value(world.stringType, ('"' + name + '"'), node.span, t rue), new Value(world.listType, ('[' + pos + ']'), node.span, true)]; 20853 var noSuchArgs = [new Value(world.stringType, ('"' + name + '"'), node.span, t rue), new Value(world.listType, ('[' + pos + ']'), node.span, true)];
20792 return (($0 = this._resolveMember(context, 'noSuchMethod', node, false).invoke $4(context, node, this, new Arguments(null, noSuchArgs))) && $0.is$Value()); 20854 return (($0 = this._resolveMember(context, 'noSuchMethod', node, false).invoke $4(context, node, this, new Arguments(null, noSuchArgs))) && $0.is$Value());
20793 } 20855 }
20794 Value.prototype.invokeSpecial = function(name, args, returnType) { 20856 Value.prototype.invokeSpecial = function(name, args, returnType) {
20795 $assert(name.startsWith('\$'), "name.startsWith('\\$')", "value.dart", 484, 12 ); 20857 $assert(name.startsWith('\$'), "name.startsWith('\\$')", "value.dart", 488, 12 );
20796 $assert(!$notnull_bool(args.get$hasNames()), "!args.hasNames", "value.dart", 4 85, 12); 20858 $assert(!$notnull_bool(args.get$hasNames()), "!args.hasNames", "value.dart", 4 89, 12);
20797 var argsString = args.getCode(); 20859 var argsString = args.getCode();
20798 if (name == '\$index' || name == '\$setindex') { 20860 if (name == '\$index' || name == '\$setindex') {
20799 return new Value(returnType, ('' + this.code + '.' + name + '(' + argsString + ')'), this.span, true); 20861 return new Value(returnType, ('' + this.code + '.' + name + '(' + argsString + ')'), this.span, true);
20800 } 20862 }
20801 else { 20863 else {
20802 if (argsString.length > 0) argsString = (', ' + argsString + ''); 20864 if (argsString.length > 0) argsString = (', ' + argsString + '');
20803 world.gen.corejs.useOperator(name); 20865 world.gen.corejs.useOperator(name);
20804 return new Value(returnType, ('' + name + '(' + this.code + '' + argsString + ')'), this.span, true); 20866 return new Value(returnType, ('' + name + '(' + this.code + '' + argsString + ')'), this.span, true);
20805 } 20867 }
20806 } 20868 }
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
21004 BareValue.prototype._ensureCode = function() { 21066 BareValue.prototype._ensureCode = function() {
21005 if (this.code != null) return; 21067 if (this.code != null) return;
21006 if ($notnull_bool(this.isType)) { 21068 if ($notnull_bool(this.isType)) {
21007 this.code = this.type.get$jsname(); 21069 this.code = this.type.get$jsname();
21008 } 21070 }
21009 else { 21071 else {
21010 this.code = this.home._makeThisCode(); 21072 this.code = this.home._makeThisCode();
21011 } 21073 }
21012 } 21074 }
21013 BareValue.prototype._tryResolveMember = function(context, name) { 21075 BareValue.prototype._tryResolveMember = function(context, name) {
21014 $assert($eq(context, this.home), "context == home", "value.dart", 699, 12); 21076 $assert($eq(context, this.home), "context == home", "value.dart", 703, 12);
21015 var member = this.type.resolveMember(name); 21077 var member = this.type.resolveMember(name);
21016 if ($notnull_bool($ne(member, null))) { 21078 if ($notnull_bool($ne(member, null))) {
21017 this._ensureCode(); 21079 this._ensureCode();
21018 return member; 21080 return member;
21019 } 21081 }
21020 member = this.home.get$library().lookup(name, this.span); 21082 member = this.home.get$library().lookup(name, this.span);
21021 if ($notnull_bool($ne(member, null))) { 21083 if ($notnull_bool($ne(member, null))) {
21022 return member; 21084 return member;
21023 } 21085 }
21024 this._ensureCode(); 21086 this._ensureCode();
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
21369 this.throwOnFatal = false 21431 this.throwOnFatal = false
21370 this.showInfo = false 21432 this.showInfo = false
21371 this.showWarnings = true 21433 this.showWarnings = true
21372 // Initializers done 21434 // Initializers done
21373 this.libDir = homedir + '/lib'; 21435 this.libDir = homedir + '/lib';
21374 var ignoreUnrecognizedFlags = false; 21436 var ignoreUnrecognizedFlags = false;
21375 var passedLibDir = false; 21437 var passedLibDir = false;
21376 this.childArgs = []; 21438 this.childArgs = [];
21377 loop: 21439 loop:
21378 for (var i = 2; 21440 for (var i = 2;
21379 i < args.length; i++) { 21441 i < $assert_num(args.length); i++) {
21380 var arg = args.$index(i); 21442 var arg = args.$index(i);
21381 switch (arg) { 21443 switch (arg) {
21382 case '--enable_leg': 21444 case '--enable_leg':
21383 21445
21384 this.enableLeg = true; 21446 this.enableLeg = true;
21385 continue loop; 21447 continue loop;
21386 21448
21387 case '--leg_only': 21449 case '--leg_only':
21388 21450
21389 this.enableLeg = true; 21451 this.enableLeg = true;
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
21815 if (!$notnull_bool(options.compileOnly)) { 21877 if (!$notnull_bool(options.compileOnly)) {
21816 process.argv = [argv.$index(0), argv.$index(1)]; 21878 process.argv = [argv.$index(0), argv.$index(1)];
21817 process.argv.addAll(options.childArgs); 21879 process.argv.addAll(options.childArgs);
21818 vm.runInNewContext($assert_String(code), createSandbox()); 21880 vm.runInNewContext($assert_String(code), createSandbox());
21819 } 21881 }
21820 } 21882 }
21821 else { 21883 else {
21822 process.exit(1); 21884 process.exit(1);
21823 } 21885 }
21824 } 21886 }
21887 // ********** Generic Type Inheritance **************
21888 /** Implements extends for generic types. */
21889 function $inheritsMembers(child, parent) {
21890 child = child.prototype;
21891 parent = parent.prototype;
21892 Object.getOwnPropertyNames(parent).forEach(function(name) {
21893 if (typeof(child[name]) == 'undefined') child[name] = parent[name];
21894 });
21895 }
21896 $inheritsMembers(_DoubleLinkedQueueEntrySentinel$E, DoubleLinkedQueueEntry$E);
21897 $inheritsMembers(_DoubleLinkedQueueEntrySentinel$KeyValuePair$K$V, DoubleLinkedQ ueueEntry$KeyValuePair$K$V);
21898 $inheritsMembers(LinkEntry$T, AbstractLink$T);
21899 $inheritsMembers(ArrayBasedScanner$SourceString, AbstractScanner$SourceString);
21825 // ********** Globals ************** 21900 // ********** Globals **************
21826 var const$0 = new NoMoreElementsException()/*const NoMoreElementsException()*/; 21901 var const$0 = new NoMoreElementsException()/*const NoMoreElementsException()*/;
21827 var const$10 = new StringWrapper('String')/*const SourceString('String')*/; 21902 var const$10 = new StringWrapper('String')/*const SourceString('String')*/;
21828 var const$100 = new Keyword("operator", true)/*const Keyword("operator", true)*/ ; 21903 var const$100 = new Keyword("operator", true)/*const Keyword("operator", true)*/ ;
21829 var const$102 = new Keyword("set", true)/*const Keyword("set", true)*/; 21904 var const$102 = new Keyword("set", true)/*const Keyword("set", true)*/;
21830 var const$104 = new Keyword("source", true)/*const Keyword("source", true)*/; 21905 var const$104 = new Keyword("source", true)/*const Keyword("source", true)*/;
21831 var const$106 = new Keyword("static", true)/*const Keyword("static", true)*/; 21906 var const$106 = new Keyword("static", true)/*const Keyword("static", true)*/;
21832 var const$108 = new Keyword("typedef", true)/*const Keyword("typedef", true)*/; 21907 var const$108 = new Keyword("typedef", true)/*const Keyword("typedef", true)*/;
21833 var const$112 = new StringWrapper('EOF')/*const SourceString('EOF')*/; 21908 var const$112 = new StringWrapper('EOF')/*const SourceString('EOF')*/;
21834 var const$12 = new IllegalAccessException()/*const IllegalAccessException()*/; 21909 var const$12 = new IllegalAccessException()/*const IllegalAccessException()*/;
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
22111 INTERFACE, 22186 INTERFACE,
22112 LIBRARY, 22187 LIBRARY,
22113 NATIVE, 22188 NATIVE,
22114 NEGATE, 22189 NEGATE,
22115 OPERATOR, 22190 OPERATOR,
22116 SET, 22191 SET,
22117 SOURCE, 22192 SOURCE,
22118 STATIC, 22193 STATIC,
22119 TYPEDEF ]*/; 22194 TYPEDEF ]*/;
22120 main(); 22195 main();
OLDNEW
« no previous file with comments | « client/tests/client/client.status ('k') | frog/gen.dart » ('j') | frog/gen.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698