OLD | NEW |
---|---|
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /* This library defines runtime operations on objects used by the code | 5 /* This library defines runtime operations on objects used by the code |
6 * generator. | 6 * generator. |
7 */ | 7 */ |
8 dart_library.library('dart/_operations', null, /* Imports */[ | 8 dart_library.library('dart/_operations', null, /* Imports */[ |
9 ], /* Lazy Imports */[ | 9 ], /* Lazy Imports */[ |
10 'dart/_utils', | 10 'dart/_utils', |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
271 * `map({'hi': 1, 'there': 2})`. | 271 * `map({'hi': 1, 'there': 2})`. |
272 * | 272 * |
273 * Otherwise an array should be used, for example `map([1, 2, 3, 4])` will | 273 * Otherwise an array should be used, for example `map([1, 2, 3, 4])` will |
274 * create a map with keys [1, 3] and values [2, 4]. Each key-value pair | 274 * create a map with keys [1, 3] and values [2, 4]. Each key-value pair |
275 * should be adjacent entries in the array. | 275 * should be adjacent entries in the array. |
276 * | 276 * |
277 * For a map with no keys the function can be called with no arguments, for | 277 * For a map with no keys the function can be called with no arguments, for |
278 * example `map()`. | 278 * example `map()`. |
279 */ | 279 */ |
280 // TODO(jmesserly): this could be faster | 280 // TODO(jmesserly): this could be faster |
281 function map(values) { | 281 function map(values, K, V) { |
vsm
2016/01/20 23:39:33
FWIW, dart.list is in _classes. Kind of strange t
Jennifer Messerly
2016/02/01 23:39:48
Nice find. Added TODO.
| |
282 let map = collection.LinkedHashMap.new(); | 282 if (K === void 0) K = types.dynamic; |
283 if (V === void 0) V = types.dynamic; | |
284 let map = collection.LinkedHashMap$(K, V).new(); | |
283 if (Array.isArray(values)) { | 285 if (Array.isArray(values)) { |
284 for (let i = 0, end = values.length - 1; i < end; i += 2) { | 286 for (let i = 0, end = values.length - 1; i < end; i += 2) { |
285 let key = values[i]; | 287 let key = values[i]; |
286 let value = values[i + 1]; | 288 let value = values[i + 1]; |
287 map.set(key, value); | 289 map.set(key, value); |
288 } | 290 } |
289 } else if (typeof values === 'object') { | 291 } else if (typeof values === 'object') { |
290 for (let key of getOwnPropertyNames(values)) { | 292 for (let key of getOwnPropertyNames(values)) { |
291 map.set(key, values[key]); | 293 map.set(key, values[key]); |
292 } | 294 } |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
458 next() { | 460 next() { |
459 let i = this.dartIterator; | 461 let i = this.dartIterator; |
460 let done = !i.moveNext(); | 462 let done = !i.moveNext(); |
461 return { done: done, value: done ? void 0 : i.current }; | 463 return { done: done, value: done ? void 0 : i.current }; |
462 } | 464 } |
463 } | 465 } |
464 exports.JsIterator = JsIterator; | 466 exports.JsIterator = JsIterator; |
465 | 467 |
466 | 468 |
467 }); | 469 }); |
OLD | NEW |