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

Side by Side Diff: lib/runtime/dart/_interceptors.js

Issue 1050723002: partially implement instance of checks and some codegen fixes (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 months 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
« no previous file with comments | « no previous file | lib/runtime/dart/_internal.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var _interceptors; 1 var _interceptors;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 class Interceptor extends core.Object { 4 class Interceptor extends core.Object {
5 Interceptor() { 5 Interceptor() {
6 } 6 }
7 ['=='](other) { 7 ['=='](other) {
8 return core.identical(this, other); 8 return core.identical(this, other);
9 } 9 }
10 get hashCode() { 10 get hashCode() {
(...skipping 11 matching lines...) Expand all
22 } 22 }
23 let JSArray$ = dart.generic(function(E) { 23 let JSArray$ = dart.generic(function(E) {
24 class JSArray extends Interceptor { 24 class JSArray extends Interceptor {
25 JSArray() { 25 JSArray() {
26 super.Interceptor(); 26 super.Interceptor();
27 } 27 }
28 fixed(length) { 28 fixed(length) {
29 if (dart.notNull(!(typeof length == 'number')) || dart.notNull(length) < 0) { 29 if (dart.notNull(!(typeof length == 'number')) || dart.notNull(length) < 0) {
30 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`); 30 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`);
31 } 31 }
32 return new JSArray.markFixed(new Array(length)); 32 return new JSArray$(E).markFixed(new Array(length));
33 } 33 }
34 emptyGrowable() { 34 emptyGrowable() {
35 return new JSArray.markGrowable([]); 35 return new JSArray$(E).markGrowable([]);
36 } 36 }
37 growable(length) { 37 growable(length) {
38 if (dart.notNull(!(typeof length == 'number')) || dart.notNull(length) < 0) { 38 if (dart.notNull(!(typeof length == 'number')) || dart.notNull(length) < 0) {
39 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`); 39 throw new core.ArgumentError(`Length must be a non-negative integer: $ {length}`);
40 } 40 }
41 return new JSArray.markGrowable(new Array(length)); 41 return new JSArray$(E).markGrowable(new Array(length));
42 } 42 }
43 typed(allocation) { 43 typed(allocation) {
44 return dart.as(allocation, JSArray$(E)); 44 return dart.as(allocation, JSArray$(E));
45 } 45 }
46 markFixed(allocation) { 46 markFixed(allocation) {
47 return dart.as(JSArray.markFixedList(new JSArray.typed(allocation)), JSA rray$(E)); 47 return dart.as(JSArray.markFixedList(new JSArray$(E).typed(allocation)), JSArray$(E));
48 } 48 }
49 markGrowable(allocation) { 49 markGrowable(allocation) {
50 return dart.as(new JSArray.typed(allocation), JSArray$(E)); 50 return dart.as(new JSArray$(E).typed(allocation), JSArray$(E));
51 } 51 }
52 static markFixedList(list) { 52 static markFixedList(list) {
53 list.fixed$length = Array; 53 list.fixed$length = Array;
54 return dart.as(list, core.List); 54 return dart.as(list, core.List);
55 } 55 }
56 checkMutable(reason) { 56 checkMutable(reason) {
57 if (!dart.is(this, JSMutableArray)) { 57 if (!dart.is(this, JSMutableArray)) {
58 throw new core.UnsupportedError(dart.as(reason, core.String)); 58 throw new core.UnsupportedError(dart.as(reason, core.String));
59 } 59 }
60 } 60 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } 109 }
110 return false; 110 return false;
111 } 111 }
112 removeWhere(test) { 112 removeWhere(test) {
113 _internal.IterableMixinWorkaround.removeWhereList(this, test); 113 _internal.IterableMixinWorkaround.removeWhereList(this, test);
114 } 114 }
115 retainWhere(test) { 115 retainWhere(test) {
116 _internal.IterableMixinWorkaround.removeWhereList(this, (element) => !da rt.notNull(test(element))); 116 _internal.IterableMixinWorkaround.removeWhereList(this, (element) => !da rt.notNull(test(element)));
117 } 117 }
118 where(f) { 118 where(f) {
119 return new _internal.IterableMixinWorkaround().where(this, f); 119 return new (_internal.IterableMixinWorkaround$(E))().where(this, f);
120 } 120 }
121 expand(f) { 121 expand(f) {
122 return _internal.IterableMixinWorkaround.expand(this, f); 122 return _internal.IterableMixinWorkaround.expand(this, f);
123 } 123 }
124 addAll(collection) { 124 addAll(collection) {
125 for (let e of collection) { 125 for (let e of collection) {
126 this.add(e); 126 this.add(e);
127 } 127 }
128 } 128 }
129 clear() { 129 clear() {
(...skipping 14 matching lines...) Expand all
144 join(separator) { 144 join(separator) {
145 if (separator === void 0) 145 if (separator === void 0)
146 separator = ""; 146 separator = "";
147 let list = new core.List(this.length); 147 let list = new core.List(this.length);
148 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 148 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) {
149 list.set(i, `${this.get(i)}`); 149 list.set(i, `${this.get(i)}`);
150 } 150 }
151 return list.join(separator); 151 return list.join(separator);
152 } 152 }
153 take(n) { 153 take(n) {
154 return new _internal.IterableMixinWorkaround().takeList(this, n); 154 return new (_internal.IterableMixinWorkaround$(E))().takeList(this, n);
155 } 155 }
156 takeWhile(test) { 156 takeWhile(test) {
157 return new _internal.IterableMixinWorkaround().takeWhile(this, test); 157 return new (_internal.IterableMixinWorkaround$(E))().takeWhile(this, tes t);
158 } 158 }
159 skip(n) { 159 skip(n) {
160 return new _internal.IterableMixinWorkaround().skipList(this, n); 160 return new (_internal.IterableMixinWorkaround$(E))().skipList(this, n);
161 } 161 }
162 skipWhile(test) { 162 skipWhile(test) {
163 return new _internal.IterableMixinWorkaround().skipWhile(this, test); 163 return new (_internal.IterableMixinWorkaround$(E))().skipWhile(this, tes t);
164 } 164 }
165 reduce(combine) { 165 reduce(combine) {
166 return dart.as(_internal.IterableMixinWorkaround.reduce(this, combine), E); 166 return dart.as(_internal.IterableMixinWorkaround.reduce(this, combine), E);
167 } 167 }
168 fold(initialValue, combine) { 168 fold(initialValue, combine) {
169 return _internal.IterableMixinWorkaround.fold(this, initialValue, combin e); 169 return _internal.IterableMixinWorkaround.fold(this, initialValue, combin e);
170 } 170 }
171 firstWhere(test, opts) { 171 firstWhere(test, opts) {
172 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 172 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
173 return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E); 173 return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E);
(...skipping 21 matching lines...) Expand all
195 end = this.length; 195 end = this.length;
196 } else { 196 } else {
197 if (!(typeof end == 'number')) 197 if (!(typeof end == 'number'))
198 throw new core.ArgumentError(end); 198 throw new core.ArgumentError(end);
199 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dar t.notNull(this.length)) { 199 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dar t.notNull(this.length)) {
200 throw new core.RangeError.range(end, start, this.length); 200 throw new core.RangeError.range(end, start, this.length);
201 } 201 }
202 } 202 }
203 if (start == end) 203 if (start == end)
204 return new core.List$(E).from([]); 204 return new core.List$(E).from([]);
205 return new JSArray.markGrowable(this.slice(start, end)); 205 return new JSArray$(E).markGrowable(this.slice(start, end));
206 } 206 }
207 getRange(start, end) { 207 getRange(start, end) {
208 return new _internal.IterableMixinWorkaround().getRangeList(this, start, end); 208 return new (_internal.IterableMixinWorkaround$(E))().getRangeList(this, start, end);
209 } 209 }
210 get first() { 210 get first() {
211 if (dart.notNull(this.length) > 0) 211 if (dart.notNull(this.length) > 0)
212 return this.get(0); 212 return this.get(0);
213 throw new core.StateError("No elements"); 213 throw new core.StateError("No elements");
214 } 214 }
215 get last() { 215 get last() {
216 if (dart.notNull(this.length) > 0) 216 if (dart.notNull(this.length) > 0)
217 return this.get(dart.notNull(this.length) - 1); 217 return this.get(dart.notNull(this.length) - 1);
218 throw new core.StateError("No elements"); 218 throw new core.StateError("No elements");
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 this.checkGrowable('removeRange'); 252 this.checkGrowable('removeRange');
253 _internal.IterableMixinWorkaround.replaceRangeList(this, start, end, ite rable); 253 _internal.IterableMixinWorkaround.replaceRangeList(this, start, end, ite rable);
254 } 254 }
255 any(f) { 255 any(f) {
256 return _internal.IterableMixinWorkaround.any(this, f); 256 return _internal.IterableMixinWorkaround.any(this, f);
257 } 257 }
258 every(f) { 258 every(f) {
259 return _internal.IterableMixinWorkaround.every(this, f); 259 return _internal.IterableMixinWorkaround.every(this, f);
260 } 260 }
261 get reversed() { 261 get reversed() {
262 return new _internal.IterableMixinWorkaround().reversedList(this); 262 return new (_internal.IterableMixinWorkaround$(E))().reversedList(this);
263 } 263 }
264 sort(compare) { 264 sort(compare) {
265 if (compare === void 0) 265 if (compare === void 0)
266 compare = null; 266 compare = null;
267 this.checkMutable('sort'); 267 this.checkMutable('sort');
268 _internal.IterableMixinWorkaround.sortList(this, compare); 268 _internal.IterableMixinWorkaround.sortList(this, compare);
269 } 269 }
270 shuffle(random) { 270 shuffle(random) {
271 if (random === void 0) 271 if (random === void 0)
272 random = null; 272 random = null;
(...skipping 21 matching lines...) Expand all
294 } 294 }
295 get isNotEmpty() { 295 get isNotEmpty() {
296 return !dart.notNull(this.isEmpty); 296 return !dart.notNull(this.isEmpty);
297 } 297 }
298 toString() { 298 toString() {
299 return collection.ListBase.listToString(this); 299 return collection.ListBase.listToString(this);
300 } 300 }
301 toList(opts) { 301 toList(opts) {
302 let growable = opts && 'growable' in opts ? opts.growable : true; 302 let growable = opts && 'growable' in opts ? opts.growable : true;
303 if (growable) { 303 if (growable) {
304 return new JSArray.markGrowable(this.slice()); 304 return new JSArray$(E).markGrowable(this.slice());
305 } else { 305 } else {
306 return new JSArray.markFixed(this.slice()); 306 return new JSArray$(E).markFixed(this.slice());
307 } 307 }
308 } 308 }
309 toSet() { 309 toSet() {
310 return new core.Set.from(this); 310 return new core.Set$(E).from(this);
311 } 311 }
312 get iterator() { 312 get iterator() {
313 return new _internal.ListIterator(this); 313 return new (_internal.ListIterator$(E))(this);
314 } 314 }
315 get hashCode() { 315 get hashCode() {
316 return _js_helper.Primitives.objectHashCode(this); 316 return _js_helper.Primitives.objectHashCode(this);
317 } 317 }
318 get length() { 318 get length() {
319 return dart.as(this.length, core.int); 319 return dart.as(this.length, core.int);
320 } 320 }
321 set length(newLength) { 321 set length(newLength) {
322 if (!(typeof newLength == 'number')) 322 if (!(typeof newLength == 'number'))
323 throw new core.ArgumentError(newLength); 323 throw new core.ArgumentError(newLength);
(...skipping 11 matching lines...) Expand all
335 } 335 }
336 set(index, value) { 336 set(index, value) {
337 this.checkMutable('indexed set'); 337 this.checkMutable('indexed set');
338 if (!(typeof index == 'number')) 338 if (!(typeof index == 'number'))
339 throw new core.ArgumentError(index); 339 throw new core.ArgumentError(index);
340 if (dart.notNull(index) >= dart.notNull(this.length) || dart.notNull(ind ex) < 0) 340 if (dart.notNull(index) >= dart.notNull(this.length) || dart.notNull(ind ex) < 0)
341 throw new core.RangeError.value(index); 341 throw new core.RangeError.value(index);
342 this[index] = value; 342 this[index] = value;
343 } 343 }
344 asMap() { 344 asMap() {
345 return new _internal.IterableMixinWorkaround().asMapList(this); 345 return new (_internal.IterableMixinWorkaround$(E))().asMapList(this);
346 } 346 }
347 } 347 }
348 JSArray[dart.implements] = () => [core.List$(E), JSIndexable]; 348 JSArray[dart.implements] = () => [core.List$(E), JSIndexable];
349 dart.defineNamedConstructor(JSArray, 'fixed'); 349 dart.defineNamedConstructor(JSArray, 'fixed');
350 dart.defineNamedConstructor(JSArray, 'emptyGrowable'); 350 dart.defineNamedConstructor(JSArray, 'emptyGrowable');
351 dart.defineNamedConstructor(JSArray, 'growable'); 351 dart.defineNamedConstructor(JSArray, 'growable');
352 dart.defineNamedConstructor(JSArray, 'typed'); 352 dart.defineNamedConstructor(JSArray, 'typed');
353 dart.defineNamedConstructor(JSArray, 'markFixed'); 353 dart.defineNamedConstructor(JSArray, 'markFixed');
354 dart.defineNamedConstructor(JSArray, 'markGrowable'); 354 dart.defineNamedConstructor(JSArray, 'markGrowable');
355 return JSArray; 355 return JSArray;
(...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 } 1206 }
1207 } 1207 }
1208 // Function _symbolToString: (Symbol) → String 1208 // Function _symbolToString: (Symbol) → String
1209 function _symbolToString(symbol) { 1209 function _symbolToString(symbol) {
1210 return _internal.Symbol.getName(dart.as(symbol, _internal.Symbol)); 1210 return _internal.Symbol.getName(dart.as(symbol, _internal.Symbol));
1211 } 1211 }
1212 // Function _symbolMapToStringMap: (Map<Symbol, dynamic>) → dynamic 1212 // Function _symbolMapToStringMap: (Map<Symbol, dynamic>) → dynamic
1213 function _symbolMapToStringMap(map) { 1213 function _symbolMapToStringMap(map) {
1214 if (map == null) 1214 if (map == null)
1215 return null; 1215 return null;
1216 let result = new core.Map(); 1216 let result = new (core.Map$(core.String, dynamic))();
1217 map.forEach((key, value) => { 1217 map.forEach((key, value) => {
1218 result.set(_symbolToString(key), value); 1218 result.set(_symbolToString(key), value);
1219 }); 1219 });
1220 return result; 1220 return result;
1221 } 1221 }
1222 // Function getInterceptor: (dynamic) → dynamic 1222 // Function getInterceptor: (dynamic) → dynamic
1223 function getInterceptor(object) { 1223 function getInterceptor(object) {
1224 return void 0; 1224 return void 0;
1225 } 1225 }
1226 // Function getDispatchProperty: (dynamic) → dynamic 1226 // Function getDispatchProperty: (dynamic) → dynamic
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1428 exports.findInterceptorForType = findInterceptorForType; 1428 exports.findInterceptorForType = findInterceptorForType;
1429 exports.JSBool = JSBool; 1429 exports.JSBool = JSBool;
1430 exports.JSNull = JSNull; 1430 exports.JSNull = JSNull;
1431 exports.JSIndexable = JSIndexable; 1431 exports.JSIndexable = JSIndexable;
1432 exports.JSMutableIndexable = JSMutableIndexable; 1432 exports.JSMutableIndexable = JSMutableIndexable;
1433 exports.JSObject = JSObject; 1433 exports.JSObject = JSObject;
1434 exports.JavaScriptObject = JavaScriptObject; 1434 exports.JavaScriptObject = JavaScriptObject;
1435 exports.PlainJavaScriptObject = PlainJavaScriptObject; 1435 exports.PlainJavaScriptObject = PlainJavaScriptObject;
1436 exports.UnknownJavaScriptObject = UnknownJavaScriptObject; 1436 exports.UnknownJavaScriptObject = UnknownJavaScriptObject;
1437 })(_interceptors || (_interceptors = {})); 1437 })(_interceptors || (_interceptors = {}));
OLDNEW
« no previous file with comments | « no previous file | lib/runtime/dart/_internal.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698