OLD | NEW |
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 2183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2194 } | 2194 } |
2195 return this; | 2195 return this; |
2196 } | 2196 } |
2197 StringBufferImpl.prototype.clear = function() { | 2197 StringBufferImpl.prototype.clear = function() { |
2198 this._buffer = new ListFactory(); | 2198 this._buffer = new ListFactory(); |
2199 this._length = 0; | 2199 this._length = 0; |
2200 return this; | 2200 return this; |
2201 } | 2201 } |
2202 StringBufferImpl.prototype.toString = function() { | 2202 StringBufferImpl.prototype.toString = function() { |
2203 if (this._buffer.length == 0) return ""; | 2203 if (this._buffer.length == 0) return ""; |
2204 if ($notnull_bool($eq(this._buffer.length, 1))) return $assert_String(this._bu
ffer.$index(0)); | 2204 if (this._buffer.length == 1) return $assert_String(this._buffer.$index(0)); |
2205 var result = StringBase.concatAll(this._buffer); | 2205 var result = StringBase.concatAll(this._buffer); |
2206 this._buffer.clear(); | 2206 this._buffer.clear(); |
2207 this._buffer.add(result); | 2207 this._buffer.add(result); |
2208 return result; | 2208 return result; |
2209 } | 2209 } |
2210 StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add; | 2210 StringBufferImpl.prototype.add$1 = StringBufferImpl.prototype.add; |
2211 StringBufferImpl.prototype.addAll$1 = function($0) { | 2211 StringBufferImpl.prototype.addAll$1 = function($0) { |
2212 return this.addAll(($0 && $0.is$Collection$Object())); | 2212 return this.addAll(($0 && $0.is$Collection$Object())); |
2213 }; | 2213 }; |
2214 StringBufferImpl.prototype.isEmpty$0 = function() { | 2214 StringBufferImpl.prototype.isEmpty$0 = function() { |
2215 return this.isEmpty(); | 2215 return this.isEmpty(); |
2216 }; | 2216 }; |
2217 StringBufferImpl.prototype.toString$0 = function() { | 2217 StringBufferImpl.prototype.toString$0 = function() { |
2218 return this.toString(); | 2218 return this.toString(); |
2219 }; | 2219 }; |
2220 // ********** Code for StringBase ************** | 2220 // ********** Code for StringBase ************** |
2221 function StringBase() {} | 2221 function StringBase() {} |
2222 StringBase.createFromCharCodes = function(charCodes) { | 2222 StringBase.createFromCharCodes = function(charCodes) { |
2223 if (Object.getPrototypeOf(charCodes) !== Array.prototype) { | 2223 if (Object.getPrototypeOf(charCodes) !== Array.prototype) { |
2224 var length = charCodes.length; | 2224 var length = charCodes.length; |
2225 var tmp = new Array(length); | 2225 var tmp = new Array(length); |
2226 for (var i = 0; i < length; i++) { | 2226 for (var i = 0; i < length; i++) { |
2227 tmp[i] = charCodes.$index(i); | 2227 tmp[i] = charCodes.$index(i); |
2228 } | 2228 } |
2229 charCodes = tmp; | 2229 charCodes = tmp; |
2230 } | 2230 } |
2231 return String.fromCharCode.apply(null, charCodes); | 2231 return String.fromCharCode.apply(null, charCodes); |
2232 } | 2232 } |
2233 StringBase.join = function(strings, separator) { | 2233 StringBase.join = function(strings, separator) { |
2234 if ($notnull_bool($eq(strings.length, 0))) return ''; | 2234 if (strings.length == 0) return ''; |
2235 var s = $assert_String(strings.$index(0)); | 2235 var s = $assert_String(strings.$index(0)); |
2236 for (var i = 1; | 2236 for (var i = 1; |
2237 i < $assert_num(strings.length); i++) { | 2237 i < strings.length; i++) { |
2238 s = s + separator + strings.$index(i); | 2238 s = s + separator + strings.$index(i); |
2239 } | 2239 } |
2240 return s; | 2240 return s; |
2241 } | 2241 } |
2242 StringBase.concatAll = function(strings) { | 2242 StringBase.concatAll = function(strings) { |
2243 return StringBase.join(strings, ""); | 2243 return StringBase.join(strings, ""); |
2244 } | 2244 } |
2245 // ********** Code for StringImplementation ************** | 2245 // ********** Code for StringImplementation ************** |
2246 StringImplementation = String; | 2246 StringImplementation = String; |
2247 StringImplementation.prototype.is$Pattern = function(){return this;}; | 2247 StringImplementation.prototype.is$Pattern = function(){return this;}; |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2608 // ********** Code for AbstractLink$T ************** | 2608 // ********** Code for AbstractLink$T ************** |
2609 function AbstractLink$T() { | 2609 function AbstractLink$T() { |
2610 // Initializers done | 2610 // Initializers done |
2611 } | 2611 } |
2612 $inherits(AbstractLink$T, AbstractLink); | 2612 $inherits(AbstractLink$T, AbstractLink); |
2613 AbstractLink$T.prototype.is$Link$Element = function(){return this;}; | 2613 AbstractLink$T.prototype.is$Link$Element = function(){return this;}; |
2614 AbstractLink$T.prototype.is$Link$Node = function(){return this;}; | 2614 AbstractLink$T.prototype.is$Link$Node = function(){return this;}; |
2615 AbstractLink$T.prototype.is$Link$Token = function(){return this;}; | 2615 AbstractLink$T.prototype.is$Link$Token = function(){return this;}; |
2616 AbstractLink$T.prototype.is$Link$Type = function(){return this;}; | 2616 AbstractLink$T.prototype.is$Link$Type = function(){return this;}; |
2617 AbstractLink$T.prototype.is$Iterable = function(){return this;}; | 2617 AbstractLink$T.prototype.is$Iterable = function(){return this;}; |
| 2618 AbstractLink$T.prototype.prepend = function(element) { |
| 2619 return new LinkEntry$T(element, this); |
| 2620 } |
2618 AbstractLink$T.prototype.iterator = function() { | 2621 AbstractLink$T.prototype.iterator = function() { |
2619 var $0; | 2622 var $0; |
2620 return (($0 = this.toList().iterator$0()) && $0.is$Iterator$T()); | 2623 return (($0 = this.toList().iterator$0()) && $0.is$Iterator$T()); |
2621 } | 2624 } |
| 2625 AbstractLink$T.prototype.printOn = function(buffer, separatedBy) { |
| 2626 if ($notnull_bool(this.isEmpty())) return; |
| 2627 buffer.add(this.get$head() == null ? 'null' : this.get$head()); |
| 2628 if (separatedBy == null) separatedBy = ''; |
| 2629 for (var link = this.get$tail(); |
| 2630 !$notnull_bool(link.isEmpty()); link = link.get$tail()) { |
| 2631 buffer.add(separatedBy); |
| 2632 buffer.add(link.get$head() == null ? 'null' : link.get$head()); |
| 2633 } |
| 2634 } |
| 2635 AbstractLink$T.prototype.toString = function() { |
| 2636 var buffer = new StringBufferImpl(""); |
| 2637 buffer.add('[ '); |
| 2638 this.printOn(buffer, ', '); |
| 2639 buffer.add(' ]'); |
| 2640 return buffer.toString(); |
| 2641 } |
2622 // ********** Code for LinkTail ************** | 2642 // ********** Code for LinkTail ************** |
2623 function LinkTail() { | 2643 function LinkTail() { |
2624 // Initializers done | 2644 // Initializers done |
2625 AbstractLink$T.call(this); | 2645 AbstractLink$T.call(this); |
2626 } | 2646 } |
2627 $inherits(LinkTail, AbstractLink$T); | 2647 $inherits(LinkTail, AbstractLink$T); |
2628 LinkTail.prototype.is$Link$Element = function(){return this;}; | 2648 LinkTail.prototype.is$Link$Element = function(){return this;}; |
2629 LinkTail.prototype.is$Link$Node = function(){return this;}; | 2649 LinkTail.prototype.is$Link$Node = function(){return this;}; |
2630 LinkTail.prototype.is$Link$Token = function(){return this;}; | 2650 LinkTail.prototype.is$Link$Token = function(){return this;}; |
2631 LinkTail.prototype.is$Link$Type = function(){return this;}; | 2651 LinkTail.prototype.is$Link$Type = function(){return this;}; |
(...skipping 17315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19947 DeclaredIdentifier.prototype.visit = function(visitor) { | 19967 DeclaredIdentifier.prototype.visit = function(visitor) { |
19948 return visitor.visitDeclaredIdentifier(this); | 19968 return visitor.visitDeclaredIdentifier(this); |
19949 } | 19969 } |
19950 DeclaredIdentifier.prototype.visit$1 = function($0) { | 19970 DeclaredIdentifier.prototype.visit$1 = function($0) { |
19951 return this.visit(($0 && $0.is$TreeVisitor())); | 19971 return this.visit(($0 && $0.is$TreeVisitor())); |
19952 }; | 19972 }; |
19953 // ********** Code for lang_Type ************** | 19973 // ********** Code for lang_Type ************** |
19954 function lang_Type(name) { | 19974 function lang_Type(name) { |
19955 this.name = name; | 19975 this.name = name; |
19956 this.isTested = false; | 19976 this.isTested = false; |
| 19977 this._resolvedMembers = $map([]); |
19957 // Initializers done | 19978 // Initializers done |
19958 } | 19979 } |
19959 lang_Type.prototype.is$lang_Type = function(){return this;}; | 19980 lang_Type.prototype.is$lang_Type = function(){return this;}; |
19960 lang_Type.prototype.is$Named = function(){return this;}; | 19981 lang_Type.prototype.is$Named = function(){return this;}; |
19961 lang_Type.prototype.get$name = function() { return this.name; }; | 19982 lang_Type.prototype.get$name = function() { return this.name; }; |
19962 lang_Type.prototype.get$isTested = function() { return this.isTested; }; | 19983 lang_Type.prototype.get$isTested = function() { return this.isTested; }; |
19963 lang_Type.prototype.set$isTested = function(value) { return this.isTested = valu
e; }; | 19984 lang_Type.prototype.set$isTested = function(value) { return this.isTested = valu
e; }; |
19964 lang_Type.prototype.get$typeCheckCode = function() { return this.typeCheckCode;
}; | 19985 lang_Type.prototype.get$typeCheckCode = function() { return this.typeCheckCode;
}; |
19965 lang_Type.prototype.set$typeCheckCode = function(value) { return this.typeCheckC
ode = value; }; | 19986 lang_Type.prototype.set$typeCheckCode = function(value) { return this.typeCheckC
ode = value; }; |
19966 lang_Type.prototype.get$varStubs = function() { return this.varStubs; }; | 19987 lang_Type.prototype.get$varStubs = function() { return this.varStubs; }; |
19967 lang_Type.prototype.set$varStubs = function(value) { return this.varStubs = valu
e; }; | 19988 lang_Type.prototype.set$varStubs = function(value) { return this.varStubs = valu
e; }; |
19968 lang_Type.prototype.markUsed = function() { | 19989 lang_Type.prototype.markUsed = function() { |
19969 | 19990 |
19970 } | 19991 } |
19971 lang_Type.prototype.get$typeMember = function() { | 19992 lang_Type.prototype.get$typeMember = function() { |
19972 var $0; | 19993 var $0; |
19973 if (this._typeMember == null) { | 19994 if (this._typeMember == null) { |
19974 this._typeMember = new TypeMember((this && this.is$DefinedType())); | 19995 this._typeMember = new TypeMember((this && this.is$DefinedType())); |
19975 } | 19996 } |
19976 return (($0 = this._typeMember) && $0.is$TypeMember()); | 19997 return (($0 = this._typeMember) && $0.is$TypeMember()); |
19977 } | 19998 } |
19978 lang_Type.prototype.getMember = function(name) { | 19999 lang_Type.prototype.getMember = function(name) { |
19979 return null; | 20000 return null; |
19980 } | 20001 } |
| 20002 lang_Type.prototype.get$subtypes = function() { |
| 20003 return null; |
| 20004 } |
19981 lang_Type.prototype.get$isVar = function() { | 20005 lang_Type.prototype.get$isVar = function() { |
19982 return false; | 20006 return false; |
19983 } | 20007 } |
19984 lang_Type.prototype.get$isTop = function() { | 20008 lang_Type.prototype.get$isTop = function() { |
19985 return false; | 20009 return false; |
19986 } | 20010 } |
19987 lang_Type.prototype.get$isObject = function() { | 20011 lang_Type.prototype.get$isObject = function() { |
19988 return false; | 20012 return false; |
19989 } | 20013 } |
19990 lang_Type.prototype.get$isString = function() { | 20014 lang_Type.prototype.get$isString = function() { |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20117 return (ret && ret.is$Member()); | 20141 return (ret && ret.is$Member()); |
20118 } | 20142 } |
20119 } | 20143 } |
20120 return null; | 20144 return null; |
20121 } | 20145 } |
20122 else { | 20146 else { |
20123 return $globals.world.objectType.getMember(memberName); | 20147 return $globals.world.objectType.getMember(memberName); |
20124 } | 20148 } |
20125 } | 20149 } |
20126 } | 20150 } |
| 20151 lang_Type.prototype.resolveMember = function(memberName) { |
| 20152 var $0; |
| 20153 var ret = (($0 = this._resolvedMembers.$index(memberName)) && $0.is$MemberSet(
)); |
| 20154 if (ret != null) return ret; |
| 20155 var member = this.getMember(memberName); |
| 20156 if (member == null) { |
| 20157 return null; |
| 20158 } |
| 20159 ret = new MemberSet(member, false); |
| 20160 this._resolvedMembers.$setindex(memberName, ret); |
| 20161 if ($notnull_bool(member.get$isStatic())) { |
| 20162 return ret; |
| 20163 } |
| 20164 else { |
| 20165 var $list = this.get$subtypes(); |
| 20166 for (var $i = this.get$subtypes().iterator(); $i.hasNext$0(); ) { |
| 20167 var t = $i.next$0(); |
| 20168 if (!$notnull_bool(this.get$isClass()) && $notnull_bool(t.get$isClass()))
{ |
| 20169 var m = t.getMember$1(memberName); |
| 20170 if ($notnull_bool($ne(m, null)) && ret.members.indexOf(m) == -1) { |
| 20171 ret.add((m && m.is$Member())); |
| 20172 } |
| 20173 } |
| 20174 else { |
| 20175 var m = t.get$members().$index(memberName); |
| 20176 if ($notnull_bool($ne(m, null))) ret.add((m && m.is$Member())); |
| 20177 } |
| 20178 } |
| 20179 return ret; |
| 20180 } |
| 20181 } |
20127 lang_Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { | 20182 lang_Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { |
20128 if (!$notnull_bool(this.isSubtypeOf(other))) { | 20183 if (!$notnull_bool(this.isSubtypeOf(other))) { |
20129 var msg = ('type ' + this.name + ' is not a subtype of ' + other.name); | 20184 var msg = ('type ' + this.name + ' is not a subtype of ' + other.name); |
20130 if ($notnull_bool(typeErrors)) { | 20185 if ($notnull_bool(typeErrors)) { |
20131 $globals.world.error($assert_String(msg), span); | 20186 $globals.world.error($assert_String(msg), span); |
20132 } | 20187 } |
20133 else { | 20188 else { |
20134 $globals.world.warning($assert_String(msg), span); | 20189 $globals.world.warning($assert_String(msg), span); |
20135 } | 20190 } |
20136 } | 20191 } |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20536 if (this._interfaces == null && this.genericType.interfaces != null) { | 20591 if (this._interfaces == null && this.genericType.interfaces != null) { |
20537 this._interfaces = []; | 20592 this._interfaces = []; |
20538 var $list = this.genericType.interfaces; | 20593 var $list = this.genericType.interfaces; |
20539 for (var $i = 0;$i < $list.length; $i++) { | 20594 for (var $i = 0;$i < $list.length; $i++) { |
20540 var i = $list.$index($i); | 20595 var i = $list.$index($i); |
20541 this._interfaces.add(i.resolveTypeParams$1(this)); | 20596 this._interfaces.add(i.resolveTypeParams$1(this)); |
20542 } | 20597 } |
20543 } | 20598 } |
20544 return this._interfaces; | 20599 return this._interfaces; |
20545 } | 20600 } |
| 20601 ConcreteType.prototype.get$subtypes = function() { |
| 20602 if (this._subtypes == null) { |
| 20603 this._subtypes = new HashSetImplementation(); |
| 20604 var $list = this.genericType.get$subtypes(); |
| 20605 for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); )
{ |
| 20606 var s = $i.next$0(); |
| 20607 this._subtypes.add(s.resolveTypeParams$1(this)); |
| 20608 } |
| 20609 } |
| 20610 return this._subtypes; |
| 20611 } |
20546 ConcreteType.prototype.getCallMethod = function() { | 20612 ConcreteType.prototype.getCallMethod = function() { |
20547 return this.genericType.getCallMethod(); | 20613 return this.genericType.getCallMethod(); |
20548 } | 20614 } |
20549 ConcreteType.prototype.getAllMembers = function() { | 20615 ConcreteType.prototype.getAllMembers = function() { |
20550 var result = this.genericType.getAllMembers(); | 20616 var result = this.genericType.getAllMembers(); |
20551 var $list = result.getKeys$0(); | 20617 var $list = result.getKeys$0(); |
20552 for (var $i = result.getKeys$0().iterator$0(); $i.hasNext$0(); ) { | 20618 for (var $i = result.getKeys$0().iterator$0(); $i.hasNext$0(); ) { |
20553 var memberName = $i.next$0(); | 20619 var memberName = $i.next$0(); |
20554 var myMember = this.members.$index(memberName); | 20620 var myMember = this.members.$index(memberName); |
20555 if ($notnull_bool($ne(myMember, null))) { | 20621 if ($notnull_bool($ne(myMember, null))) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20599 return member; | 20665 return member; |
20600 } | 20666 } |
20601 var genericMember = this.genericType.members.$index(memberName); | 20667 var genericMember = this.genericType.members.$index(memberName); |
20602 if ($notnull_bool($ne(genericMember, null))) { | 20668 if ($notnull_bool($ne(genericMember, null))) { |
20603 member = new ConcreteMember($assert_String(genericMember.get$name()), this,
genericMember); | 20669 member = new ConcreteMember($assert_String(genericMember.get$name()), this,
genericMember); |
20604 this.members.$setindex(memberName, member); | 20670 this.members.$setindex(memberName, member); |
20605 return member; | 20671 return member; |
20606 } | 20672 } |
20607 return this._getMemberInParents(memberName); | 20673 return this._getMemberInParents(memberName); |
20608 } | 20674 } |
20609 ConcreteType.prototype.resolveMember = function(memberName) { | |
20610 var mem = this.getMember(memberName); | |
20611 if ($notnull_bool(mem == null)) return null; | |
20612 var ret = new MemberSet((mem && mem.is$Member()), false); | |
20613 if ($notnull_bool(mem.get$isStatic())) return (ret && ret.is$MemberSet()); | |
20614 var $list = this.genericType.get$subtypes(); | |
20615 for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) { | |
20616 var t = $i.next$0(); | |
20617 var m = t.get$members().$index(memberName); | |
20618 if ($notnull_bool($ne(m, null))) ret.add$1(m); | |
20619 } | |
20620 return (ret && ret.is$MemberSet()); | |
20621 } | |
20622 ConcreteType.prototype.resolveType = function(node, isRequired) { | 20675 ConcreteType.prototype.resolveType = function(node, isRequired) { |
20623 var ret = this.genericType.resolveType(node, isRequired); | 20676 var ret = this.genericType.resolveType(node, isRequired); |
20624 return (ret && ret.is$lang_Type()); | 20677 return (ret && ret.is$lang_Type()); |
20625 } | 20678 } |
20626 ConcreteType.prototype.addDirectSubtype = function(type) { | 20679 ConcreteType.prototype.addDirectSubtype = function(type) { |
20627 this.genericType.addDirectSubtype(type); | 20680 this.genericType.addDirectSubtype(type); |
20628 } | 20681 } |
20629 ConcreteType.prototype.addDirectSubtype$1 = function($0) { | 20682 ConcreteType.prototype.addDirectSubtype$1 = function($0) { |
20630 return this.addDirectSubtype(($0 && $0.is$lang_Type())); | 20683 return this.addDirectSubtype(($0 && $0.is$lang_Type())); |
20631 }; | 20684 }; |
20632 ConcreteType.prototype.getConstructor$1 = function($0) { | 20685 ConcreteType.prototype.getConstructor$1 = function($0) { |
20633 return this.getConstructor($assert_String($0)); | 20686 return this.getConstructor($assert_String($0)); |
20634 }; | 20687 }; |
20635 ConcreteType.prototype.getFactory$2 = function($0, $1) { | 20688 ConcreteType.prototype.getFactory$2 = function($0, $1) { |
20636 return this.getFactory(($0 && $0.is$lang_Type()), $assert_String($1)); | 20689 return this.getFactory(($0 && $0.is$lang_Type()), $assert_String($1)); |
20637 }; | 20690 }; |
20638 ConcreteType.prototype.getMember$1 = function($0) { | 20691 ConcreteType.prototype.getMember$1 = function($0) { |
20639 return this.getMember($assert_String($0)); | 20692 return this.getMember($assert_String($0)); |
20640 }; | 20693 }; |
20641 ConcreteType.prototype.getOrMakeConcreteType$1 = function($0) { | 20694 ConcreteType.prototype.getOrMakeConcreteType$1 = function($0) { |
20642 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 20695 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
20643 }; | 20696 }; |
20644 ConcreteType.prototype.markUsed$0 = function() { | 20697 ConcreteType.prototype.markUsed$0 = function() { |
20645 return this.markUsed(); | 20698 return this.markUsed(); |
20646 }; | 20699 }; |
20647 ConcreteType.prototype.resolveMember$1 = function($0) { | |
20648 return this.resolveMember($assert_String($0)); | |
20649 }; | |
20650 ConcreteType.prototype.resolveTypeParams$1 = function($0) { | 20700 ConcreteType.prototype.resolveTypeParams$1 = function($0) { |
20651 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); | 20701 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); |
20652 }; | 20702 }; |
20653 // ********** Code for DefinedType ************** | 20703 // ********** Code for DefinedType ************** |
20654 function DefinedType(name, library, definition, isClass) { | 20704 function DefinedType(name, library, definition, isClass) { |
20655 this.isUsed = false | 20705 this.isUsed = false |
20656 this.isNativeType = false | 20706 this.isNativeType = false |
20657 this.library = library; | 20707 this.library = library; |
20658 this.isClass = isClass; | 20708 this.isClass = isClass; |
20659 this.directSubtypes = new HashSetImplementation(); | 20709 this.directSubtypes = new HashSetImplementation(); |
20660 this.constructors = $map([]); | 20710 this.constructors = $map([]); |
20661 this.members = $map([]); | 20711 this.members = $map([]); |
20662 this.factories = new FactoryMap(); | 20712 this.factories = new FactoryMap(); |
20663 this._resolvedMembers = $map([]); | |
20664 // Initializers done | 20713 // Initializers done |
20665 lang_Type.call(this, name); | 20714 lang_Type.call(this, name); |
20666 this.setDefinition(definition); | 20715 this.setDefinition(definition); |
20667 } | 20716 } |
20668 $inherits(DefinedType, lang_Type); | 20717 $inherits(DefinedType, lang_Type); |
20669 DefinedType.prototype.is$DefinedType = function(){return this;}; | 20718 DefinedType.prototype.is$DefinedType = function(){return this;}; |
20670 DefinedType.prototype.get$definition = function() { return this.definition; }; | 20719 DefinedType.prototype.get$definition = function() { return this.definition; }; |
20671 DefinedType.prototype.set$definition = function(value) { return this.definition
= value; }; | 20720 DefinedType.prototype.set$definition = function(value) { return this.definition
= value; }; |
20672 DefinedType.prototype.get$library = function() { return this.library; }; | 20721 DefinedType.prototype.get$library = function() { return this.library; }; |
20673 DefinedType.prototype.get$isClass = function() { return this.isClass; }; | 20722 DefinedType.prototype.get$isClass = function() { return this.isClass; }; |
(...skipping 11 matching lines...) Expand all Loading... |
20685 DefinedType.prototype.set$constructors = function(value) { return this.construct
ors = value; }; | 20734 DefinedType.prototype.set$constructors = function(value) { return this.construct
ors = value; }; |
20686 DefinedType.prototype.get$members = function() { return this.members; }; | 20735 DefinedType.prototype.get$members = function() { return this.members; }; |
20687 DefinedType.prototype.set$members = function(value) { return this.members = valu
e; }; | 20736 DefinedType.prototype.set$members = function(value) { return this.members = valu
e; }; |
20688 DefinedType.prototype.get$factories = function() { return this.factories; }; | 20737 DefinedType.prototype.get$factories = function() { return this.factories; }; |
20689 DefinedType.prototype.set$factories = function(value) { return this.factories =
value; }; | 20738 DefinedType.prototype.set$factories = function(value) { return this.factories =
value; }; |
20690 DefinedType.prototype.get$isUsed = function() { return this.isUsed; }; | 20739 DefinedType.prototype.get$isUsed = function() { return this.isUsed; }; |
20691 DefinedType.prototype.set$isUsed = function(value) { return this.isUsed = value;
}; | 20740 DefinedType.prototype.set$isUsed = function(value) { return this.isUsed = value;
}; |
20692 DefinedType.prototype.get$isNativeType = function() { return this.isNativeType;
}; | 20741 DefinedType.prototype.get$isNativeType = function() { return this.isNativeType;
}; |
20693 DefinedType.prototype.set$isNativeType = function(value) { return this.isNativeT
ype = value; }; | 20742 DefinedType.prototype.set$isNativeType = function(value) { return this.isNativeT
ype = value; }; |
20694 DefinedType.prototype.setDefinition = function(def) { | 20743 DefinedType.prototype.setDefinition = function(def) { |
20695 $assert(this.definition == null, "definition == null", "type.dart", 703, 12); | 20744 $assert(this.definition == null, "definition == null", "type.dart", 733, 12); |
20696 this.definition = def; | 20745 this.definition = def; |
20697 if ((this.definition instanceof TypeDefinition) && this.definition.get$nativeT
ype() != null) { | 20746 if ((this.definition instanceof TypeDefinition) && this.definition.get$nativeT
ype() != null) { |
20698 this.isNativeType = true; | 20747 this.isNativeType = true; |
20699 } | 20748 } |
20700 if (this.definition != null && this.definition.get$typeParameters() != null) { | 20749 if (this.definition != null && this.definition.get$typeParameters() != null) { |
20701 this._concreteTypes = $map([]); | 20750 this._concreteTypes = $map([]); |
20702 this.typeParameters = []; | 20751 this.typeParameters = []; |
20703 var $list = this.definition.get$typeParameters(); | 20752 var $list = this.definition.get$typeParameters(); |
20704 for (var $i = 0;$i < $list.length; $i++) { | 20753 for (var $i = 0;$i < $list.length; $i++) { |
20705 var tp = $list.$index($i); | 20754 var tp = $list.$index($i); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20795 var resolvedInterface = this.resolveType((type && type.is$TypeReference()),
true); | 20844 var resolvedInterface = this.resolveType((type && type.is$TypeReference()),
true); |
20796 if ($notnull_bool(resolvedInterface.get$isClosed()) && !($notnull_bool(this.
library.get$isCore()) || $notnull_bool(this.library.get$isCoreImpl()))) { | 20845 if ($notnull_bool(resolvedInterface.get$isClosed()) && !($notnull_bool(this.
library.get$isCore()) || $notnull_bool(this.library.get$isCoreImpl()))) { |
20797 $globals.world.error(('can not implement "' + resolvedInterface.get$name()
+ '": ') + 'only native implementation allowed', (($0 = type.get$span()) && $0.
is$SourceSpan())); | 20846 $globals.world.error(('can not implement "' + resolvedInterface.get$name()
+ '": ') + 'only native implementation allowed', (($0 = type.get$span()) && $0.
is$SourceSpan())); |
20798 } | 20847 } |
20799 resolvedInterface.addDirectSubtype$1(this); | 20848 resolvedInterface.addDirectSubtype$1(this); |
20800 interfaces.add$1(resolvedInterface); | 20849 interfaces.add$1(resolvedInterface); |
20801 } | 20850 } |
20802 return (interfaces && interfaces.is$List$Type()); | 20851 return (interfaces && interfaces.is$List$Type()); |
20803 } | 20852 } |
20804 DefinedType.prototype.addDirectSubtype = function(type) { | 20853 DefinedType.prototype.addDirectSubtype = function(type) { |
20805 $assert(this._subtypes == null, "_subtypes == null", "type.dart", 819, 12); | 20854 $assert(this._subtypes == null, "_subtypes == null", "type.dart", 849, 12); |
20806 this.directSubtypes.add(type); | 20855 this.directSubtypes.add(type); |
20807 } | 20856 } |
20808 DefinedType.prototype.get$subtypes = function() { | 20857 DefinedType.prototype.get$subtypes = function() { |
20809 var $0; | 20858 var $0; |
20810 if (this._subtypes == null) { | 20859 if (this._subtypes == null) { |
20811 this._subtypes = new HashSetImplementation(); | 20860 this._subtypes = new HashSetImplementation(); |
20812 var $list = this.directSubtypes; | 20861 var $list = this.directSubtypes; |
20813 for (var $i = this.directSubtypes.iterator(); $i.hasNext$0(); ) { | 20862 for (var $i = this.directSubtypes.iterator(); $i.hasNext$0(); ) { |
20814 var st = $i.next$0(); | 20863 var st = $i.next$0(); |
20815 this._subtypes.add(st); | 20864 this._subtypes.add(st); |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21057 return member; | 21106 return member; |
21058 } | 21107 } |
21059 if ($notnull_bool(this.get$isTop())) { | 21108 if ($notnull_bool(this.get$isTop())) { |
21060 var libType = this.library.findTypeByName(memberName); | 21109 var libType = this.library.findTypeByName(memberName); |
21061 if ($notnull_bool($ne(libType, null))) { | 21110 if ($notnull_bool($ne(libType, null))) { |
21062 return (($0 = libType.get$typeMember()) && $0.is$Member()); | 21111 return (($0 = libType.get$typeMember()) && $0.is$Member()); |
21063 } | 21112 } |
21064 } | 21113 } |
21065 return this._getMemberInParents(memberName); | 21114 return this._getMemberInParents(memberName); |
21066 } | 21115 } |
21067 DefinedType.prototype.resolveMember = function(memberName) { | |
21068 var $0; | |
21069 var ret = (($0 = this._resolvedMembers.$index(memberName)) && $0.is$MemberSet(
)); | |
21070 if (ret != null) return ret; | |
21071 var member = this.getMember(memberName); | |
21072 if (member == null) { | |
21073 return null; | |
21074 } | |
21075 ret = new MemberSet(member, false); | |
21076 this._resolvedMembers.$setindex(memberName, ret); | |
21077 if ($notnull_bool(member.get$isStatic())) { | |
21078 return ret; | |
21079 } | |
21080 else { | |
21081 var $list = this.get$subtypes(); | |
21082 for (var $i = this.get$subtypes().iterator(); $i.hasNext$0(); ) { | |
21083 var t = $i.next$0(); | |
21084 if (!$notnull_bool(this.isClass) && $notnull_bool(t.get$isClass())) { | |
21085 var m = t.getMember$1(memberName); | |
21086 if ($notnull_bool($ne(m, null)) && ret.members.indexOf(m) == -1) { | |
21087 ret.add((m && m.is$Member())); | |
21088 } | |
21089 } | |
21090 else { | |
21091 var m = t.get$members().$index(memberName); | |
21092 if ($notnull_bool($ne(m, null))) ret.add((m && m.is$Member())); | |
21093 } | |
21094 } | |
21095 return ret; | |
21096 } | |
21097 } | |
21098 DefinedType._getDottedName = function(type) { | 21116 DefinedType._getDottedName = function(type) { |
21099 if (type.names != null) { | 21117 if (type.names != null) { |
21100 var names = map(type.names, (function (n) { | 21118 var names = map(type.names, (function (n) { |
21101 return n.get$name(); | 21119 return n.get$name(); |
21102 }) | 21120 }) |
21103 ); | 21121 ); |
21104 return type.name.name + '.' + Strings.join((names && names.is$List$String())
, '.'); | 21122 return type.name.name + '.' + Strings.join((names && names.is$List$String())
, '.'); |
21105 } | 21123 } |
21106 else { | 21124 else { |
21107 return type.name.name; | 21125 return type.name.name; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21175 } | 21193 } |
21176 else { | 21194 else { |
21177 $globals.world.internalError('unknown type reference', node.span); | 21195 $globals.world.internalError('unknown type reference', node.span); |
21178 } | 21196 } |
21179 return node.type; | 21197 return node.type; |
21180 } | 21198 } |
21181 DefinedType.prototype.resolveTypeParams = function(inType) { | 21199 DefinedType.prototype.resolveTypeParams = function(inType) { |
21182 return this; | 21200 return this; |
21183 } | 21201 } |
21184 DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) { | 21202 DefinedType.prototype.getOrMakeConcreteType = function(typeArgs) { |
21185 $assert(this.get$isGeneric(), "isGeneric", "type.dart", 1251, 12); | 21203 $assert(this.get$isGeneric(), "isGeneric", "type.dart", 1246, 12); |
21186 var names = [this.name]; | 21204 var names = [this.name]; |
21187 var typeMap = $map([]); | 21205 var typeMap = $map([]); |
21188 for (var i = 0; | 21206 for (var i = 0; |
21189 i < typeArgs.length; i++) { | 21207 i < typeArgs.length; i++) { |
21190 var paramName = this.typeParameters.$index(i).get$name(); | 21208 var paramName = this.typeParameters.$index(i).get$name(); |
21191 typeMap.$setindex(paramName, typeArgs.$index(i)); | 21209 typeMap.$setindex(paramName, typeArgs.$index(i)); |
21192 names.add$1(typeArgs.$index(i).get$name()); | 21210 names.add$1(typeArgs.$index(i).get$name()); |
21193 } | 21211 } |
21194 var concreteName = Strings.join((names && names.is$List$String()), '\$'); | 21212 var concreteName = Strings.join((names && names.is$List$String()), '\$'); |
21195 var ret = this._concreteTypes.$index(concreteName); | 21213 var ret = this._concreteTypes.$index(concreteName); |
21196 if ($notnull_bool(ret == null)) { | 21214 if ($notnull_bool(ret == null)) { |
21197 ret = new ConcreteType($assert_String(concreteName), this, typeMap, typeArgs
); | 21215 ret = new ConcreteType($assert_String(concreteName), this, typeMap, typeArgs
); |
21198 this._concreteTypes.$setindex(concreteName, ret); | 21216 this._concreteTypes.$setindex(concreteName, ret); |
21199 } | 21217 } |
21200 return (ret && ret.is$lang_Type()); | 21218 return (ret && ret.is$lang_Type()); |
21201 } | 21219 } |
21202 DefinedType.prototype.getCallStub = function(args) { | 21220 DefinedType.prototype.getCallStub = function(args) { |
21203 $assert(this.get$isFunction(), "isFunction", "type.dart", 1271, 12); | 21221 $assert(this.get$isFunction(), "isFunction", "type.dart", 1266, 12); |
21204 var name = _getCallStubName('call', args); | 21222 var name = _getCallStubName('call', args); |
21205 if (this.varStubs == null) this.varStubs = $map([]); | 21223 if (this.varStubs == null) this.varStubs = $map([]); |
21206 var stub = this.varStubs.$index(name); | 21224 var stub = this.varStubs.$index(name); |
21207 if ($notnull_bool(stub == null)) { | 21225 if ($notnull_bool(stub == null)) { |
21208 stub = new VarFunctionStub($assert_String(name), args); | 21226 stub = new VarFunctionStub($assert_String(name), args); |
21209 this.varStubs.$setindex(name, stub); | 21227 this.varStubs.$setindex(name, stub); |
21210 } | 21228 } |
21211 return (stub && stub.is$VarFunctionStub()); | 21229 return (stub && stub.is$VarFunctionStub()); |
21212 } | 21230 } |
21213 DefinedType.prototype.addDirectSubtype$1 = function($0) { | 21231 DefinedType.prototype.addDirectSubtype$1 = function($0) { |
(...skipping 13 matching lines...) Expand all Loading... |
21227 }; | 21245 }; |
21228 DefinedType.prototype.getOrMakeConcreteType$1 = function($0) { | 21246 DefinedType.prototype.getOrMakeConcreteType$1 = function($0) { |
21229 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 21247 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
21230 }; | 21248 }; |
21231 DefinedType.prototype.markUsed$0 = function() { | 21249 DefinedType.prototype.markUsed$0 = function() { |
21232 return this.markUsed(); | 21250 return this.markUsed(); |
21233 }; | 21251 }; |
21234 DefinedType.prototype.resolve$0 = function() { | 21252 DefinedType.prototype.resolve$0 = function() { |
21235 return this.resolve(); | 21253 return this.resolve(); |
21236 }; | 21254 }; |
21237 DefinedType.prototype.resolveMember$1 = function($0) { | |
21238 return this.resolveMember($assert_String($0)); | |
21239 }; | |
21240 DefinedType.prototype.resolveTypeParams$1 = function($0) { | 21255 DefinedType.prototype.resolveTypeParams$1 = function($0) { |
21241 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); | 21256 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); |
21242 }; | 21257 }; |
21243 DefinedType.prototype.setDefinition$1 = function($0) { | 21258 DefinedType.prototype.setDefinition$1 = function($0) { |
21244 return this.setDefinition(($0 && $0.is$Definition())); | 21259 return this.setDefinition(($0 && $0.is$Definition())); |
21245 }; | 21260 }; |
21246 // ********** Code for FixedCollection ************** | 21261 // ********** Code for FixedCollection ************** |
21247 function FixedCollection(value, length) { | 21262 function FixedCollection(value, length) { |
21248 this.value = value; | 21263 this.value = value; |
21249 this.length = length; | 21264 this.length = length; |
(...skipping 1756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
23006 NATIVE, | 23021 NATIVE, |
23007 NEGATE, | 23022 NEGATE, |
23008 OPERATOR, | 23023 OPERATOR, |
23009 SET, | 23024 SET, |
23010 SOURCE, | 23025 SOURCE, |
23011 STATIC, | 23026 STATIC, |
23012 TYPEDEF ]*/; | 23027 TYPEDEF ]*/; |
23013 var $globals = {}; | 23028 var $globals = {}; |
23014 $static_init(); | 23029 $static_init(); |
23015 main(); | 23030 main(); |
OLD | NEW |