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

Side by Side Diff: test/js-perf-test/SixSpeed/traceur-runtime.js

Issue 2467483002: Add spread call micro-benchmarks. (Closed)
Patch Set: rename Created 4 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
OLDNEW
(Empty)
1 (function(global) {
2 'use strict';
3 if (global.$traceurRuntime) {
4 return;
5 }
6 function setupGlobals(global) {
7 global.Reflect = global.Reflect || {};
8 global.Reflect.global = global.Reflect.global || global;
9 }
10 setupGlobals(global);
11 var typeOf = function(x) {
12 return typeof x;
13 };
14 global.$traceurRuntime = {
15 options: {},
16 setupGlobals: setupGlobals,
17 typeof: typeOf
18 };
19 })(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? glob al : typeof self !== 'undefined' ? self : this);
20 (function() {
21 function buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
22 var out = [];
23 if (opt_scheme) {
24 out.push(opt_scheme, ':');
25 }
26 if (opt_domain) {
27 out.push('//');
28 if (opt_userInfo) {
29 out.push(opt_userInfo, '@');
30 }
31 out.push(opt_domain);
32 if (opt_port) {
33 out.push(':', opt_port);
34 }
35 }
36 if (opt_path) {
37 out.push(opt_path);
38 }
39 if (opt_queryData) {
40 out.push('?', opt_queryData);
41 }
42 if (opt_fragment) {
43 out.push('#', opt_fragment);
44 }
45 return out.join('');
46 }
47 var splitRe = new RegExp('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:( [^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([ ^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$');
48 var ComponentIndex = {
49 SCHEME: 1,
50 USER_INFO: 2,
51 DOMAIN: 3,
52 PORT: 4,
53 PATH: 5,
54 QUERY_DATA: 6,
55 FRAGMENT: 7
56 };
57 function split(uri) {
58 return (uri.match(splitRe));
59 }
60 function removeDotSegments(path) {
61 if (path === '/')
62 return '/';
63 var leadingSlash = path[0] === '/' ? '/' : '';
64 var trailingSlash = path.slice(-1) === '/' ? '/' : '';
65 var segments = path.split('/');
66 var out = [];
67 var up = 0;
68 for (var pos = 0; pos < segments.length; pos++) {
69 var segment = segments[pos];
70 switch (segment) {
71 case '':
72 case '.':
73 break;
74 case '..':
75 if (out.length)
76 out.pop();
77 else
78 up++;
79 break;
80 default:
81 out.push(segment);
82 }
83 }
84 if (!leadingSlash) {
85 while (up-- > 0) {
86 out.unshift('..');
87 }
88 if (out.length === 0)
89 out.push('.');
90 }
91 return leadingSlash + out.join('/') + trailingSlash;
92 }
93 function joinAndCanonicalizePath(parts) {
94 var path = parts[ComponentIndex.PATH] || '';
95 path = removeDotSegments(path);
96 parts[ComponentIndex.PATH] = path;
97 return buildFromEncodedParts(parts[ComponentIndex.SCHEME], parts[ComponentIn dex.USER_INFO], parts[ComponentIndex.DOMAIN], parts[ComponentIndex.PORT], parts[ ComponentIndex.PATH], parts[ComponentIndex.QUERY_DATA], parts[ComponentIndex.FRA GMENT]);
98 }
99 function canonicalizeUrl(url) {
100 var parts = split(url);
101 return joinAndCanonicalizePath(parts);
102 }
103 function resolveUrl(base, url) {
104 var parts = split(url);
105 var baseParts = split(base);
106 if (parts[ComponentIndex.SCHEME]) {
107 return joinAndCanonicalizePath(parts);
108 } else {
109 parts[ComponentIndex.SCHEME] = baseParts[ComponentIndex.SCHEME];
110 }
111 for (var i = ComponentIndex.SCHEME; i <= ComponentIndex.PORT; i++) {
112 if (!parts[i]) {
113 parts[i] = baseParts[i];
114 }
115 }
116 if (parts[ComponentIndex.PATH][0] == '/') {
117 return joinAndCanonicalizePath(parts);
118 }
119 var path = baseParts[ComponentIndex.PATH];
120 var index = path.lastIndexOf('/');
121 path = path.slice(0, index + 1) + parts[ComponentIndex.PATH];
122 parts[ComponentIndex.PATH] = path;
123 return joinAndCanonicalizePath(parts);
124 }
125 function isAbsolute(name) {
126 if (!name)
127 return false;
128 if (name[0] === '/')
129 return true;
130 var parts = split(name);
131 if (parts[ComponentIndex.SCHEME])
132 return true;
133 return false;
134 }
135 $traceurRuntime.canonicalizeUrl = canonicalizeUrl;
136 $traceurRuntime.isAbsolute = isAbsolute;
137 $traceurRuntime.removeDotSegments = removeDotSegments;
138 $traceurRuntime.resolveUrl = resolveUrl;
139 })();
140 (function(global) {
141 'use strict';
142 var $__3 = $traceurRuntime,
143 canonicalizeUrl = $__3.canonicalizeUrl,
144 resolveUrl = $__3.resolveUrl,
145 isAbsolute = $__3.isAbsolute;
146 var moduleInstantiators = Object.create(null);
147 var baseURL;
148 if (global.location && global.location.href)
149 baseURL = resolveUrl(global.location.href, './');
150 else
151 baseURL = '';
152 function UncoatedModuleEntry(url, uncoatedModule) {
153 this.url = url;
154 this.value_ = uncoatedModule;
155 }
156 function ModuleEvaluationError(erroneousModuleName, cause) {
157 this.message = this.constructor.name + ': ' + this.stripCause(cause) + ' in ' + erroneousModuleName;
158 if (!(cause instanceof ModuleEvaluationError) && cause.stack)
159 this.stack = this.stripStack(cause.stack);
160 else
161 this.stack = '';
162 }
163 ModuleEvaluationError.prototype = Object.create(Error.prototype);
164 ModuleEvaluationError.prototype.constructor = ModuleEvaluationError;
165 ModuleEvaluationError.prototype.stripError = function(message) {
166 return message.replace(/.*Error:/, this.constructor.name + ':');
167 };
168 ModuleEvaluationError.prototype.stripCause = function(cause) {
169 if (!cause)
170 return '';
171 if (!cause.message)
172 return cause + '';
173 return this.stripError(cause.message);
174 };
175 ModuleEvaluationError.prototype.loadedBy = function(moduleName) {
176 this.stack += '\n loaded by ' + moduleName;
177 };
178 ModuleEvaluationError.prototype.stripStack = function(causeStack) {
179 var stack = [];
180 causeStack.split('\n').some(function(frame) {
181 if (/UncoatedModuleInstantiator/.test(frame))
182 return true;
183 stack.push(frame);
184 });
185 stack[0] = this.stripError(stack[0]);
186 return stack.join('\n');
187 };
188 function beforeLines(lines, number) {
189 var result = [];
190 var first = number - 3;
191 if (first < 0)
192 first = 0;
193 for (var i = first; i < number; i++) {
194 result.push(lines[i]);
195 }
196 return result;
197 }
198 function afterLines(lines, number) {
199 var last = number + 1;
200 if (last > lines.length - 1)
201 last = lines.length - 1;
202 var result = [];
203 for (var i = number; i <= last; i++) {
204 result.push(lines[i]);
205 }
206 return result;
207 }
208 function columnSpacing(columns) {
209 var result = '';
210 for (var i = 0; i < columns - 1; i++) {
211 result += '-';
212 }
213 return result;
214 }
215 function UncoatedModuleInstantiator(url, func) {
216 UncoatedModuleEntry.call(this, url, null);
217 this.func = func;
218 }
219 UncoatedModuleInstantiator.prototype = Object.create(UncoatedModuleEntry.proto type);
220 UncoatedModuleInstantiator.prototype.getUncoatedModule = function() {
221 var $__2 = this;
222 if (this.value_)
223 return this.value_;
224 try {
225 var relativeRequire;
226 if (typeof $traceurRuntime !== undefined && $traceurRuntime.require) {
227 relativeRequire = $traceurRuntime.require.bind(null, this.url);
228 }
229 return this.value_ = this.func.call(global, relativeRequire);
230 } catch (ex) {
231 if (ex instanceof ModuleEvaluationError) {
232 ex.loadedBy(this.url);
233 throw ex;
234 }
235 if (ex.stack) {
236 var lines = this.func.toString().split('\n');
237 var evaled = [];
238 ex.stack.split('\n').some(function(frame, index) {
239 if (frame.indexOf('UncoatedModuleInstantiator.getUncoatedModule') > 0)
240 return true;
241 var m = /(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(frame);
242 if (m) {
243 var line = parseInt(m[2], 10);
244 evaled = evaled.concat(beforeLines(lines, line));
245 if (index === 1) {
246 evaled.push(columnSpacing(m[3]) + '^ ' + $__2.url);
247 } else {
248 evaled.push(columnSpacing(m[3]) + '^');
249 }
250 evaled = evaled.concat(afterLines(lines, line));
251 evaled.push('= = = = = = = = =');
252 } else {
253 evaled.push(frame);
254 }
255 });
256 ex.stack = evaled.join('\n');
257 }
258 throw new ModuleEvaluationError(this.url, ex);
259 }
260 };
261 function getUncoatedModuleInstantiator(name) {
262 if (!name)
263 return;
264 var url = ModuleStore.normalize(name);
265 return moduleInstantiators[url];
266 }
267 ;
268 var moduleInstances = Object.create(null);
269 var liveModuleSentinel = {};
270 function Module(uncoatedModule) {
271 var isLive = arguments[1];
272 var coatedModule = Object.create(null);
273 Object.getOwnPropertyNames(uncoatedModule).forEach(function(name) {
274 var getter,
275 value;
276 if (isLive === liveModuleSentinel) {
277 var descr = Object.getOwnPropertyDescriptor(uncoatedModule, name);
278 if (descr.get)
279 getter = descr.get;
280 }
281 if (!getter) {
282 value = uncoatedModule[name];
283 getter = function() {
284 return value;
285 };
286 }
287 Object.defineProperty(coatedModule, name, {
288 get: getter,
289 enumerable: true
290 });
291 });
292 Object.preventExtensions(coatedModule);
293 return coatedModule;
294 }
295 var ModuleStore = {
296 normalize: function(name, refererName, refererAddress) {
297 if (typeof name !== 'string')
298 throw new TypeError('module name must be a string, not ' + typeof name);
299 if (isAbsolute(name))
300 return canonicalizeUrl(name);
301 if (/[^\.]\/\.\.\//.test(name)) {
302 throw new Error('module name embeds /../: ' + name);
303 }
304 if (name[0] === '.' && refererName)
305 return resolveUrl(refererName, name);
306 return canonicalizeUrl(name);
307 },
308 get: function(normalizedName) {
309 var m = getUncoatedModuleInstantiator(normalizedName);
310 if (!m)
311 return undefined;
312 var moduleInstance = moduleInstances[m.url];
313 if (moduleInstance)
314 return moduleInstance;
315 moduleInstance = Module(m.getUncoatedModule(), liveModuleSentinel);
316 return moduleInstances[m.url] = moduleInstance;
317 },
318 set: function(normalizedName, module) {
319 normalizedName = String(normalizedName);
320 moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(norma lizedName, function() {
321 return module;
322 });
323 moduleInstances[normalizedName] = module;
324 },
325 get baseURL() {
326 return baseURL;
327 },
328 set baseURL(v) {
329 baseURL = String(v);
330 },
331 registerModule: function(name, deps, func) {
332 var normalizedName = ModuleStore.normalize(name);
333 if (moduleInstantiators[normalizedName])
334 throw new Error('duplicate module named ' + normalizedName);
335 moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(norma lizedName, func);
336 },
337 bundleStore: Object.create(null),
338 register: function(name, deps, func) {
339 if (!deps || !deps.length && !func.length) {
340 this.registerModule(name, deps, func);
341 } else {
342 this.bundleStore[name] = {
343 deps: deps,
344 execute: function() {
345 var $__2 = arguments;
346 var depMap = {};
347 deps.forEach(function(dep, index) {
348 return depMap[dep] = $__2[index];
349 });
350 var registryEntry = func.call(this, depMap);
351 registryEntry.execute.call(this);
352 return registryEntry.exports;
353 }
354 };
355 }
356 },
357 getAnonymousModule: function(func) {
358 return new Module(func.call(global), liveModuleSentinel);
359 }
360 };
361 var moduleStoreModule = new Module({ModuleStore: ModuleStore});
362 ModuleStore.set('@traceur/src/runtime/ModuleStore.js', moduleStoreModule);
363 var setupGlobals = $traceurRuntime.setupGlobals;
364 $traceurRuntime.setupGlobals = function(global) {
365 setupGlobals(global);
366 };
367 $traceurRuntime.ModuleStore = ModuleStore;
368 $traceurRuntime.registerModule = ModuleStore.registerModule.bind(ModuleStore);
369 $traceurRuntime.getModule = ModuleStore.get;
370 $traceurRuntime.setModule = ModuleStore.set;
371 $traceurRuntime.normalizeModuleName = ModuleStore.normalize;
372 })(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? glob al : typeof self !== 'undefined' ? self : this);
373 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/new-unique-s tring.js", [], function() {
374 "use strict";
375 var __moduleName = "traceur-runtime@0.0.108/src/runtime/new-unique-string.js";
376 var random = Math.random;
377 var counter = Date.now() % 1e9;
378 function newUniqueString() {
379 return '__$' + (random() * 1e9 >>> 1) + '$' + ++counter + '$__';
380 }
381 var $__default = newUniqueString;
382 return {get default() {
383 return $__default;
384 }};
385 });
386 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/has-native-s ymbols.js", [], function() {
387 "use strict";
388 var __moduleName = "traceur-runtime@0.0.108/src/runtime/has-native-symbols.js" ;
389 var v = !!Object.getOwnPropertySymbols && typeof Symbol === 'function';
390 function hasNativeSymbol() {
391 return v;
392 }
393 var $__default = hasNativeSymbol;
394 return {get default() {
395 return $__default;
396 }};
397 });
398 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/symb ols.js", [], function() {
399 "use strict";
400 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/symbols.js";
401 var newUniqueString = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("../new-unique-string.js", "traceur-runtime@0.0.108/src/runtime/modules/sy mbols.js")).default;
402 var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/modules/s ymbols.js")).default;
403 var $create = Object.create;
404 var $defineProperty = Object.defineProperty;
405 var $freeze = Object.freeze;
406 var $getOwnPropertyNames = Object.getOwnPropertyNames;
407 var $keys = Object.keys;
408 var $TypeError = TypeError;
409 function nonEnum(value) {
410 return {
411 configurable: true,
412 enumerable: false,
413 value: value,
414 writable: true
415 };
416 }
417 var symbolInternalProperty = newUniqueString();
418 var symbolDescriptionProperty = newUniqueString();
419 var symbolDataProperty = newUniqueString();
420 var symbolValues = $create(null);
421 var SymbolImpl = function Symbol(description) {
422 var value = new SymbolValue(description);
423 if (!(this instanceof SymbolImpl))
424 return value;
425 throw new $TypeError('Symbol cannot be new\'ed');
426 };
427 $defineProperty(SymbolImpl.prototype, 'constructor', nonEnum(SymbolImpl));
428 $defineProperty(SymbolImpl.prototype, 'toString', nonEnum(function() {
429 var symbolValue = this[symbolDataProperty];
430 return symbolValue[symbolInternalProperty];
431 }));
432 $defineProperty(SymbolImpl.prototype, 'valueOf', nonEnum(function() {
433 var symbolValue = this[symbolDataProperty];
434 if (!symbolValue)
435 throw $TypeError('Conversion from symbol to string');
436 return symbolValue[symbolInternalProperty];
437 }));
438 function SymbolValue(description) {
439 var key = newUniqueString();
440 $defineProperty(this, symbolDataProperty, {value: this});
441 $defineProperty(this, symbolInternalProperty, {value: key});
442 $defineProperty(this, symbolDescriptionProperty, {value: description});
443 $freeze(this);
444 symbolValues[key] = this;
445 }
446 $defineProperty(SymbolValue.prototype, 'constructor', nonEnum(SymbolImpl));
447 $defineProperty(SymbolValue.prototype, 'toString', {
448 value: SymbolImpl.prototype.toString,
449 enumerable: false
450 });
451 $defineProperty(SymbolValue.prototype, 'valueOf', {
452 value: SymbolImpl.prototype.valueOf,
453 enumerable: false
454 });
455 $freeze(SymbolValue.prototype);
456 function isSymbolString(s) {
457 return symbolValues[s];
458 }
459 function removeSymbolKeys(array) {
460 var rv = [];
461 for (var i = 0; i < array.length; i++) {
462 if (!isSymbolString(array[i])) {
463 rv.push(array[i]);
464 }
465 }
466 return rv;
467 }
468 function getOwnPropertyNames(object) {
469 return removeSymbolKeys($getOwnPropertyNames(object));
470 }
471 function keys(object) {
472 return removeSymbolKeys($keys(object));
473 }
474 function getOwnPropertySymbols(object) {
475 var rv = [];
476 var names = $getOwnPropertyNames(object);
477 for (var i = 0; i < names.length; i++) {
478 var symbol = symbolValues[names[i]];
479 if (symbol) {
480 rv.push(symbol);
481 }
482 }
483 return rv;
484 }
485 function polyfillSymbol(global) {
486 var Object = global.Object;
487 if (!hasNativeSymbol()) {
488 global.Symbol = SymbolImpl;
489 Object.getOwnPropertyNames = getOwnPropertyNames;
490 Object.keys = keys;
491 $defineProperty(Object, 'getOwnPropertySymbols', nonEnum(getOwnPropertySym bols));
492 }
493 if (!global.Symbol.iterator) {
494 global.Symbol.iterator = global.Symbol('Symbol.iterator');
495 }
496 if (!global.Symbol.observer) {
497 global.Symbol.observer = global.Symbol('Symbol.observer');
498 }
499 }
500 var g = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this;
501 polyfillSymbol(g);
502 var typeOf = hasNativeSymbol() ? function(x) {
503 return typeof x;
504 } : function(x) {
505 return x instanceof SymbolValue ? 'symbol' : typeof x;
506 };
507 return {get typeof() {
508 return typeOf;
509 }};
510 });
511 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/type of.js", [], function() {
512 "use strict";
513 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/typeof.js";
514 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_sym bols_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ symbols.js", "traceur-runtime@0.0.108/src/runtime/modules/typeof.js"));
515 return {get default() {
516 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_symbols_46_js__.typeof;
517 }};
518 });
519 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/symbols.js", [], function() {
520 "use strict";
521 var __moduleName = "traceur-runtime@0.0.108/src/runtime/symbols.js";
522 var t = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modul es/typeof.js", "traceur-runtime@0.0.108/src/runtime/symbols.js")).default;
523 $traceurRuntime.typeof = t;
524 return {};
525 });
526 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/crea teClass.js", [], function() {
527 "use strict";
528 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createClass.js ";
529 var $Object = Object;
530 var $TypeError = TypeError;
531 var $__1 = Object,
532 create = $__1.create,
533 defineProperties = $__1.defineProperties,
534 defineProperty = $__1.defineProperty,
535 getOwnPropertyDescriptor = $__1.getOwnPropertyDescriptor,
536 getOwnPropertyNames = $__1.getOwnPropertyNames,
537 getOwnPropertySymbols = $__1.getOwnPropertySymbols;
538 function forEachPropertyKey(object, f) {
539 getOwnPropertyNames(object).forEach(f);
540 if (getOwnPropertySymbols) {
541 getOwnPropertySymbols(object).forEach(f);
542 }
543 }
544 function getDescriptors(object) {
545 var descriptors = {};
546 forEachPropertyKey(object, function(key) {
547 descriptors[key] = getOwnPropertyDescriptor(object, key);
548 descriptors[key].enumerable = false;
549 });
550 return descriptors;
551 }
552 var nonEnum = {enumerable: false};
553 function makePropertiesNonEnumerable(object) {
554 forEachPropertyKey(object, function(key) {
555 defineProperty(object, key, nonEnum);
556 });
557 }
558 function createClass(ctor, object, staticObject, superClass) {
559 defineProperty(object, 'constructor', {
560 value: ctor,
561 configurable: true,
562 enumerable: false,
563 writable: true
564 });
565 if (arguments.length > 3) {
566 if (typeof superClass === 'function')
567 ctor.__proto__ = superClass;
568 ctor.prototype = create(getProtoParent(superClass), getDescriptors(object) );
569 } else {
570 makePropertiesNonEnumerable(object);
571 ctor.prototype = object;
572 }
573 defineProperty(ctor, 'prototype', {
574 configurable: false,
575 writable: false
576 });
577 return defineProperties(ctor, getDescriptors(staticObject));
578 }
579 var $__default = createClass;
580 function getProtoParent(superClass) {
581 if (typeof superClass === 'function') {
582 var prototype = superClass.prototype;
583 if ($Object(prototype) === prototype || prototype === null)
584 return superClass.prototype;
585 throw new $TypeError('super prototype must be an Object or null');
586 }
587 if (superClass === null)
588 return null;
589 throw new $TypeError(("Super expression must either be null or a function, n ot " + typeof superClass + "."));
590 }
591 return {get default() {
592 return $__default;
593 }};
594 });
595 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/supe rConstructor.js", [], function() {
596 "use strict";
597 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superConstruct or.js";
598 function superConstructor(ctor) {
599 return ctor.__proto__;
600 }
601 var $__default = superConstructor;
602 return {get default() {
603 return $__default;
604 }};
605 });
606 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/supe rDescriptor.js", [], function() {
607 "use strict";
608 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superDescripto r.js";
609 var $__0 = Object,
610 getOwnPropertyDescriptor = $__0.getOwnPropertyDescriptor,
611 getPrototypeOf = $__0.getPrototypeOf;
612 function superDescriptor(homeObject, name) {
613 var proto = getPrototypeOf(homeObject);
614 do {
615 var result = getOwnPropertyDescriptor(proto, name);
616 if (result)
617 return result;
618 proto = getPrototypeOf(proto);
619 } while (proto);
620 return undefined;
621 }
622 var $__default = superDescriptor;
623 return {get default() {
624 return $__default;
625 }};
626 });
627 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/supe rGet.js", [], function() {
628 "use strict";
629 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superGet.js";
630 var superDescriptor = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("./superDescriptor.js", "traceur-runtime@0.0.108/src/runtime/modules/super Get.js")).default;
631 function superGet(self, homeObject, name) {
632 var descriptor = superDescriptor(homeObject, name);
633 if (descriptor) {
634 var value = descriptor.value;
635 if (value)
636 return value;
637 if (!descriptor.get)
638 return value;
639 return descriptor.get.call(self);
640 }
641 return undefined;
642 }
643 var $__default = superGet;
644 return {get default() {
645 return $__default;
646 }};
647 });
648 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/supe rSet.js", [], function() {
649 "use strict";
650 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superSet.js";
651 var superDescriptor = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("./superDescriptor.js", "traceur-runtime@0.0.108/src/runtime/modules/super Set.js")).default;
652 var $TypeError = TypeError;
653 function superSet(self, homeObject, name, value) {
654 var descriptor = superDescriptor(homeObject, name);
655 if (descriptor && descriptor.set) {
656 descriptor.set.call(self, value);
657 return value;
658 }
659 throw $TypeError(("super has no setter '" + name + "'."));
660 }
661 var $__default = superSet;
662 return {get default() {
663 return $__default;
664 }};
665 });
666 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/classes.js", [], function() {
667 "use strict";
668 var __moduleName = "traceur-runtime@0.0.108/src/runtime/classes.js";
669 var createClass = $traceurRuntime.getModule($traceurRuntime.normalizeModuleNam e("./modules/createClass.js", "traceur-runtime@0.0.108/src/runtime/classes.js")) .default;
670 var superConstructor = $traceurRuntime.getModule($traceurRuntime.normalizeModu leName("./modules/superConstructor.js", "traceur-runtime@0.0.108/src/runtime/cla sses.js")).default;
671 var superGet = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName(" ./modules/superGet.js", "traceur-runtime@0.0.108/src/runtime/classes.js")).defau lt;
672 var superSet = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName(" ./modules/superSet.js", "traceur-runtime@0.0.108/src/runtime/classes.js")).defau lt;
673 $traceurRuntime.createClass = createClass;
674 $traceurRuntime.superConstructor = superConstructor;
675 $traceurRuntime.superGet = superGet;
676 $traceurRuntime.superSet = superSet;
677 return {};
678 });
679 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/expo rtStar.js", [], function() {
680 "use strict";
681 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/exportStar.js" ;
682 var $__1 = Object,
683 defineProperty = $__1.defineProperty,
684 getOwnPropertyNames = $__1.getOwnPropertyNames;
685 function exportStar(object) {
686 var $__2 = arguments,
687 $__3 = function(i) {
688 var mod = $__2[i];
689 var names = getOwnPropertyNames(mod);
690 var $__5 = function(j) {
691 var name = names[j];
692 if (name === '__esModule' || name === 'default') {
693 return 0;
694 }
695 defineProperty(object, name, {
696 get: function() {
697 return mod[name];
698 },
699 enumerable: true
700 });
701 },
702 $__6;
703 $__4: for (var j = 0; j < names.length; j++) {
704 $__6 = $__5(j);
705 switch ($__6) {
706 case 0:
707 continue $__4;
708 }
709 }
710 };
711 for (var i = 1; i < arguments.length; i++) {
712 $__3(i);
713 }
714 return object;
715 }
716 var $__default = exportStar;
717 return {get default() {
718 return $__default;
719 }};
720 });
721 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/exportStar.j s", [], function() {
722 "use strict";
723 var __moduleName = "traceur-runtime@0.0.108/src/runtime/exportStar.js";
724 var exportStar = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName ("./modules/exportStar.js", "traceur-runtime@0.0.108/src/runtime/exportStar.js") ).default;
725 $traceurRuntime.exportStar = exportStar;
726 return {};
727 });
728 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/private-symb ol.js", [], function() {
729 "use strict";
730 var __moduleName = "traceur-runtime@0.0.108/src/runtime/private-symbol.js";
731 var newUniqueString = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("./new-unique-string.js", "traceur-runtime@0.0.108/src/runtime/private-sym bol.js")).default;
732 var $Symbol = typeof Symbol === 'function' ? Symbol : undefined;
733 var $getOwnPropertySymbols = Object.getOwnPropertySymbols;
734 var $create = Object.create;
735 var privateNames = $create(null);
736 function isPrivateSymbol(s) {
737 return privateNames[s];
738 }
739 ;
740 function createPrivateSymbol() {
741 var s = ($Symbol || newUniqueString)();
742 privateNames[s] = true;
743 return s;
744 }
745 ;
746 function hasPrivate(obj, sym) {
747 return hasOwnProperty.call(obj, sym);
748 }
749 ;
750 function deletePrivate(obj, sym) {
751 if (!hasPrivate(obj, sym)) {
752 return false;
753 }
754 delete obj[sym];
755 return true;
756 }
757 ;
758 function setPrivate(obj, sym, val) {
759 obj[sym] = val;
760 }
761 ;
762 function getPrivate(obj, sym) {
763 var val = obj[sym];
764 if (val === undefined)
765 return undefined;
766 return hasOwnProperty.call(obj, sym) ? val : undefined;
767 }
768 ;
769 function init() {
770 if ($getOwnPropertySymbols) {
771 Object.getOwnPropertySymbols = function getOwnPropertySymbols(object) {
772 var rv = [];
773 var symbols = $getOwnPropertySymbols(object);
774 for (var i = 0; i < symbols.length; i++) {
775 var symbol = symbols[i];
776 if (!isPrivateSymbol(symbol)) {
777 rv.push(symbol);
778 }
779 }
780 return rv;
781 };
782 }
783 }
784 return {
785 get isPrivateSymbol() {
786 return isPrivateSymbol;
787 },
788 get createPrivateSymbol() {
789 return createPrivateSymbol;
790 },
791 get hasPrivate() {
792 return hasPrivate;
793 },
794 get deletePrivate() {
795 return deletePrivate;
796 },
797 get setPrivate() {
798 return setPrivate;
799 },
800 get getPrivate() {
801 return getPrivate;
802 },
803 get init() {
804 return init;
805 }
806 };
807 });
808 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/private-weak -map.js", [], function() {
809 "use strict";
810 var __moduleName = "traceur-runtime@0.0.108/src/runtime/private-weak-map.js";
811 var $WeakMap = typeof WeakMap === 'function' ? WeakMap : undefined;
812 function isPrivateSymbol(s) {
813 return false;
814 }
815 function createPrivateSymbol() {
816 return new $WeakMap();
817 }
818 function hasPrivate(obj, sym) {
819 return sym.has(obj);
820 }
821 function deletePrivate(obj, sym) {
822 return sym.delete(obj);
823 }
824 function setPrivate(obj, sym, val) {
825 sym.set(obj, val);
826 }
827 function getPrivate(obj, sym) {
828 return sym.get(obj);
829 }
830 function init() {}
831 return {
832 get isPrivateSymbol() {
833 return isPrivateSymbol;
834 },
835 get createPrivateSymbol() {
836 return createPrivateSymbol;
837 },
838 get hasPrivate() {
839 return hasPrivate;
840 },
841 get deletePrivate() {
842 return deletePrivate;
843 },
844 get setPrivate() {
845 return setPrivate;
846 },
847 get getPrivate() {
848 return getPrivate;
849 },
850 get init() {
851 return init;
852 }
853 };
854 });
855 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/private.js", [], function() {
856 "use strict";
857 var __moduleName = "traceur-runtime@0.0.108/src/runtime/private.js";
858 var sym = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./pri vate-symbol.js", "traceur-runtime@0.0.108/src/runtime/private.js"));
859 var weak = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./pr ivate-weak-map.js", "traceur-runtime@0.0.108/src/runtime/private.js"));
860 var hasWeakMap = typeof WeakMap === 'function';
861 var m = hasWeakMap ? weak : sym;
862 var isPrivateSymbol = m.isPrivateSymbol;
863 var createPrivateSymbol = m.createPrivateSymbol;
864 var hasPrivate = m.hasPrivate;
865 var deletePrivate = m.deletePrivate;
866 var setPrivate = m.setPrivate;
867 var getPrivate = m.getPrivate;
868 m.init();
869 return {
870 get isPrivateSymbol() {
871 return isPrivateSymbol;
872 },
873 get createPrivateSymbol() {
874 return createPrivateSymbol;
875 },
876 get hasPrivate() {
877 return hasPrivate;
878 },
879 get deletePrivate() {
880 return deletePrivate;
881 },
882 get setPrivate() {
883 return setPrivate;
884 },
885 get getPrivate() {
886 return getPrivate;
887 }
888 };
889 });
890 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/prop erTailCalls.js", [], function() {
891 "use strict";
892 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/properTailCall s.js";
893 var $__0 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../p rivate.js", "traceur-runtime@0.0.108/src/runtime/modules/properTailCalls.js")),
894 getPrivate = $__0.getPrivate,
895 setPrivate = $__0.setPrivate,
896 createPrivateSymbol = $__0.createPrivateSymbol;
897 var $apply = Function.prototype.call.bind(Function.prototype.apply);
898 var CONTINUATION_TYPE = Object.create(null);
899 var isTailRecursiveName = null;
900 function createContinuation(operand, thisArg, argsArray) {
901 return [CONTINUATION_TYPE, operand, thisArg, argsArray];
902 }
903 function isContinuation(object) {
904 return object && object[0] === CONTINUATION_TYPE;
905 }
906 function $bind(operand, thisArg, args) {
907 var argArray = [thisArg];
908 for (var i = 0; i < args.length; i++) {
909 argArray[i + 1] = args[i];
910 }
911 var func = $apply(Function.prototype.bind, operand, argArray);
912 return func;
913 }
914 function $construct(func, argArray) {
915 var object = new ($bind(func, null, argArray));
916 return object;
917 }
918 function isTailRecursive(func) {
919 return !!getPrivate(func, isTailRecursiveName);
920 }
921 function tailCall(func, thisArg, argArray) {
922 var continuation = argArray[0];
923 if (isContinuation(continuation)) {
924 continuation = $apply(func, thisArg, continuation[3]);
925 return continuation;
926 }
927 continuation = createContinuation(func, thisArg, argArray);
928 while (true) {
929 if (isTailRecursive(func)) {
930 continuation = $apply(func, continuation[2], [continuation]);
931 } else {
932 continuation = $apply(func, continuation[2], continuation[3]);
933 }
934 if (!isContinuation(continuation)) {
935 return continuation;
936 }
937 func = continuation[1];
938 }
939 }
940 function construct() {
941 var object;
942 if (isTailRecursive(this)) {
943 object = $construct(this, [createContinuation(null, null, arguments)]);
944 } else {
945 object = $construct(this, arguments);
946 }
947 return object;
948 }
949 function setupProperTailCalls() {
950 isTailRecursiveName = createPrivateSymbol();
951 Function.prototype.call = initTailRecursiveFunction(function call(thisArg) {
952 var result = tailCall(function(thisArg) {
953 var argArray = [];
954 for (var i = 1; i < arguments.length; ++i) {
955 argArray[i - 1] = arguments[i];
956 }
957 var continuation = createContinuation(this, thisArg, argArray);
958 return continuation;
959 }, this, arguments);
960 return result;
961 });
962 Function.prototype.apply = initTailRecursiveFunction(function apply(thisArg, argArray) {
963 var result = tailCall(function(thisArg, argArray) {
964 var continuation = createContinuation(this, thisArg, argArray);
965 return continuation;
966 }, this, arguments);
967 return result;
968 });
969 }
970 function initTailRecursiveFunction(func) {
971 if (isTailRecursiveName === null) {
972 setupProperTailCalls();
973 }
974 setPrivate(func, isTailRecursiveName, true);
975 return func;
976 }
977 return {
978 get createContinuation() {
979 return createContinuation;
980 },
981 get tailCall() {
982 return tailCall;
983 },
984 get construct() {
985 return construct;
986 },
987 get initTailRecursiveFunction() {
988 return initTailRecursiveFunction;
989 }
990 };
991 });
992 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/init TailRecursiveFunction.js", [], function() {
993 "use strict";
994 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/initTailRecurs iveFunction.js";
995 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_pro perTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModule Name("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/initTa ilRecursiveFunction.js"));
996 return {get default() {
997 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_properTailCalls_46_js__.initTailRecursiveFunction;
998 }};
999 });
1000 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/call .js", [], function() {
1001 "use strict";
1002 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/call.js";
1003 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_pro perTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModule Name("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/call.j s"));
1004 return {get default() {
1005 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_properTailCalls_46_js__.tailCall;
1006 }};
1007 });
1008 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/cont inuation.js", [], function() {
1009 "use strict";
1010 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/continuation.j s";
1011 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_pro perTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModule Name("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/contin uation.js"));
1012 return {get default() {
1013 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_properTailCalls_46_js__.createContinuation;
1014 }};
1015 });
1016 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/cons truct.js", [], function() {
1017 "use strict";
1018 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/construct.js";
1019 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_pro perTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModule Name("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/constr uct.js"));
1020 return {get default() {
1021 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_properTailCalls_46_js__.construct;
1022 }};
1023 });
1024 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/properTailCa lls.js", [], function() {
1025 "use strict";
1026 var __moduleName = "traceur-runtime@0.0.108/src/runtime/properTailCalls.js";
1027 var initTailRecursiveFunction = $traceurRuntime.getModule($traceurRuntime.norm alizeModuleName("./modules/initTailRecursiveFunction.js", "traceur-runtime@0.0.1 08/src/runtime/properTailCalls.js")).default;
1028 var call = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./mo dules/call.js", "traceur-runtime@0.0.108/src/runtime/properTailCalls.js")).defau lt;
1029 var continuation = $traceurRuntime.getModule($traceurRuntime.normalizeModuleNa me("./modules/continuation.js", "traceur-runtime@0.0.108/src/runtime/properTailC alls.js")).default;
1030 var construct = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName( "./modules/construct.js", "traceur-runtime@0.0.108/src/runtime/properTailCalls.j s")).default;
1031 $traceurRuntime.initTailRecursiveFunction = initTailRecursiveFunction;
1032 $traceurRuntime.call = call;
1033 $traceurRuntime.continuation = continuation;
1034 $traceurRuntime.construct = construct;
1035 return {};
1036 });
1037 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/relativeRequ ire.js", [], function() {
1038 "use strict";
1039 var __moduleName = "traceur-runtime@0.0.108/src/runtime/relativeRequire.js";
1040 var path;
1041 function relativeRequire(callerPath, requiredPath) {
1042 path = path || typeof require !== 'undefined' && require('path');
1043 function isDirectory(path) {
1044 return path.slice(-1) === '/';
1045 }
1046 function isAbsolute(path) {
1047 return path[0] === '/';
1048 }
1049 function isRelative(path) {
1050 return path[0] === '.';
1051 }
1052 if (isDirectory(requiredPath) || isAbsolute(requiredPath))
1053 return;
1054 return isRelative(requiredPath) ? require(path.resolve(path.dirname(callerPa th), requiredPath)) : require(requiredPath);
1055 }
1056 $traceurRuntime.require = relativeRequire;
1057 return {};
1058 });
1059 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/checkObjectC oercible.js", [], function() {
1060 "use strict";
1061 var __moduleName = "traceur-runtime@0.0.108/src/runtime/checkObjectCoercible.j s";
1062 var $TypeError = TypeError;
1063 function checkObjectCoercible(v) {
1064 if (v === null || v === undefined) {
1065 throw new $TypeError('Value cannot be converted to an Object');
1066 }
1067 return v;
1068 }
1069 var $__default = checkObjectCoercible;
1070 return {get default() {
1071 return $__default;
1072 }};
1073 });
1074 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/spre ad.js", [], function() {
1075 "use strict";
1076 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/spread.js";
1077 var checkObjectCoercible = $traceurRuntime.getModule($traceurRuntime.normalize ModuleName("../checkObjectCoercible.js", "traceur-runtime@0.0.108/src/runtime/mo dules/spread.js")).default;
1078 function spread() {
1079 var rv = [],
1080 j = 0,
1081 iterResult;
1082 for (var i = 0; i < arguments.length; i++) {
1083 var valueToSpread = checkObjectCoercible(arguments[i]);
1084 if (typeof valueToSpread[Symbol.iterator] !== 'function') {
1085 throw new TypeError('Cannot spread non-iterable object.');
1086 }
1087 var iter = valueToSpread[Symbol.iterator]();
1088 while (!(iterResult = iter.next()).done) {
1089 rv[j++] = iterResult.value;
1090 }
1091 }
1092 return rv;
1093 }
1094 var $__default = spread;
1095 return {get default() {
1096 return $__default;
1097 }};
1098 });
1099 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/spread.js", [], function() {
1100 "use strict";
1101 var __moduleName = "traceur-runtime@0.0.108/src/runtime/spread.js";
1102 var spread = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ modules/spread.js", "traceur-runtime@0.0.108/src/runtime/spread.js")).default;
1103 $traceurRuntime.spread = spread;
1104 return {};
1105 });
1106 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/iter atorToArray.js", [], function() {
1107 "use strict";
1108 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/iteratorToArra y.js";
1109 function iteratorToArray(iter) {
1110 var rv = [];
1111 var i = 0;
1112 var tmp;
1113 while (!(tmp = iter.next()).done) {
1114 rv[i++] = tmp.value;
1115 }
1116 return rv;
1117 }
1118 var $__default = iteratorToArray;
1119 return {get default() {
1120 return $__default;
1121 }};
1122 });
1123 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/destructurin g.js", [], function() {
1124 "use strict";
1125 var __moduleName = "traceur-runtime@0.0.108/src/runtime/destructuring.js";
1126 var iteratorToArray = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("./modules/iteratorToArray.js", "traceur-runtime@0.0.108/src/runtime/destr ucturing.js")).default;
1127 $traceurRuntime.iteratorToArray = iteratorToArray;
1128 return {};
1129 });
1130 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/asyn c.js", [], function() {
1131 "use strict";
1132 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/async.js";
1133 var $__12 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ private.js", "traceur-runtime@0.0.108/src/runtime/modules/async.js")),
1134 createPrivateSymbol = $__12.createPrivateSymbol,
1135 getPrivate = $__12.getPrivate,
1136 setPrivate = $__12.setPrivate;
1137 var $__11 = Object,
1138 create = $__11.create,
1139 defineProperty = $__11.defineProperty;
1140 var observeName = createPrivateSymbol();
1141 function AsyncGeneratorFunction() {}
1142 function AsyncGeneratorFunctionPrototype() {}
1143 AsyncGeneratorFunction.prototype = AsyncGeneratorFunctionPrototype;
1144 AsyncGeneratorFunctionPrototype.constructor = AsyncGeneratorFunction;
1145 defineProperty(AsyncGeneratorFunctionPrototype, 'constructor', {enumerable: fa lse});
1146 var AsyncGeneratorContext = function() {
1147 function AsyncGeneratorContext(observer) {
1148 var $__2 = this;
1149 this.decoratedObserver = createDecoratedGenerator(observer, function() {
1150 $__2.done = true;
1151 });
1152 this.done = false;
1153 this.inReturn = false;
1154 }
1155 return ($traceurRuntime.createClass)(AsyncGeneratorContext, {
1156 throw: function(error) {
1157 if (!this.inReturn) {
1158 throw error;
1159 }
1160 },
1161 yield: function(value) {
1162 if (this.done) {
1163 this.inReturn = true;
1164 throw undefined;
1165 }
1166 var result;
1167 try {
1168 result = this.decoratedObserver.next(value);
1169 } catch (e) {
1170 this.done = true;
1171 throw e;
1172 }
1173 if (result === undefined) {
1174 return;
1175 }
1176 if (result.done) {
1177 this.done = true;
1178 this.inReturn = true;
1179 throw undefined;
1180 }
1181 return result.value;
1182 },
1183 yieldFor: function(observable) {
1184 var ctx = this;
1185 return observeForEach(observable[Symbol.observer].bind(observable), func tion(value) {
1186 if (ctx.done) {
1187 this.return();
1188 return;
1189 }
1190 var result;
1191 try {
1192 result = ctx.decoratedObserver.next(value);
1193 } catch (e) {
1194 ctx.done = true;
1195 throw e;
1196 }
1197 if (result === undefined) {
1198 return;
1199 }
1200 if (result.done) {
1201 ctx.done = true;
1202 }
1203 return result;
1204 });
1205 }
1206 }, {});
1207 }();
1208 AsyncGeneratorFunctionPrototype.prototype[Symbol.observer] = function(observer ) {
1209 var observe = getPrivate(this, observeName);
1210 var ctx = new AsyncGeneratorContext(observer);
1211 schedule(function() {
1212 return observe(ctx);
1213 }).then(function(value) {
1214 if (!ctx.done) {
1215 ctx.decoratedObserver.return(value);
1216 }
1217 }).catch(function(error) {
1218 if (!ctx.done) {
1219 ctx.decoratedObserver.throw(error);
1220 }
1221 });
1222 return ctx.decoratedObserver;
1223 };
1224 defineProperty(AsyncGeneratorFunctionPrototype.prototype, Symbol.observer, {en umerable: false});
1225 function initAsyncGeneratorFunction(functionObject) {
1226 functionObject.prototype = create(AsyncGeneratorFunctionPrototype.prototype) ;
1227 functionObject.__proto__ = AsyncGeneratorFunctionPrototype;
1228 return functionObject;
1229 }
1230 function createAsyncGeneratorInstance(observe, functionObject) {
1231 for (var args = [],
1232 $__10 = 2; $__10 < arguments.length; $__10++)
1233 args[$__10 - 2] = arguments[$__10];
1234 var object = create(functionObject.prototype);
1235 setPrivate(object, observeName, observe);
1236 return object;
1237 }
1238 function observeForEach(observe, next) {
1239 return new Promise(function(resolve, reject) {
1240 var generator = observe({
1241 next: function(value) {
1242 return next.call(generator, value);
1243 },
1244 throw: function(error) {
1245 reject(error);
1246 },
1247 return: function(value) {
1248 resolve(value);
1249 }
1250 });
1251 });
1252 }
1253 function schedule(asyncF) {
1254 return Promise.resolve().then(asyncF);
1255 }
1256 var generator = Symbol();
1257 var onDone = Symbol();
1258 var DecoratedGenerator = function() {
1259 function DecoratedGenerator(_generator, _onDone) {
1260 this[generator] = _generator;
1261 this[onDone] = _onDone;
1262 }
1263 return ($traceurRuntime.createClass)(DecoratedGenerator, {
1264 next: function(value) {
1265 var result = this[generator].next(value);
1266 if (result !== undefined && result.done) {
1267 this[onDone].call(this);
1268 }
1269 return result;
1270 },
1271 throw: function(error) {
1272 this[onDone].call(this);
1273 return this[generator].throw(error);
1274 },
1275 return: function(value) {
1276 this[onDone].call(this);
1277 return this[generator].return(value);
1278 }
1279 }, {});
1280 }();
1281 function createDecoratedGenerator(generator, onDone) {
1282 return new DecoratedGenerator(generator, onDone);
1283 }
1284 Array.prototype[Symbol.observer] = function(observer) {
1285 var done = false;
1286 var decoratedObserver = createDecoratedGenerator(observer, function() {
1287 return done = true;
1288 });
1289 var $__6 = true;
1290 var $__7 = false;
1291 var $__8 = undefined;
1292 try {
1293 for (var $__4 = void 0,
1294 $__3 = (this)[Symbol.iterator](); !($__6 = ($__4 = $__3.next()).done); $__6 = true) {
1295 var value = $__4.value;
1296 {
1297 decoratedObserver.next(value);
1298 if (done) {
1299 return;
1300 }
1301 }
1302 }
1303 } catch ($__9) {
1304 $__7 = true;
1305 $__8 = $__9;
1306 } finally {
1307 try {
1308 if (!$__6 && $__3.return != null) {
1309 $__3.return();
1310 }
1311 } finally {
1312 if ($__7) {
1313 throw $__8;
1314 }
1315 }
1316 }
1317 decoratedObserver.return();
1318 return decoratedObserver;
1319 };
1320 defineProperty(Array.prototype, Symbol.observer, {enumerable: false});
1321 return {
1322 get initAsyncGeneratorFunction() {
1323 return initAsyncGeneratorFunction;
1324 },
1325 get createAsyncGeneratorInstance() {
1326 return createAsyncGeneratorInstance;
1327 },
1328 get observeForEach() {
1329 return observeForEach;
1330 },
1331 get schedule() {
1332 return schedule;
1333 },
1334 get createDecoratedGenerator() {
1335 return createDecoratedGenerator;
1336 }
1337 };
1338 });
1339 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/init AsyncGeneratorFunction.js", [], function() {
1340 "use strict";
1341 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/initAsyncGener atorFunction.js";
1342 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_asy nc_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./as ync.js", "traceur-runtime@0.0.108/src/runtime/modules/initAsyncGeneratorFunction .js"));
1343 return {get default() {
1344 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_async_46_js__.initAsyncGeneratorFunction;
1345 }};
1346 });
1347 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/crea teAsyncGeneratorInstance.js", [], function() {
1348 "use strict";
1349 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createAsyncGen eratorInstance.js";
1350 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_asy nc_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./as ync.js", "traceur-runtime@0.0.108/src/runtime/modules/createAsyncGeneratorInstan ce.js"));
1351 return {get default() {
1352 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_async_46_js__.createAsyncGeneratorInstance;
1353 }};
1354 });
1355 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/obse rveForEach.js", [], function() {
1356 "use strict";
1357 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/observeForEach .js";
1358 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_asy nc_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./as ync.js", "traceur-runtime@0.0.108/src/runtime/modules/observeForEach.js"));
1359 return {get default() {
1360 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_async_46_js__.observeForEach;
1361 }};
1362 });
1363 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/sche dule.js", [], function() {
1364 "use strict";
1365 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/schedule.js";
1366 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_asy nc_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./as ync.js", "traceur-runtime@0.0.108/src/runtime/modules/schedule.js"));
1367 return {get default() {
1368 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_async_46_js__.schedule;
1369 }};
1370 });
1371 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/crea teDecoratedGenerator.js", [], function() {
1372 "use strict";
1373 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createDecorate dGenerator.js";
1374 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_asy nc_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./as ync.js", "traceur-runtime@0.0.108/src/runtime/modules/createDecoratedGenerator.j s"));
1375 return {get default() {
1376 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_async_46_js__.createDecoratedGenerator;
1377 }};
1378 });
1379 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/async.js", [ ], function() {
1380 "use strict";
1381 var __moduleName = "traceur-runtime@0.0.108/src/runtime/async.js";
1382 var initAsyncGeneratorFunction = $traceurRuntime.getModule($traceurRuntime.nor malizeModuleName("./modules/initAsyncGeneratorFunction.js", "traceur-runtime@0.0 .108/src/runtime/async.js")).default;
1383 var createAsyncGeneratorInstance = $traceurRuntime.getModule($traceurRuntime.n ormalizeModuleName("./modules/createAsyncGeneratorInstance.js", "traceur-runtime @0.0.108/src/runtime/async.js")).default;
1384 var observeForEach = $traceurRuntime.getModule($traceurRuntime.normalizeModule Name("./modules/observeForEach.js", "traceur-runtime@0.0.108/src/runtime/async.j s")).default;
1385 var schedule = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName(" ./modules/schedule.js", "traceur-runtime@0.0.108/src/runtime/async.js")).default ;
1386 var createDecoratedGenerator = $traceurRuntime.getModule($traceurRuntime.norma lizeModuleName("./modules/createDecoratedGenerator.js", "traceur-runtime@0.0.108 /src/runtime/async.js")).default;
1387 $traceurRuntime.initAsyncGeneratorFunction = initAsyncGeneratorFunction;
1388 $traceurRuntime.createAsyncGeneratorInstance = createAsyncGeneratorInstance;
1389 $traceurRuntime.observeForEach = observeForEach;
1390 $traceurRuntime.schedule = schedule;
1391 $traceurRuntime.createDecoratedGenerator = createDecoratedGenerator;
1392 return {};
1393 });
1394 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/gene rators.js", [], function() {
1395 "use strict";
1396 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/generators.js" ;
1397 var $__2 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../p rivate.js", "traceur-runtime@0.0.108/src/runtime/modules/generators.js")),
1398 createPrivateSymbol = $__2.createPrivateSymbol,
1399 getPrivate = $__2.getPrivate,
1400 setPrivate = $__2.setPrivate;
1401 var $TypeError = TypeError;
1402 var $__1 = Object,
1403 create = $__1.create,
1404 defineProperties = $__1.defineProperties,
1405 defineProperty = $__1.defineProperty;
1406 function nonEnum(value) {
1407 return {
1408 configurable: true,
1409 enumerable: false,
1410 value: value,
1411 writable: true
1412 };
1413 }
1414 var ST_NEWBORN = 0;
1415 var ST_EXECUTING = 1;
1416 var ST_SUSPENDED = 2;
1417 var ST_CLOSED = 3;
1418 var END_STATE = -2;
1419 var RETHROW_STATE = -3;
1420 function getInternalError(state) {
1421 return new Error('Traceur compiler bug: invalid state in state machine: ' + state);
1422 }
1423 var RETURN_SENTINEL = {};
1424 function GeneratorContext() {
1425 this.state = 0;
1426 this.GState = ST_NEWBORN;
1427 this.storedException = undefined;
1428 this.finallyFallThrough = undefined;
1429 this.sent_ = undefined;
1430 this.returnValue = undefined;
1431 this.oldReturnValue = undefined;
1432 this.tryStack_ = [];
1433 }
1434 GeneratorContext.prototype = {
1435 pushTry: function(catchState, finallyState) {
1436 if (finallyState !== null) {
1437 var finallyFallThrough = null;
1438 for (var i = this.tryStack_.length - 1; i >= 0; i--) {
1439 if (this.tryStack_[i].catch !== undefined) {
1440 finallyFallThrough = this.tryStack_[i].catch;
1441 break;
1442 }
1443 }
1444 if (finallyFallThrough === null)
1445 finallyFallThrough = RETHROW_STATE;
1446 this.tryStack_.push({
1447 finally: finallyState,
1448 finallyFallThrough: finallyFallThrough
1449 });
1450 }
1451 if (catchState !== null) {
1452 this.tryStack_.push({catch: catchState});
1453 }
1454 },
1455 popTry: function() {
1456 this.tryStack_.pop();
1457 },
1458 maybeUncatchable: function() {
1459 if (this.storedException === RETURN_SENTINEL) {
1460 throw RETURN_SENTINEL;
1461 }
1462 },
1463 get sent() {
1464 this.maybeThrow();
1465 return this.sent_;
1466 },
1467 set sent(v) {
1468 this.sent_ = v;
1469 },
1470 get sentIgnoreThrow() {
1471 return this.sent_;
1472 },
1473 maybeThrow: function() {
1474 if (this.action === 'throw') {
1475 this.action = 'next';
1476 throw this.sent_;
1477 }
1478 },
1479 end: function() {
1480 switch (this.state) {
1481 case END_STATE:
1482 return this;
1483 case RETHROW_STATE:
1484 throw this.storedException;
1485 default:
1486 throw getInternalError(this.state);
1487 }
1488 },
1489 handleException: function(ex) {
1490 this.GState = ST_CLOSED;
1491 this.state = END_STATE;
1492 throw ex;
1493 },
1494 wrapYieldStar: function(iterator) {
1495 var ctx = this;
1496 return {
1497 next: function(v) {
1498 return iterator.next(v);
1499 },
1500 throw: function(e) {
1501 var result;
1502 if (e === RETURN_SENTINEL) {
1503 if (iterator.return) {
1504 result = iterator.return(ctx.returnValue);
1505 if (!result.done) {
1506 ctx.returnValue = ctx.oldReturnValue;
1507 return result;
1508 }
1509 ctx.returnValue = result.value;
1510 }
1511 throw e;
1512 }
1513 if (iterator.throw) {
1514 return iterator.throw(e);
1515 }
1516 iterator.return && iterator.return();
1517 throw $TypeError('Inner iterator does not have a throw method');
1518 }
1519 };
1520 }
1521 };
1522 function nextOrThrow(ctx, moveNext, action, x) {
1523 switch (ctx.GState) {
1524 case ST_EXECUTING:
1525 throw new Error(("\"" + action + "\" on executing generator"));
1526 case ST_CLOSED:
1527 if (action == 'next') {
1528 return {
1529 value: undefined,
1530 done: true
1531 };
1532 }
1533 if (x === RETURN_SENTINEL) {
1534 return {
1535 value: ctx.returnValue,
1536 done: true
1537 };
1538 }
1539 throw x;
1540 case ST_NEWBORN:
1541 if (action === 'throw') {
1542 ctx.GState = ST_CLOSED;
1543 if (x === RETURN_SENTINEL) {
1544 return {
1545 value: ctx.returnValue,
1546 done: true
1547 };
1548 }
1549 throw x;
1550 }
1551 if (x !== undefined)
1552 throw $TypeError('Sent value to newborn generator');
1553 case ST_SUSPENDED:
1554 ctx.GState = ST_EXECUTING;
1555 ctx.action = action;
1556 ctx.sent = x;
1557 var value;
1558 try {
1559 value = moveNext(ctx);
1560 } catch (ex) {
1561 if (ex === RETURN_SENTINEL) {
1562 value = ctx;
1563 } else {
1564 throw ex;
1565 }
1566 }
1567 var done = value === ctx;
1568 if (done)
1569 value = ctx.returnValue;
1570 ctx.GState = done ? ST_CLOSED : ST_SUSPENDED;
1571 return {
1572 value: value,
1573 done: done
1574 };
1575 }
1576 }
1577 var ctxName = createPrivateSymbol();
1578 var moveNextName = createPrivateSymbol();
1579 function GeneratorFunction() {}
1580 function GeneratorFunctionPrototype() {}
1581 GeneratorFunction.prototype = GeneratorFunctionPrototype;
1582 defineProperty(GeneratorFunctionPrototype, 'constructor', nonEnum(GeneratorFun ction));
1583 GeneratorFunctionPrototype.prototype = {
1584 constructor: GeneratorFunctionPrototype,
1585 next: function(v) {
1586 return nextOrThrow(getPrivate(this, ctxName), getPrivate(this, moveNextNam e), 'next', v);
1587 },
1588 throw: function(v) {
1589 return nextOrThrow(getPrivate(this, ctxName), getPrivate(this, moveNextNam e), 'throw', v);
1590 },
1591 return: function(v) {
1592 var ctx = getPrivate(this, ctxName);
1593 ctx.oldReturnValue = ctx.returnValue;
1594 ctx.returnValue = v;
1595 return nextOrThrow(ctx, getPrivate(this, moveNextName), 'throw', RETURN_SE NTINEL);
1596 }
1597 };
1598 defineProperties(GeneratorFunctionPrototype.prototype, {
1599 constructor: {enumerable: false},
1600 next: {enumerable: false},
1601 throw: {enumerable: false},
1602 return: {enumerable: false}
1603 });
1604 Object.defineProperty(GeneratorFunctionPrototype.prototype, Symbol.iterator, n onEnum(function() {
1605 return this;
1606 }));
1607 function createGeneratorInstance(innerFunction, functionObject, self) {
1608 var moveNext = getMoveNext(innerFunction, self);
1609 var ctx = new GeneratorContext();
1610 var object = create(functionObject.prototype);
1611 setPrivate(object, ctxName, ctx);
1612 setPrivate(object, moveNextName, moveNext);
1613 return object;
1614 }
1615 function initGeneratorFunction(functionObject) {
1616 functionObject.prototype = create(GeneratorFunctionPrototype.prototype);
1617 functionObject.__proto__ = GeneratorFunctionPrototype;
1618 return functionObject;
1619 }
1620 function AsyncFunctionContext() {
1621 GeneratorContext.call(this);
1622 this.err = undefined;
1623 var ctx = this;
1624 ctx.result = new Promise(function(resolve, reject) {
1625 ctx.resolve = resolve;
1626 ctx.reject = reject;
1627 });
1628 }
1629 AsyncFunctionContext.prototype = create(GeneratorContext.prototype);
1630 AsyncFunctionContext.prototype.end = function() {
1631 switch (this.state) {
1632 case END_STATE:
1633 this.resolve(this.returnValue);
1634 break;
1635 case RETHROW_STATE:
1636 this.reject(this.storedException);
1637 break;
1638 default:
1639 this.reject(getInternalError(this.state));
1640 }
1641 };
1642 AsyncFunctionContext.prototype.handleException = function() {
1643 this.state = RETHROW_STATE;
1644 };
1645 function asyncWrap(innerFunction, self) {
1646 var moveNext = getMoveNext(innerFunction, self);
1647 var ctx = new AsyncFunctionContext();
1648 ctx.createCallback = function(newState) {
1649 return function(value) {
1650 ctx.state = newState;
1651 ctx.value = value;
1652 moveNext(ctx);
1653 };
1654 };
1655 ctx.errback = function(err) {
1656 handleCatch(ctx, err);
1657 moveNext(ctx);
1658 };
1659 moveNext(ctx);
1660 return ctx.result;
1661 }
1662 function getMoveNext(innerFunction, self) {
1663 return function(ctx) {
1664 while (true) {
1665 try {
1666 return innerFunction.call(self, ctx);
1667 } catch (ex) {
1668 handleCatch(ctx, ex);
1669 }
1670 }
1671 };
1672 }
1673 function handleCatch(ctx, ex) {
1674 ctx.storedException = ex;
1675 var last = ctx.tryStack_[ctx.tryStack_.length - 1];
1676 if (!last) {
1677 ctx.handleException(ex);
1678 return;
1679 }
1680 ctx.state = last.catch !== undefined ? last.catch : last.finally;
1681 if (last.finallyFallThrough !== undefined)
1682 ctx.finallyFallThrough = last.finallyFallThrough;
1683 }
1684 return {
1685 get createGeneratorInstance() {
1686 return createGeneratorInstance;
1687 },
1688 get initGeneratorFunction() {
1689 return initGeneratorFunction;
1690 },
1691 get asyncWrap() {
1692 return asyncWrap;
1693 }
1694 };
1695 });
1696 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/asyn cWrap.js", [], function() {
1697 "use strict";
1698 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/asyncWrap.js";
1699 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_gen erators_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName( "./generators.js", "traceur-runtime@0.0.108/src/runtime/modules/asyncWrap.js"));
1700 return {get default() {
1701 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_generators_46_js__.asyncWrap;
1702 }};
1703 });
1704 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/init GeneratorFunction.js", [], function() {
1705 "use strict";
1706 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/initGeneratorF unction.js";
1707 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_gen erators_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName( "./generators.js", "traceur-runtime@0.0.108/src/runtime/modules/initGeneratorFun ction.js"));
1708 return {get default() {
1709 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_generators_46_js__.initGeneratorFunction;
1710 }};
1711 });
1712 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/crea teGeneratorInstance.js", [], function() {
1713 "use strict";
1714 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createGenerato rInstance.js";
1715 var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_gen erators_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName( "./generators.js", "traceur-runtime@0.0.108/src/runtime/modules/createGeneratorI nstance.js"));
1716 return {get default() {
1717 return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules _47_generators_46_js__.createGeneratorInstance;
1718 }};
1719 });
1720 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/generators.j s", [], function() {
1721 "use strict";
1722 var __moduleName = "traceur-runtime@0.0.108/src/runtime/generators.js";
1723 var asyncWrap = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName( "./modules/asyncWrap.js", "traceur-runtime@0.0.108/src/runtime/generators.js")). default;
1724 var initGeneratorFunction = $traceurRuntime.getModule($traceurRuntime.normaliz eModuleName("./modules/initGeneratorFunction.js", "traceur-runtime@0.0.108/src/r untime/generators.js")).default;
1725 var createGeneratorInstance = $traceurRuntime.getModule($traceurRuntime.normal izeModuleName("./modules/createGeneratorInstance.js", "traceur-runtime@0.0.108/s rc/runtime/generators.js")).default;
1726 $traceurRuntime.asyncWrap = asyncWrap;
1727 $traceurRuntime.initGeneratorFunction = initGeneratorFunction;
1728 $traceurRuntime.createGeneratorInstance = createGeneratorInstance;
1729 return {};
1730 });
1731 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/spaw n.js", [], function() {
1732 "use strict";
1733 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/spawn.js";
1734 function spawn(self, args, gen) {
1735 return new Promise(function(resolve, reject) {
1736 function fulfill(v) {
1737 try {
1738 step(gen.next(v));
1739 } catch (e) {
1740 reject(e);
1741 }
1742 }
1743 function rejected(v) {
1744 try {
1745 step(gen.throw(v));
1746 } catch (e) {
1747 reject(e);
1748 }
1749 }
1750 function step(res) {
1751 if (res.done) {
1752 resolve(res.value);
1753 } else {
1754 Promise.resolve(res.value).then(fulfill, rejected);
1755 }
1756 }
1757 step((gen = gen.apply(self, args)).next());
1758 });
1759 }
1760 var $__default = spawn;
1761 return {get default() {
1762 return $__default;
1763 }};
1764 });
1765 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/spawn.js", [ ], function() {
1766 "use strict";
1767 var __moduleName = "traceur-runtime@0.0.108/src/runtime/spawn.js";
1768 var spawn = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./m odules/spawn.js", "traceur-runtime@0.0.108/src/runtime/spawn.js")).default;
1769 $traceurRuntime.spawn = spawn;
1770 return {};
1771 });
1772 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/getT emplateObject.js", [], function() {
1773 "use strict";
1774 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/getTemplateObj ect.js";
1775 var $__1 = Object,
1776 defineProperty = $__1.defineProperty,
1777 freeze = $__1.freeze;
1778 var slice = Array.prototype.slice;
1779 var map = Object.create(null);
1780 function getTemplateObject(raw) {
1781 var cooked = arguments[1];
1782 var key = raw.join('${}');
1783 var templateObject = map[key];
1784 if (templateObject)
1785 return templateObject;
1786 if (!cooked) {
1787 cooked = slice.call(raw);
1788 }
1789 return map[key] = freeze(defineProperty(cooked, 'raw', {value: freeze(raw)}) );
1790 }
1791 var $__default = getTemplateObject;
1792 return {get default() {
1793 return $__default;
1794 }};
1795 });
1796 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/template.js" , [], function() {
1797 "use strict";
1798 var __moduleName = "traceur-runtime@0.0.108/src/runtime/template.js";
1799 var getTemplateObject = $traceurRuntime.getModule($traceurRuntime.normalizeMod uleName("./modules/getTemplateObject.js", "traceur-runtime@0.0.108/src/runtime/t emplate.js")).default;
1800 $traceurRuntime.getTemplateObject = getTemplateObject;
1801 return {};
1802 });
1803 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/spre adProperties.js", [], function() {
1804 "use strict";
1805 var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/spreadProperti es.js";
1806 var $__1 = Object,
1807 defineProperty = $__1.defineProperty,
1808 getOwnPropertyNames = $__1.getOwnPropertyNames,
1809 getOwnPropertySymbols = $__1.getOwnPropertySymbols,
1810 propertyIsEnumerable = $__1.propertyIsEnumerable;
1811 function createDataProperty(o, p, v) {
1812 defineProperty(o, p, {
1813 configurable: true,
1814 enumerable: true,
1815 value: v,
1816 writable: true
1817 });
1818 }
1819 function copyDataProperties(target, source) {
1820 if (source == null) {
1821 return;
1822 }
1823 var copy = function(keys) {
1824 for (var i = 0; i < keys.length; i++) {
1825 var nextKey = keys[i];
1826 if (propertyIsEnumerable.call(source, nextKey)) {
1827 var propValue = source[nextKey];
1828 createDataProperty(target, nextKey, propValue);
1829 }
1830 }
1831 };
1832 copy(getOwnPropertyNames(source));
1833 copy(getOwnPropertySymbols(source));
1834 }
1835 var $__default = function() {
1836 var target = arguments[0];
1837 for (var i = 1; i < arguments.length; i++) {
1838 copyDataProperties(target, arguments[i]);
1839 }
1840 return target;
1841 };
1842 return {get default() {
1843 return $__default;
1844 }};
1845 });
1846 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/jsx.js", [], function() {
1847 "use strict";
1848 var __moduleName = "traceur-runtime@0.0.108/src/runtime/jsx.js";
1849 var spreadProperties = $traceurRuntime.getModule($traceurRuntime.normalizeModu leName("./modules/spreadProperties.js", "traceur-runtime@0.0.108/src/runtime/jsx .js")).default;
1850 $traceurRuntime.spreadProperties = spreadProperties;
1851 return {};
1852 });
1853 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/runtime-modu les.js", [], function() {
1854 "use strict";
1855 var __moduleName = "traceur-runtime@0.0.108/src/runtime/runtime-modules.js";
1856 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./symbols.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1857 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./classes.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1858 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./exportStar.js ", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1859 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCal ls.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1860 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./relativeRequi re.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1861 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./spread.js", " traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1862 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./destructuring .js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1863 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "t raceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1864 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js ", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1865 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./spawn.js", "t raceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1866 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./template.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1867 $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./jsx.js", "tra ceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
1868 return {};
1869 });
1870 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/runtime-modules.j s" + '');
1871 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/frozen-data. js", [], function() {
1872 "use strict";
1873 var __moduleName = "traceur-runtime@0.0.108/src/runtime/frozen-data.js";
1874 function findIndex(arr, key) {
1875 for (var i = 0; i < arr.length; i += 2) {
1876 if (arr[i] === key) {
1877 return i;
1878 }
1879 }
1880 return -1;
1881 }
1882 function setFrozen(arr, key, val) {
1883 var i = findIndex(arr, key);
1884 if (i === -1) {
1885 arr.push(key, val);
1886 }
1887 }
1888 function getFrozen(arr, key) {
1889 var i = findIndex(arr, key);
1890 if (i !== -1) {
1891 return arr[i + 1];
1892 }
1893 return undefined;
1894 }
1895 function hasFrozen(arr, key) {
1896 return findIndex(arr, key) !== -1;
1897 }
1898 function deleteFrozen(arr, key) {
1899 var i = findIndex(arr, key);
1900 if (i !== -1) {
1901 arr.splice(i, 2);
1902 return true;
1903 }
1904 return false;
1905 }
1906 return {
1907 get setFrozen() {
1908 return setFrozen;
1909 },
1910 get getFrozen() {
1911 return getFrozen;
1912 },
1913 get hasFrozen() {
1914 return hasFrozen;
1915 },
1916 get deleteFrozen() {
1917 return deleteFrozen;
1918 }
1919 };
1920 });
1921 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/ut ils.js", [], function() {
1922 "use strict";
1923 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/utils.js";
1924 var $ceil = Math.ceil;
1925 var $floor = Math.floor;
1926 var $isFinite = isFinite;
1927 var $isNaN = isNaN;
1928 var $pow = Math.pow;
1929 var $min = Math.min;
1930 var $TypeError = TypeError;
1931 var $Object = Object;
1932 function toObject(x) {
1933 if (x == null) {
1934 throw $TypeError();
1935 }
1936 return $Object(x);
1937 }
1938 function toUint32(x) {
1939 return x >>> 0;
1940 }
1941 function isObject(x) {
1942 return x && (typeof x === 'object' || typeof x === 'function');
1943 }
1944 function isCallable(x) {
1945 return typeof x === 'function';
1946 }
1947 function isNumber(x) {
1948 return typeof x === 'number';
1949 }
1950 function toInteger(x) {
1951 x = +x;
1952 if ($isNaN(x))
1953 return 0;
1954 if (x === 0 || !$isFinite(x))
1955 return x;
1956 return x > 0 ? $floor(x) : $ceil(x);
1957 }
1958 var MAX_SAFE_LENGTH = $pow(2, 53) - 1;
1959 function toLength(x) {
1960 var len = toInteger(x);
1961 return len < 0 ? 0 : $min(len, MAX_SAFE_LENGTH);
1962 }
1963 function checkIterable(x) {
1964 return !isObject(x) ? undefined : x[Symbol.iterator];
1965 }
1966 function isConstructor(x) {
1967 return isCallable(x);
1968 }
1969 function createIteratorResultObject(value, done) {
1970 return {
1971 value: value,
1972 done: done
1973 };
1974 }
1975 function maybeDefine(object, name, descr) {
1976 if (!(name in object)) {
1977 Object.defineProperty(object, name, descr);
1978 }
1979 }
1980 function maybeDefineMethod(object, name, value) {
1981 maybeDefine(object, name, {
1982 value: value,
1983 configurable: true,
1984 enumerable: false,
1985 writable: true
1986 });
1987 }
1988 function maybeDefineConst(object, name, value) {
1989 maybeDefine(object, name, {
1990 value: value,
1991 configurable: false,
1992 enumerable: false,
1993 writable: false
1994 });
1995 }
1996 function maybeAddFunctions(object, functions) {
1997 for (var i = 0; i < functions.length; i += 2) {
1998 var name = functions[i];
1999 var value = functions[i + 1];
2000 maybeDefineMethod(object, name, value);
2001 }
2002 }
2003 function maybeAddConsts(object, consts) {
2004 for (var i = 0; i < consts.length; i += 2) {
2005 var name = consts[i];
2006 var value = consts[i + 1];
2007 maybeDefineConst(object, name, value);
2008 }
2009 }
2010 function maybeAddIterator(object, func, Symbol) {
2011 if (!Symbol || !Symbol.iterator || object[Symbol.iterator])
2012 return;
2013 if (object['@@iterator'])
2014 func = object['@@iterator'];
2015 Object.defineProperty(object, Symbol.iterator, {
2016 value: func,
2017 configurable: true,
2018 enumerable: false,
2019 writable: true
2020 });
2021 }
2022 var polyfills = [];
2023 function registerPolyfill(func) {
2024 polyfills.push(func);
2025 }
2026 function polyfillAll(global) {
2027 polyfills.forEach(function(f) {
2028 return f(global);
2029 });
2030 }
2031 return {
2032 get toObject() {
2033 return toObject;
2034 },
2035 get toUint32() {
2036 return toUint32;
2037 },
2038 get isObject() {
2039 return isObject;
2040 },
2041 get isCallable() {
2042 return isCallable;
2043 },
2044 get isNumber() {
2045 return isNumber;
2046 },
2047 get toInteger() {
2048 return toInteger;
2049 },
2050 get toLength() {
2051 return toLength;
2052 },
2053 get checkIterable() {
2054 return checkIterable;
2055 },
2056 get isConstructor() {
2057 return isConstructor;
2058 },
2059 get createIteratorResultObject() {
2060 return createIteratorResultObject;
2061 },
2062 get maybeDefine() {
2063 return maybeDefine;
2064 },
2065 get maybeDefineMethod() {
2066 return maybeDefineMethod;
2067 },
2068 get maybeDefineConst() {
2069 return maybeDefineConst;
2070 },
2071 get maybeAddFunctions() {
2072 return maybeAddFunctions;
2073 },
2074 get maybeAddConsts() {
2075 return maybeAddConsts;
2076 },
2077 get maybeAddIterator() {
2078 return maybeAddIterator;
2079 },
2080 get registerPolyfill() {
2081 return registerPolyfill;
2082 },
2083 get polyfillAll() {
2084 return polyfillAll;
2085 }
2086 };
2087 });
2088 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Ma p.js", [], function() {
2089 "use strict";
2090 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js";
2091 var $__16 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ private.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")),
2092 createPrivateSymbol = $__16.createPrivateSymbol,
2093 getPrivate = $__16.getPrivate,
2094 setPrivate = $__16.setPrivate;
2095 var $__17 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ frozen-data.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")),
2096 deleteFrozen = $__17.deleteFrozen,
2097 getFrozen = $__17.getFrozen,
2098 setFrozen = $__17.setFrozen;
2099 var $__18 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./u tils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")),
2100 isObject = $__18.isObject,
2101 registerPolyfill = $__18.registerPolyfill;
2102 var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills /Map.js")).default;
2103 var $__9 = Object,
2104 defineProperty = $__9.defineProperty,
2105 getOwnPropertyDescriptor = $__9.getOwnPropertyDescriptor,
2106 hasOwnProperty = $__9.hasOwnProperty,
2107 isExtensible = $__9.isExtensible;
2108 var deletedSentinel = {};
2109 var counter = 1;
2110 var hashCodeName = createPrivateSymbol();
2111 function getHashCodeForObject(obj) {
2112 return getPrivate(obj, hashCodeName);
2113 }
2114 function getOrSetHashCodeForObject(obj) {
2115 var hash = getHashCodeForObject(obj);
2116 if (!hash) {
2117 hash = counter++;
2118 setPrivate(obj, hashCodeName, hash);
2119 }
2120 return hash;
2121 }
2122 function lookupIndex(map, key) {
2123 if (typeof key === 'string') {
2124 return map.stringIndex_[key];
2125 }
2126 if (isObject(key)) {
2127 if (!isExtensible(key)) {
2128 return getFrozen(map.frozenData_, key);
2129 }
2130 var hc = getHashCodeForObject(key);
2131 if (hc === undefined) {
2132 return undefined;
2133 }
2134 return map.objectIndex_[hc];
2135 }
2136 return map.primitiveIndex_[key];
2137 }
2138 function initMap(map) {
2139 map.entries_ = [];
2140 map.objectIndex_ = Object.create(null);
2141 map.stringIndex_ = Object.create(null);
2142 map.primitiveIndex_ = Object.create(null);
2143 map.frozenData_ = [];
2144 map.deletedCount_ = 0;
2145 }
2146 var Map = function() {
2147 function Map() {
2148 var $__11,
2149 $__12;
2150 var iterable = arguments[0];
2151 if (!isObject(this))
2152 throw new TypeError('Map called on incompatible type');
2153 if (hasOwnProperty.call(this, 'entries_')) {
2154 throw new TypeError('Map can not be reentrantly initialised');
2155 }
2156 initMap(this);
2157 if (iterable !== null && iterable !== undefined) {
2158 var $__5 = true;
2159 var $__6 = false;
2160 var $__7 = undefined;
2161 try {
2162 for (var $__3 = void 0,
2163 $__2 = (iterable)[Symbol.iterator](); !($__5 = ($__3 = $__2.next() ).done); $__5 = true) {
2164 var $__10 = $__3.value,
2165 key = ($__11 = $__10[Symbol.iterator](), ($__12 = $__11.next()). done ? void 0 : $__12.value),
2166 value = ($__12 = $__11.next()).done ? void 0 : $__12.value;
2167 {
2168 this.set(key, value);
2169 }
2170 }
2171 } catch ($__8) {
2172 $__6 = true;
2173 $__7 = $__8;
2174 } finally {
2175 try {
2176 if (!$__5 && $__2.return != null) {
2177 $__2.return();
2178 }
2179 } finally {
2180 if ($__6) {
2181 throw $__7;
2182 }
2183 }
2184 }
2185 }
2186 }
2187 return ($traceurRuntime.createClass)(Map, {
2188 get size() {
2189 return this.entries_.length / 2 - this.deletedCount_;
2190 },
2191 get: function(key) {
2192 var index = lookupIndex(this, key);
2193 if (index !== undefined) {
2194 return this.entries_[index + 1];
2195 }
2196 },
2197 set: function(key, value) {
2198 var index = lookupIndex(this, key);
2199 if (index !== undefined) {
2200 this.entries_[index + 1] = value;
2201 } else {
2202 index = this.entries_.length;
2203 this.entries_[index] = key;
2204 this.entries_[index + 1] = value;
2205 if (isObject(key)) {
2206 if (!isExtensible(key)) {
2207 setFrozen(this.frozenData_, key, index);
2208 } else {
2209 var hash = getOrSetHashCodeForObject(key);
2210 this.objectIndex_[hash] = index;
2211 }
2212 } else if (typeof key === 'string') {
2213 this.stringIndex_[key] = index;
2214 } else {
2215 this.primitiveIndex_[key] = index;
2216 }
2217 }
2218 return this;
2219 },
2220 has: function(key) {
2221 return lookupIndex(this, key) !== undefined;
2222 },
2223 delete: function(key) {
2224 var index = lookupIndex(this, key);
2225 if (index === undefined) {
2226 return false;
2227 }
2228 this.entries_[index] = deletedSentinel;
2229 this.entries_[index + 1] = undefined;
2230 this.deletedCount_++;
2231 if (isObject(key)) {
2232 if (!isExtensible(key)) {
2233 deleteFrozen(this.frozenData_, key);
2234 } else {
2235 var hash = getHashCodeForObject(key);
2236 delete this.objectIndex_[hash];
2237 }
2238 } else if (typeof key === 'string') {
2239 delete this.stringIndex_[key];
2240 } else {
2241 delete this.primitiveIndex_[key];
2242 }
2243 return true;
2244 },
2245 clear: function() {
2246 initMap(this);
2247 },
2248 forEach: function(callbackFn) {
2249 var thisArg = arguments[1];
2250 for (var i = 0; i < this.entries_.length; i += 2) {
2251 var key = this.entries_[i];
2252 var value = this.entries_[i + 1];
2253 if (key === deletedSentinel)
2254 continue;
2255 callbackFn.call(thisArg, value, key, this);
2256 }
2257 },
2258 entries: $traceurRuntime.initGeneratorFunction(function $__13() {
2259 var i,
2260 key,
2261 value;
2262 return $traceurRuntime.createGeneratorInstance(function($ctx) {
2263 while (true)
2264 switch ($ctx.state) {
2265 case 0:
2266 i = 0;
2267 $ctx.state = 12;
2268 break;
2269 case 12:
2270 $ctx.state = (i < this.entries_.length) ? 8 : -2;
2271 break;
2272 case 4:
2273 i += 2;
2274 $ctx.state = 12;
2275 break;
2276 case 8:
2277 key = this.entries_[i];
2278 value = this.entries_[i + 1];
2279 $ctx.state = 9;
2280 break;
2281 case 9:
2282 $ctx.state = (key === deletedSentinel) ? 4 : 6;
2283 break;
2284 case 6:
2285 $ctx.state = 2;
2286 return [key, value];
2287 case 2:
2288 $ctx.maybeThrow();
2289 $ctx.state = 4;
2290 break;
2291 default:
2292 return $ctx.end();
2293 }
2294 }, $__13, this);
2295 }),
2296 keys: $traceurRuntime.initGeneratorFunction(function $__14() {
2297 var i,
2298 key,
2299 value;
2300 return $traceurRuntime.createGeneratorInstance(function($ctx) {
2301 while (true)
2302 switch ($ctx.state) {
2303 case 0:
2304 i = 0;
2305 $ctx.state = 12;
2306 break;
2307 case 12:
2308 $ctx.state = (i < this.entries_.length) ? 8 : -2;
2309 break;
2310 case 4:
2311 i += 2;
2312 $ctx.state = 12;
2313 break;
2314 case 8:
2315 key = this.entries_[i];
2316 value = this.entries_[i + 1];
2317 $ctx.state = 9;
2318 break;
2319 case 9:
2320 $ctx.state = (key === deletedSentinel) ? 4 : 6;
2321 break;
2322 case 6:
2323 $ctx.state = 2;
2324 return key;
2325 case 2:
2326 $ctx.maybeThrow();
2327 $ctx.state = 4;
2328 break;
2329 default:
2330 return $ctx.end();
2331 }
2332 }, $__14, this);
2333 }),
2334 values: $traceurRuntime.initGeneratorFunction(function $__15() {
2335 var i,
2336 key,
2337 value;
2338 return $traceurRuntime.createGeneratorInstance(function($ctx) {
2339 while (true)
2340 switch ($ctx.state) {
2341 case 0:
2342 i = 0;
2343 $ctx.state = 12;
2344 break;
2345 case 12:
2346 $ctx.state = (i < this.entries_.length) ? 8 : -2;
2347 break;
2348 case 4:
2349 i += 2;
2350 $ctx.state = 12;
2351 break;
2352 case 8:
2353 key = this.entries_[i];
2354 value = this.entries_[i + 1];
2355 $ctx.state = 9;
2356 break;
2357 case 9:
2358 $ctx.state = (key === deletedSentinel) ? 4 : 6;
2359 break;
2360 case 6:
2361 $ctx.state = 2;
2362 return value;
2363 case 2:
2364 $ctx.maybeThrow();
2365 $ctx.state = 4;
2366 break;
2367 default:
2368 return $ctx.end();
2369 }
2370 }, $__15, this);
2371 })
2372 }, {});
2373 }();
2374 defineProperty(Map.prototype, Symbol.iterator, {
2375 configurable: true,
2376 writable: true,
2377 value: Map.prototype.entries
2378 });
2379 function needsPolyfill(global) {
2380 var $__10 = global,
2381 Map = $__10.Map,
2382 Symbol = $__10.Symbol;
2383 if (!Map || !hasNativeSymbol() || !Map.prototype[Symbol.iterator] || !Map.pr ototype.entries) {
2384 return true;
2385 }
2386 try {
2387 return new Map([[]]).size !== 1;
2388 } catch (e) {
2389 return false;
2390 }
2391 }
2392 function polyfillMap(global) {
2393 if (needsPolyfill(global)) {
2394 global.Map = Map;
2395 }
2396 }
2397 registerPolyfill(polyfillMap);
2398 return {
2399 get Map() {
2400 return Map;
2401 },
2402 get polyfillMap() {
2403 return polyfillMap;
2404 }
2405 };
2406 });
2407 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Map.js" + '');
2408 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Se t.js", [], function() {
2409 "use strict";
2410 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js";
2411 var $__18 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./u tils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js")),
2412 isObject = $__18.isObject,
2413 registerPolyfill = $__18.registerPolyfill;
2414 var Map = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Map .js", "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js")).Map;
2415 var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills /Set.js")).default;
2416 var hasOwnProperty = Object.prototype.hasOwnProperty;
2417 var Set = function() {
2418 function Set() {
2419 var iterable = arguments[0];
2420 if (!isObject(this))
2421 throw new TypeError('Set called on incompatible type');
2422 if (hasOwnProperty.call(this, 'map_')) {
2423 throw new TypeError('Set can not be reentrantly initialised');
2424 }
2425 this.map_ = new Map();
2426 if (iterable !== null && iterable !== undefined) {
2427 var $__6 = true;
2428 var $__7 = false;
2429 var $__8 = undefined;
2430 try {
2431 for (var $__4 = void 0,
2432 $__3 = (iterable)[Symbol.iterator](); !($__6 = ($__4 = $__3.next() ).done); $__6 = true) {
2433 var item = $__4.value;
2434 {
2435 this.add(item);
2436 }
2437 }
2438 } catch ($__9) {
2439 $__7 = true;
2440 $__8 = $__9;
2441 } finally {
2442 try {
2443 if (!$__6 && $__3.return != null) {
2444 $__3.return();
2445 }
2446 } finally {
2447 if ($__7) {
2448 throw $__8;
2449 }
2450 }
2451 }
2452 }
2453 }
2454 return ($traceurRuntime.createClass)(Set, {
2455 get size() {
2456 return this.map_.size;
2457 },
2458 has: function(key) {
2459 return this.map_.has(key);
2460 },
2461 add: function(key) {
2462 this.map_.set(key, key);
2463 return this;
2464 },
2465 delete: function(key) {
2466 return this.map_.delete(key);
2467 },
2468 clear: function() {
2469 return this.map_.clear();
2470 },
2471 forEach: function(callbackFn) {
2472 var thisArg = arguments[1];
2473 var $__2 = this;
2474 return this.map_.forEach(function(value, key) {
2475 callbackFn.call(thisArg, key, key, $__2);
2476 });
2477 },
2478 values: $traceurRuntime.initGeneratorFunction(function $__12() {
2479 var $__13,
2480 $__14;
2481 return $traceurRuntime.createGeneratorInstance(function($ctx) {
2482 while (true)
2483 switch ($ctx.state) {
2484 case 0:
2485 $__13 = $ctx.wrapYieldStar(this.map_.keys()[Symbol.iterator]());
2486 $ctx.sent = void 0;
2487 $ctx.action = 'next';
2488 $ctx.state = 12;
2489 break;
2490 case 12:
2491 $__14 = $__13[$ctx.action]($ctx.sentIgnoreThrow);
2492 $ctx.state = 9;
2493 break;
2494 case 9:
2495 $ctx.state = ($__14.done) ? 3 : 2;
2496 break;
2497 case 3:
2498 $ctx.sent = $__14.value;
2499 $ctx.state = -2;
2500 break;
2501 case 2:
2502 $ctx.state = 12;
2503 return $__14.value;
2504 default:
2505 return $ctx.end();
2506 }
2507 }, $__12, this);
2508 }),
2509 entries: $traceurRuntime.initGeneratorFunction(function $__15() {
2510 var $__16,
2511 $__17;
2512 return $traceurRuntime.createGeneratorInstance(function($ctx) {
2513 while (true)
2514 switch ($ctx.state) {
2515 case 0:
2516 $__16 = $ctx.wrapYieldStar(this.map_.entries()[Symbol.iterator]( ));
2517 $ctx.sent = void 0;
2518 $ctx.action = 'next';
2519 $ctx.state = 12;
2520 break;
2521 case 12:
2522 $__17 = $__16[$ctx.action]($ctx.sentIgnoreThrow);
2523 $ctx.state = 9;
2524 break;
2525 case 9:
2526 $ctx.state = ($__17.done) ? 3 : 2;
2527 break;
2528 case 3:
2529 $ctx.sent = $__17.value;
2530 $ctx.state = -2;
2531 break;
2532 case 2:
2533 $ctx.state = 12;
2534 return $__17.value;
2535 default:
2536 return $ctx.end();
2537 }
2538 }, $__15, this);
2539 })
2540 }, {});
2541 }();
2542 Object.defineProperty(Set.prototype, Symbol.iterator, {
2543 configurable: true,
2544 writable: true,
2545 value: Set.prototype.values
2546 });
2547 Object.defineProperty(Set.prototype, 'keys', {
2548 configurable: true,
2549 writable: true,
2550 value: Set.prototype.values
2551 });
2552 function needsPolyfill(global) {
2553 var $__11 = global,
2554 Set = $__11.Set,
2555 Symbol = $__11.Symbol;
2556 if (!Set || !hasNativeSymbol() || !Set.prototype[Symbol.iterator] || !Set.pr ototype.values) {
2557 return true;
2558 }
2559 try {
2560 return new Set([1]).size !== 1;
2561 } catch (e) {
2562 return false;
2563 }
2564 }
2565 function polyfillSet(global) {
2566 if (needsPolyfill(global)) {
2567 global.Set = Set;
2568 }
2569 }
2570 registerPolyfill(polyfillSet);
2571 return {
2572 get Set() {
2573 return Set;
2574 },
2575 get polyfillSet() {
2576 return polyfillSet;
2577 }
2578 };
2579 });
2580 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Set.js" + '');
2581 $traceurRuntime.registerModule("traceur-runtime@0.0.108/node_modules/rsvp/lib/rs vp/asap.js", [], function() {
2582 "use strict";
2583 var __moduleName = "traceur-runtime@0.0.108/node_modules/rsvp/lib/rsvp/asap.js ";
2584 var len = 0;
2585 var toString = {}.toString;
2586 var vertxNext;
2587 function asap(callback, arg) {
2588 queue[len] = callback;
2589 queue[len + 1] = arg;
2590 len += 2;
2591 if (len === 2) {
2592 scheduleFlush();
2593 }
2594 }
2595 var $__default = asap;
2596 var browserWindow = (typeof window !== 'undefined') ? window : undefined;
2597 var browserGlobal = browserWindow || {};
2598 var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal. WebKitMutationObserver;
2599 var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
2600 var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScript s !== 'undefined' && typeof MessageChannel !== 'undefined';
2601 function useNextTick() {
2602 var nextTick = process.nextTick;
2603 var version = process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+) $/);
2604 if (Array.isArray(version) && version[1] === '0' && version[2] === '10') {
2605 nextTick = setImmediate;
2606 }
2607 return function() {
2608 nextTick(flush);
2609 };
2610 }
2611 function useVertxTimer() {
2612 return function() {
2613 vertxNext(flush);
2614 };
2615 }
2616 function useMutationObserver() {
2617 var iterations = 0;
2618 var observer = new BrowserMutationObserver(flush);
2619 var node = document.createTextNode('');
2620 observer.observe(node, {characterData: true});
2621 return function() {
2622 node.data = (iterations = ++iterations % 2);
2623 };
2624 }
2625 function useMessageChannel() {
2626 var channel = new MessageChannel();
2627 channel.port1.onmessage = flush;
2628 return function() {
2629 channel.port2.postMessage(0);
2630 };
2631 }
2632 function useSetTimeout() {
2633 return function() {
2634 setTimeout(flush, 1);
2635 };
2636 }
2637 var queue = new Array(1000);
2638 function flush() {
2639 for (var i = 0; i < len; i += 2) {
2640 var callback = queue[i];
2641 var arg = queue[i + 1];
2642 callback(arg);
2643 queue[i] = undefined;
2644 queue[i + 1] = undefined;
2645 }
2646 len = 0;
2647 }
2648 function attemptVertex() {
2649 try {
2650 var r = require;
2651 var vertx = r('vertx');
2652 vertxNext = vertx.runOnLoop || vertx.runOnContext;
2653 return useVertxTimer();
2654 } catch (e) {
2655 return useSetTimeout();
2656 }
2657 }
2658 var scheduleFlush;
2659 if (isNode) {
2660 scheduleFlush = useNextTick();
2661 } else if (BrowserMutationObserver) {
2662 scheduleFlush = useMutationObserver();
2663 } else if (isWorker) {
2664 scheduleFlush = useMessageChannel();
2665 } else if (browserWindow === undefined && typeof require === 'function') {
2666 scheduleFlush = attemptVertex();
2667 } else {
2668 scheduleFlush = useSetTimeout();
2669 }
2670 return {get default() {
2671 return $__default;
2672 }};
2673 });
2674 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Pr omise.js", [], function() {
2675 "use strict";
2676 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js";
2677 var async = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ ../../node_modules/rsvp/lib/rsvp/asap.js", "traceur-runtime@0.0.108/src/runtime/ polyfills/Promise.js")).default;
2678 var $__9 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js")),
2679 isObject = $__9.isObject,
2680 registerPolyfill = $__9.registerPolyfill;
2681 var $__10 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../ private.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js")),
2682 createPrivateSymbol = $__10.createPrivateSymbol,
2683 getPrivate = $__10.getPrivate,
2684 setPrivate = $__10.setPrivate;
2685 var promiseRaw = {};
2686 function isPromise(x) {
2687 return x && typeof x === 'object' && x.status_ !== undefined;
2688 }
2689 function idResolveHandler(x) {
2690 return x;
2691 }
2692 function idRejectHandler(x) {
2693 throw x;
2694 }
2695 function chain(promise) {
2696 var onResolve = arguments[1] !== (void 0) ? arguments[1] : idResolveHandler;
2697 var onReject = arguments[2] !== (void 0) ? arguments[2] : idRejectHandler;
2698 var deferred = getDeferred(promise.constructor);
2699 switch (promise.status_) {
2700 case undefined:
2701 throw TypeError;
2702 case 0:
2703 promise.onResolve_.push(onResolve, deferred);
2704 promise.onReject_.push(onReject, deferred);
2705 break;
2706 case +1:
2707 promiseEnqueue(promise.value_, [onResolve, deferred]);
2708 break;
2709 case -1:
2710 promiseEnqueue(promise.value_, [onReject, deferred]);
2711 break;
2712 }
2713 return deferred.promise;
2714 }
2715 function getDeferred(C) {
2716 if (this === $Promise) {
2717 var promise = promiseInit(new $Promise(promiseRaw));
2718 return {
2719 promise: promise,
2720 resolve: function(x) {
2721 promiseResolve(promise, x);
2722 },
2723 reject: function(r) {
2724 promiseReject(promise, r);
2725 }
2726 };
2727 } else {
2728 var result = {};
2729 result.promise = new C(function(resolve, reject) {
2730 result.resolve = resolve;
2731 result.reject = reject;
2732 });
2733 return result;
2734 }
2735 }
2736 function promiseSet(promise, status, value, onResolve, onReject) {
2737 promise.status_ = status;
2738 promise.value_ = value;
2739 promise.onResolve_ = onResolve;
2740 promise.onReject_ = onReject;
2741 return promise;
2742 }
2743 function promiseInit(promise) {
2744 return promiseSet(promise, 0, undefined, [], []);
2745 }
2746 var Promise = function() {
2747 function Promise(resolver) {
2748 if (resolver === promiseRaw)
2749 return;
2750 if (typeof resolver !== 'function')
2751 throw new TypeError;
2752 var promise = promiseInit(this);
2753 try {
2754 resolver(function(x) {
2755 promiseResolve(promise, x);
2756 }, function(r) {
2757 promiseReject(promise, r);
2758 });
2759 } catch (e) {
2760 promiseReject(promise, e);
2761 }
2762 }
2763 return ($traceurRuntime.createClass)(Promise, {
2764 catch: function(onReject) {
2765 return this.then(undefined, onReject);
2766 },
2767 then: function(onResolve, onReject) {
2768 if (typeof onResolve !== 'function')
2769 onResolve = idResolveHandler;
2770 if (typeof onReject !== 'function')
2771 onReject = idRejectHandler;
2772 var that = this;
2773 var constructor = this.constructor;
2774 return chain(this, function(x) {
2775 x = promiseCoerce(constructor, x);
2776 return x === that ? onReject(new TypeError) : isPromise(x) ? x.then(on Resolve, onReject) : onResolve(x);
2777 }, onReject);
2778 }
2779 }, {
2780 resolve: function(x) {
2781 if (this === $Promise) {
2782 if (isPromise(x)) {
2783 return x;
2784 }
2785 return promiseSet(new $Promise(promiseRaw), +1, x);
2786 } else {
2787 return new this(function(resolve, reject) {
2788 resolve(x);
2789 });
2790 }
2791 },
2792 reject: function(r) {
2793 if (this === $Promise) {
2794 return promiseSet(new $Promise(promiseRaw), -1, r);
2795 } else {
2796 return new this(function(resolve, reject) {
2797 reject(r);
2798 });
2799 }
2800 },
2801 all: function(values) {
2802 var deferred = getDeferred(this);
2803 var resolutions = [];
2804 try {
2805 var makeCountdownFunction = function(i) {
2806 return function(x) {
2807 resolutions[i] = x;
2808 if (--count === 0)
2809 deferred.resolve(resolutions);
2810 };
2811 };
2812 var count = 0;
2813 var i = 0;
2814 var $__4 = true;
2815 var $__5 = false;
2816 var $__6 = undefined;
2817 try {
2818 for (var $__2 = void 0,
2819 $__1 = (values)[Symbol.iterator](); !($__4 = ($__2 = $__1.next() ).done); $__4 = true) {
2820 var value = $__2.value;
2821 {
2822 var countdownFunction = makeCountdownFunction(i);
2823 this.resolve(value).then(countdownFunction, function(r) {
2824 deferred.reject(r);
2825 });
2826 ++i;
2827 ++count;
2828 }
2829 }
2830 } catch ($__7) {
2831 $__5 = true;
2832 $__6 = $__7;
2833 } finally {
2834 try {
2835 if (!$__4 && $__1.return != null) {
2836 $__1.return();
2837 }
2838 } finally {
2839 if ($__5) {
2840 throw $__6;
2841 }
2842 }
2843 }
2844 if (count === 0) {
2845 deferred.resolve(resolutions);
2846 }
2847 } catch (e) {
2848 deferred.reject(e);
2849 }
2850 return deferred.promise;
2851 },
2852 race: function(values) {
2853 var deferred = getDeferred(this);
2854 try {
2855 for (var i = 0; i < values.length; i++) {
2856 this.resolve(values[i]).then(function(x) {
2857 deferred.resolve(x);
2858 }, function(r) {
2859 deferred.reject(r);
2860 });
2861 }
2862 } catch (e) {
2863 deferred.reject(e);
2864 }
2865 return deferred.promise;
2866 }
2867 });
2868 }();
2869 var $Promise = Promise;
2870 var $PromiseReject = $Promise.reject;
2871 function promiseResolve(promise, x) {
2872 promiseDone(promise, +1, x, promise.onResolve_);
2873 }
2874 function promiseReject(promise, r) {
2875 promiseDone(promise, -1, r, promise.onReject_);
2876 }
2877 function promiseDone(promise, status, value, reactions) {
2878 if (promise.status_ !== 0)
2879 return;
2880 promiseEnqueue(value, reactions);
2881 promiseSet(promise, status, value);
2882 }
2883 function promiseEnqueue(value, tasks) {
2884 async(function() {
2885 for (var i = 0; i < tasks.length; i += 2) {
2886 promiseHandle(value, tasks[i], tasks[i + 1]);
2887 }
2888 });
2889 }
2890 function promiseHandle(value, handler, deferred) {
2891 try {
2892 var result = handler(value);
2893 if (result === deferred.promise)
2894 throw new TypeError;
2895 else if (isPromise(result))
2896 chain(result, deferred.resolve, deferred.reject);
2897 else
2898 deferred.resolve(result);
2899 } catch (e) {
2900 try {
2901 deferred.reject(e);
2902 } catch (e) {}
2903 }
2904 }
2905 var thenableSymbol = createPrivateSymbol();
2906 function promiseCoerce(constructor, x) {
2907 if (!isPromise(x) && isObject(x)) {
2908 var then;
2909 try {
2910 then = x.then;
2911 } catch (r) {
2912 var promise = $PromiseReject.call(constructor, r);
2913 setPrivate(x, thenableSymbol, promise);
2914 return promise;
2915 }
2916 if (typeof then === 'function') {
2917 var p = getPrivate(x, thenableSymbol);
2918 if (p) {
2919 return p;
2920 } else {
2921 var deferred = getDeferred(constructor);
2922 setPrivate(x, thenableSymbol, deferred.promise);
2923 try {
2924 then.call(x, deferred.resolve, deferred.reject);
2925 } catch (r) {
2926 deferred.reject(r);
2927 }
2928 return deferred.promise;
2929 }
2930 }
2931 }
2932 return x;
2933 }
2934 function polyfillPromise(global) {
2935 if (!global.Promise)
2936 global.Promise = Promise;
2937 }
2938 registerPolyfill(polyfillPromise);
2939 return {
2940 get Promise() {
2941 return Promise;
2942 },
2943 get polyfillPromise() {
2944 return polyfillPromise;
2945 }
2946 };
2947 });
2948 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Promise .js" + '');
2949 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/St ringIterator.js", [], function() {
2950 "use strict";
2951 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/StringIterat or.js";
2952 var $__3 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/StringIterator.js")),
2953 createIteratorResultObject = $__3.createIteratorResultObject,
2954 isObject = $__3.isObject;
2955 var hasOwnProperty = Object.prototype.hasOwnProperty;
2956 var iteratedString = Symbol('iteratedString');
2957 var stringIteratorNextIndex = Symbol('stringIteratorNextIndex');
2958 var StringIterator = function() {
2959 var $__1;
2960 function StringIterator() {}
2961 return ($traceurRuntime.createClass)(StringIterator, ($__1 = {}, Object.defi neProperty($__1, "next", {
2962 value: function() {
2963 var o = this;
2964 if (!isObject(o) || !hasOwnProperty.call(o, iteratedString)) {
2965 throw new TypeError('this must be a StringIterator object');
2966 }
2967 var s = o[iteratedString];
2968 if (s === undefined) {
2969 return createIteratorResultObject(undefined, true);
2970 }
2971 var position = o[stringIteratorNextIndex];
2972 var len = s.length;
2973 if (position >= len) {
2974 o[iteratedString] = undefined;
2975 return createIteratorResultObject(undefined, true);
2976 }
2977 var first = s.charCodeAt(position);
2978 var resultString;
2979 if (first < 0xD800 || first > 0xDBFF || position + 1 === len) {
2980 resultString = String.fromCharCode(first);
2981 } else {
2982 var second = s.charCodeAt(position + 1);
2983 if (second < 0xDC00 || second > 0xDFFF) {
2984 resultString = String.fromCharCode(first);
2985 } else {
2986 resultString = String.fromCharCode(first) + String.fromCharCode(seco nd);
2987 }
2988 }
2989 o[stringIteratorNextIndex] = position + resultString.length;
2990 return createIteratorResultObject(resultString, false);
2991 },
2992 configurable: true,
2993 enumerable: true,
2994 writable: true
2995 }), Object.defineProperty($__1, Symbol.iterator, {
2996 value: function() {
2997 return this;
2998 },
2999 configurable: true,
3000 enumerable: true,
3001 writable: true
3002 }), $__1), {});
3003 }();
3004 function createStringIterator(string) {
3005 var s = String(string);
3006 var iterator = Object.create(StringIterator.prototype);
3007 iterator[iteratedString] = s;
3008 iterator[stringIteratorNextIndex] = 0;
3009 return iterator;
3010 }
3011 return {get createStringIterator() {
3012 return createStringIterator;
3013 }};
3014 });
3015 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/St ring.js", [], function() {
3016 "use strict";
3017 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/String.js";
3018 var checkObjectCoercible = $traceurRuntime.getModule($traceurRuntime.normalize ModuleName("../checkObjectCoercible.js", "traceur-runtime@0.0.108/src/runtime/po lyfills/String.js")).default;
3019 var createStringIterator = $traceurRuntime.getModule($traceurRuntime.normalize ModuleName("./StringIterator.js", "traceur-runtime@0.0.108/src/runtime/polyfills /String.js")).createStringIterator;
3020 var $__3 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/String.js")),
3021 maybeAddFunctions = $__3.maybeAddFunctions,
3022 maybeAddIterator = $__3.maybeAddIterator,
3023 registerPolyfill = $__3.registerPolyfill;
3024 var $toString = Object.prototype.toString;
3025 var $indexOf = String.prototype.indexOf;
3026 var $lastIndexOf = String.prototype.lastIndexOf;
3027 function startsWith(search) {
3028 var string = String(this);
3029 if (this == null || $toString.call(search) == '[object RegExp]') {
3030 throw TypeError();
3031 }
3032 var stringLength = string.length;
3033 var searchString = String(search);
3034 var searchLength = searchString.length;
3035 var position = arguments.length > 1 ? arguments[1] : undefined;
3036 var pos = position ? Number(position) : 0;
3037 if (isNaN(pos)) {
3038 pos = 0;
3039 }
3040 var start = Math.min(Math.max(pos, 0), stringLength);
3041 return $indexOf.call(string, searchString, pos) == start;
3042 }
3043 function endsWith(search) {
3044 var string = String(this);
3045 if (this == null || $toString.call(search) == '[object RegExp]') {
3046 throw TypeError();
3047 }
3048 var stringLength = string.length;
3049 var searchString = String(search);
3050 var searchLength = searchString.length;
3051 var pos = stringLength;
3052 if (arguments.length > 1) {
3053 var position = arguments[1];
3054 if (position !== undefined) {
3055 pos = position ? Number(position) : 0;
3056 if (isNaN(pos)) {
3057 pos = 0;
3058 }
3059 }
3060 }
3061 var end = Math.min(Math.max(pos, 0), stringLength);
3062 var start = end - searchLength;
3063 if (start < 0) {
3064 return false;
3065 }
3066 return $lastIndexOf.call(string, searchString, start) == start;
3067 }
3068 function includes(search) {
3069 if (this == null) {
3070 throw TypeError();
3071 }
3072 var string = String(this);
3073 if (search && $toString.call(search) == '[object RegExp]') {
3074 throw TypeError();
3075 }
3076 var stringLength = string.length;
3077 var searchString = String(search);
3078 var searchLength = searchString.length;
3079 var position = arguments.length > 1 ? arguments[1] : undefined;
3080 var pos = position ? Number(position) : 0;
3081 if (pos != pos) {
3082 pos = 0;
3083 }
3084 var start = Math.min(Math.max(pos, 0), stringLength);
3085 if (searchLength + start > stringLength) {
3086 return false;
3087 }
3088 return $indexOf.call(string, searchString, pos) != -1;
3089 }
3090 function repeat(count) {
3091 if (this == null) {
3092 throw TypeError();
3093 }
3094 var string = String(this);
3095 var n = count ? Number(count) : 0;
3096 if (isNaN(n)) {
3097 n = 0;
3098 }
3099 if (n < 0 || n == Infinity) {
3100 throw RangeError();
3101 }
3102 if (n == 0) {
3103 return '';
3104 }
3105 var result = '';
3106 while (n--) {
3107 result += string;
3108 }
3109 return result;
3110 }
3111 function codePointAt(position) {
3112 if (this == null) {
3113 throw TypeError();
3114 }
3115 var string = String(this);
3116 var size = string.length;
3117 var index = position ? Number(position) : 0;
3118 if (isNaN(index)) {
3119 index = 0;
3120 }
3121 if (index < 0 || index >= size) {
3122 return undefined;
3123 }
3124 var first = string.charCodeAt(index);
3125 var second;
3126 if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {
3127 second = string.charCodeAt(index + 1);
3128 if (second >= 0xDC00 && second <= 0xDFFF) {
3129 return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
3130 }
3131 }
3132 return first;
3133 }
3134 function raw(callsite) {
3135 var raw = callsite.raw;
3136 var len = raw.length >>> 0;
3137 if (len === 0)
3138 return '';
3139 var s = '';
3140 var i = 0;
3141 while (true) {
3142 s += raw[i];
3143 if (i + 1 === len)
3144 return s;
3145 s += arguments[++i];
3146 }
3147 }
3148 function fromCodePoint(_) {
3149 var codeUnits = [];
3150 var floor = Math.floor;
3151 var highSurrogate;
3152 var lowSurrogate;
3153 var index = -1;
3154 var length = arguments.length;
3155 if (!length) {
3156 return '';
3157 }
3158 while (++index < length) {
3159 var codePoint = Number(arguments[index]);
3160 if (!isFinite(codePoint) || codePoint < 0 || codePoint > 0x10FFFF || floor (codePoint) != codePoint) {
3161 throw RangeError('Invalid code point: ' + codePoint);
3162 }
3163 if (codePoint <= 0xFFFF) {
3164 codeUnits.push(codePoint);
3165 } else {
3166 codePoint -= 0x10000;
3167 highSurrogate = (codePoint >> 10) + 0xD800;
3168 lowSurrogate = (codePoint % 0x400) + 0xDC00;
3169 codeUnits.push(highSurrogate, lowSurrogate);
3170 }
3171 }
3172 return String.fromCharCode.apply(null, codeUnits);
3173 }
3174 function stringPrototypeIterator() {
3175 var o = checkObjectCoercible(this);
3176 var s = String(o);
3177 return createStringIterator(s);
3178 }
3179 function polyfillString(global) {
3180 var String = global.String;
3181 maybeAddFunctions(String.prototype, ['codePointAt', codePointAt, 'endsWith', endsWith, 'includes', includes, 'repeat', repeat, 'startsWith', startsWith]);
3182 maybeAddFunctions(String, ['fromCodePoint', fromCodePoint, 'raw', raw]);
3183 maybeAddIterator(String.prototype, stringPrototypeIterator, Symbol);
3184 }
3185 registerPolyfill(polyfillString);
3186 return {
3187 get startsWith() {
3188 return startsWith;
3189 },
3190 get endsWith() {
3191 return endsWith;
3192 },
3193 get includes() {
3194 return includes;
3195 },
3196 get repeat() {
3197 return repeat;
3198 },
3199 get codePointAt() {
3200 return codePointAt;
3201 },
3202 get raw() {
3203 return raw;
3204 },
3205 get fromCodePoint() {
3206 return fromCodePoint;
3207 },
3208 get stringPrototypeIterator() {
3209 return stringPrototypeIterator;
3210 },
3211 get polyfillString() {
3212 return polyfillString;
3213 }
3214 };
3215 });
3216 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/String. js" + '');
3217 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Ar rayIterator.js", [], function() {
3218 "use strict";
3219 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/ArrayIterato r.js";
3220 var $__2 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/ArrayIterator.js")),
3221 toObject = $__2.toObject,
3222 toUint32 = $__2.toUint32,
3223 createIteratorResultObject = $__2.createIteratorResultObject;
3224 var ARRAY_ITERATOR_KIND_KEYS = 1;
3225 var ARRAY_ITERATOR_KIND_VALUES = 2;
3226 var ARRAY_ITERATOR_KIND_ENTRIES = 3;
3227 var ArrayIterator = function() {
3228 var $__1;
3229 function ArrayIterator() {}
3230 return ($traceurRuntime.createClass)(ArrayIterator, ($__1 = {}, Object.defin eProperty($__1, "next", {
3231 value: function() {
3232 var iterator = toObject(this);
3233 var array = iterator.iteratorObject_;
3234 if (!array) {
3235 throw new TypeError('Object is not an ArrayIterator');
3236 }
3237 var index = iterator.arrayIteratorNextIndex_;
3238 var itemKind = iterator.arrayIterationKind_;
3239 var length = toUint32(array.length);
3240 if (index >= length) {
3241 iterator.arrayIteratorNextIndex_ = Infinity;
3242 return createIteratorResultObject(undefined, true);
3243 }
3244 iterator.arrayIteratorNextIndex_ = index + 1;
3245 if (itemKind == ARRAY_ITERATOR_KIND_VALUES)
3246 return createIteratorResultObject(array[index], false);
3247 if (itemKind == ARRAY_ITERATOR_KIND_ENTRIES)
3248 return createIteratorResultObject([index, array[index]], false);
3249 return createIteratorResultObject(index, false);
3250 },
3251 configurable: true,
3252 enumerable: true,
3253 writable: true
3254 }), Object.defineProperty($__1, Symbol.iterator, {
3255 value: function() {
3256 return this;
3257 },
3258 configurable: true,
3259 enumerable: true,
3260 writable: true
3261 }), $__1), {});
3262 }();
3263 function createArrayIterator(array, kind) {
3264 var object = toObject(array);
3265 var iterator = new ArrayIterator;
3266 iterator.iteratorObject_ = object;
3267 iterator.arrayIteratorNextIndex_ = 0;
3268 iterator.arrayIterationKind_ = kind;
3269 return iterator;
3270 }
3271 function entries() {
3272 return createArrayIterator(this, ARRAY_ITERATOR_KIND_ENTRIES);
3273 }
3274 function keys() {
3275 return createArrayIterator(this, ARRAY_ITERATOR_KIND_KEYS);
3276 }
3277 function values() {
3278 return createArrayIterator(this, ARRAY_ITERATOR_KIND_VALUES);
3279 }
3280 return {
3281 get entries() {
3282 return entries;
3283 },
3284 get keys() {
3285 return keys;
3286 },
3287 get values() {
3288 return values;
3289 }
3290 };
3291 });
3292 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Ar ray.js", [], function() {
3293 "use strict";
3294 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Array.js";
3295 var $__9 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Ar rayIterator.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Array.js")),
3296 entries = $__9.entries,
3297 keys = $__9.keys,
3298 jsValues = $__9.values;
3299 var $__10 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./u tils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Array.js")),
3300 checkIterable = $__10.checkIterable,
3301 isCallable = $__10.isCallable,
3302 isConstructor = $__10.isConstructor,
3303 maybeAddFunctions = $__10.maybeAddFunctions,
3304 maybeAddIterator = $__10.maybeAddIterator,
3305 registerPolyfill = $__10.registerPolyfill,
3306 toInteger = $__10.toInteger,
3307 toLength = $__10.toLength,
3308 toObject = $__10.toObject;
3309 function from(arrLike) {
3310 var mapFn = arguments[1];
3311 var thisArg = arguments[2];
3312 var C = this;
3313 var items = toObject(arrLike);
3314 var mapping = mapFn !== undefined;
3315 var k = 0;
3316 var arr,
3317 len;
3318 if (mapping && !isCallable(mapFn)) {
3319 throw TypeError();
3320 }
3321 if (checkIterable(items)) {
3322 arr = isConstructor(C) ? new C() : [];
3323 var $__3 = true;
3324 var $__4 = false;
3325 var $__5 = undefined;
3326 try {
3327 for (var $__1 = void 0,
3328 $__0 = (items)[Symbol.iterator](); !($__3 = ($__1 = $__0.next()).don e); $__3 = true) {
3329 var item = $__1.value;
3330 {
3331 if (mapping) {
3332 arr[k] = mapFn.call(thisArg, item, k);
3333 } else {
3334 arr[k] = item;
3335 }
3336 k++;
3337 }
3338 }
3339 } catch ($__6) {
3340 $__4 = true;
3341 $__5 = $__6;
3342 } finally {
3343 try {
3344 if (!$__3 && $__0.return != null) {
3345 $__0.return();
3346 }
3347 } finally {
3348 if ($__4) {
3349 throw $__5;
3350 }
3351 }
3352 }
3353 arr.length = k;
3354 return arr;
3355 }
3356 len = toLength(items.length);
3357 arr = isConstructor(C) ? new C(len) : new Array(len);
3358 for (; k < len; k++) {
3359 if (mapping) {
3360 arr[k] = typeof thisArg === 'undefined' ? mapFn(items[k], k) : mapFn.cal l(thisArg, items[k], k);
3361 } else {
3362 arr[k] = items[k];
3363 }
3364 }
3365 arr.length = len;
3366 return arr;
3367 }
3368 function of() {
3369 for (var items = [],
3370 $__7 = 0; $__7 < arguments.length; $__7++)
3371 items[$__7] = arguments[$__7];
3372 var C = this;
3373 var len = items.length;
3374 var arr = isConstructor(C) ? new C(len) : new Array(len);
3375 for (var k = 0; k < len; k++) {
3376 arr[k] = items[k];
3377 }
3378 arr.length = len;
3379 return arr;
3380 }
3381 function fill(value) {
3382 var start = arguments[1] !== (void 0) ? arguments[1] : 0;
3383 var end = arguments[2];
3384 var object = toObject(this);
3385 var len = toLength(object.length);
3386 var fillStart = toInteger(start);
3387 var fillEnd = end !== undefined ? toInteger(end) : len;
3388 fillStart = fillStart < 0 ? Math.max(len + fillStart, 0) : Math.min(fillStar t, len);
3389 fillEnd = fillEnd < 0 ? Math.max(len + fillEnd, 0) : Math.min(fillEnd, len);
3390 while (fillStart < fillEnd) {
3391 object[fillStart] = value;
3392 fillStart++;
3393 }
3394 return object;
3395 }
3396 function find(predicate) {
3397 var thisArg = arguments[1];
3398 return findHelper(this, predicate, thisArg);
3399 }
3400 function findIndex(predicate) {
3401 var thisArg = arguments[1];
3402 return findHelper(this, predicate, thisArg, true);
3403 }
3404 function findHelper(self, predicate) {
3405 var thisArg = arguments[2];
3406 var returnIndex = arguments[3] !== (void 0) ? arguments[3] : false;
3407 var object = toObject(self);
3408 var len = toLength(object.length);
3409 if (!isCallable(predicate)) {
3410 throw TypeError();
3411 }
3412 for (var i = 0; i < len; i++) {
3413 var value = object[i];
3414 if (predicate.call(thisArg, value, i, object)) {
3415 return returnIndex ? i : value;
3416 }
3417 }
3418 return returnIndex ? -1 : undefined;
3419 }
3420 function polyfillArray(global) {
3421 var $__8 = global,
3422 Array = $__8.Array,
3423 Object = $__8.Object,
3424 Symbol = $__8.Symbol;
3425 var values = jsValues;
3426 if (Symbol && Symbol.iterator && Array.prototype[Symbol.iterator]) {
3427 values = Array.prototype[Symbol.iterator];
3428 }
3429 maybeAddFunctions(Array.prototype, ['entries', entries, 'keys', keys, 'value s', values, 'fill', fill, 'find', find, 'findIndex', findIndex]);
3430 maybeAddFunctions(Array, ['from', from, 'of', of]);
3431 maybeAddIterator(Array.prototype, values, Symbol);
3432 maybeAddIterator(Object.getPrototypeOf([].values()), function() {
3433 return this;
3434 }, Symbol);
3435 }
3436 registerPolyfill(polyfillArray);
3437 return {
3438 get from() {
3439 return from;
3440 },
3441 get of() {
3442 return of;
3443 },
3444 get fill() {
3445 return fill;
3446 },
3447 get find() {
3448 return find;
3449 },
3450 get findIndex() {
3451 return findIndex;
3452 },
3453 get polyfillArray() {
3454 return polyfillArray;
3455 }
3456 };
3457 });
3458 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Array.j s" + '');
3459 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/as sign.js", [], function() {
3460 "use strict";
3461 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/assign.js";
3462 var keys = Object.keys;
3463 function assign(target) {
3464 for (var i = 1; i < arguments.length; i++) {
3465 var source = arguments[i];
3466 var props = source == null ? [] : keys(source);
3467 var p = void 0,
3468 length = props.length;
3469 for (p = 0; p < length; p++) {
3470 var name = props[p];
3471 target[name] = source[name];
3472 }
3473 }
3474 return target;
3475 }
3476 var $__default = assign;
3477 return {get default() {
3478 return $__default;
3479 }};
3480 });
3481 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Ob ject.js", [], function() {
3482 "use strict";
3483 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Object.js";
3484 var $__2 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Object.js")),
3485 maybeAddFunctions = $__2.maybeAddFunctions,
3486 registerPolyfill = $__2.registerPolyfill;
3487 var assign = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ assign.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Object.js")).default;
3488 var $__0 = Object,
3489 defineProperty = $__0.defineProperty,
3490 getOwnPropertyDescriptor = $__0.getOwnPropertyDescriptor,
3491 getOwnPropertyNames = $__0.getOwnPropertyNames;
3492 function is(left, right) {
3493 if (left === right)
3494 return left !== 0 || 1 / left === 1 / right;
3495 return left !== left && right !== right;
3496 }
3497 function mixin(target, source) {
3498 var props = getOwnPropertyNames(source);
3499 var p,
3500 descriptor,
3501 length = props.length;
3502 for (p = 0; p < length; p++) {
3503 var name = props[p];
3504 descriptor = getOwnPropertyDescriptor(source, props[p]);
3505 defineProperty(target, props[p], descriptor);
3506 }
3507 return target;
3508 }
3509 function polyfillObject(global) {
3510 var Object = global.Object;
3511 maybeAddFunctions(Object, ['assign', assign, 'is', is, 'mixin', mixin]);
3512 }
3513 registerPolyfill(polyfillObject);
3514 return {
3515 get assign() {
3516 return assign;
3517 },
3518 get is() {
3519 return is;
3520 },
3521 get mixin() {
3522 return mixin;
3523 },
3524 get polyfillObject() {
3525 return polyfillObject;
3526 }
3527 };
3528 });
3529 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Object. js" + '');
3530 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Nu mber.js", [], function() {
3531 "use strict";
3532 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Number.js";
3533 var $__1 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Number.js")),
3534 isNumber = $__1.isNumber,
3535 maybeAddConsts = $__1.maybeAddConsts,
3536 maybeAddFunctions = $__1.maybeAddFunctions,
3537 registerPolyfill = $__1.registerPolyfill,
3538 toInteger = $__1.toInteger;
3539 var $abs = Math.abs;
3540 var $isFinite = isFinite;
3541 var $isNaN = isNaN;
3542 var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
3543 var MIN_SAFE_INTEGER = -Math.pow(2, 53) + 1;
3544 var EPSILON = Math.pow(2, -52);
3545 function NumberIsFinite(number) {
3546 return isNumber(number) && $isFinite(number);
3547 }
3548 function isInteger(number) {
3549 return NumberIsFinite(number) && toInteger(number) === number;
3550 }
3551 function NumberIsNaN(number) {
3552 return isNumber(number) && $isNaN(number);
3553 }
3554 function isSafeInteger(number) {
3555 if (NumberIsFinite(number)) {
3556 var integral = toInteger(number);
3557 if (integral === number)
3558 return $abs(integral) <= MAX_SAFE_INTEGER;
3559 }
3560 return false;
3561 }
3562 function polyfillNumber(global) {
3563 var Number = global.Number;
3564 maybeAddConsts(Number, ['MAX_SAFE_INTEGER', MAX_SAFE_INTEGER, 'MIN_SAFE_INTE GER', MIN_SAFE_INTEGER, 'EPSILON', EPSILON]);
3565 maybeAddFunctions(Number, ['isFinite', NumberIsFinite, 'isInteger', isIntege r, 'isNaN', NumberIsNaN, 'isSafeInteger', isSafeInteger]);
3566 }
3567 registerPolyfill(polyfillNumber);
3568 return {
3569 get MAX_SAFE_INTEGER() {
3570 return MAX_SAFE_INTEGER;
3571 },
3572 get MIN_SAFE_INTEGER() {
3573 return MIN_SAFE_INTEGER;
3574 },
3575 get EPSILON() {
3576 return EPSILON;
3577 },
3578 get isFinite() {
3579 return NumberIsFinite;
3580 },
3581 get isInteger() {
3582 return isInteger;
3583 },
3584 get isNaN() {
3585 return NumberIsNaN;
3586 },
3587 get isSafeInteger() {
3588 return isSafeInteger;
3589 },
3590 get polyfillNumber() {
3591 return polyfillNumber;
3592 }
3593 };
3594 });
3595 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Number. js" + '');
3596 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/fr ound.js", [], function() {
3597 "use strict";
3598 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/fround.js";
3599 var $isFinite = isFinite;
3600 var $isNaN = isNaN;
3601 var $__0 = Math,
3602 LN2 = $__0.LN2,
3603 abs = $__0.abs,
3604 floor = $__0.floor,
3605 log = $__0.log,
3606 min = $__0.min,
3607 pow = $__0.pow;
3608 function packIEEE754(v, ebits, fbits) {
3609 var bias = (1 << (ebits - 1)) - 1,
3610 s,
3611 e,
3612 f,
3613 ln,
3614 i,
3615 bits,
3616 str,
3617 bytes;
3618 function roundToEven(n) {
3619 var w = floor(n),
3620 f = n - w;
3621 if (f < 0.5)
3622 return w;
3623 if (f > 0.5)
3624 return w + 1;
3625 return w % 2 ? w + 1 : w;
3626 }
3627 if (v !== v) {
3628 e = (1 << ebits) - 1;
3629 f = pow(2, fbits - 1);
3630 s = 0;
3631 } else if (v === Infinity || v === -Infinity) {
3632 e = (1 << ebits) - 1;
3633 f = 0;
3634 s = (v < 0) ? 1 : 0;
3635 } else if (v === 0) {
3636 e = 0;
3637 f = 0;
3638 s = (1 / v === -Infinity) ? 1 : 0;
3639 } else {
3640 s = v < 0;
3641 v = abs(v);
3642 if (v >= pow(2, 1 - bias)) {
3643 e = min(floor(log(v) / LN2), 1023);
3644 f = roundToEven(v / pow(2, e) * pow(2, fbits));
3645 if (f / pow(2, fbits) >= 2) {
3646 e = e + 1;
3647 f = 1;
3648 }
3649 if (e > bias) {
3650 e = (1 << ebits) - 1;
3651 f = 0;
3652 } else {
3653 e = e + bias;
3654 f = f - pow(2, fbits);
3655 }
3656 } else {
3657 e = 0;
3658 f = roundToEven(v / pow(2, 1 - bias - fbits));
3659 }
3660 }
3661 bits = [];
3662 for (i = fbits; i; i -= 1) {
3663 bits.push(f % 2 ? 1 : 0);
3664 f = floor(f / 2);
3665 }
3666 for (i = ebits; i; i -= 1) {
3667 bits.push(e % 2 ? 1 : 0);
3668 e = floor(e / 2);
3669 }
3670 bits.push(s ? 1 : 0);
3671 bits.reverse();
3672 str = bits.join('');
3673 bytes = [];
3674 while (str.length) {
3675 bytes.push(parseInt(str.substring(0, 8), 2));
3676 str = str.substring(8);
3677 }
3678 return bytes;
3679 }
3680 function unpackIEEE754(bytes, ebits, fbits) {
3681 var bits = [],
3682 i,
3683 j,
3684 b,
3685 str,
3686 bias,
3687 s,
3688 e,
3689 f;
3690 for (i = bytes.length; i; i -= 1) {
3691 b = bytes[i - 1];
3692 for (j = 8; j; j -= 1) {
3693 bits.push(b % 2 ? 1 : 0);
3694 b = b >> 1;
3695 }
3696 }
3697 bits.reverse();
3698 str = bits.join('');
3699 bias = (1 << (ebits - 1)) - 1;
3700 s = parseInt(str.substring(0, 1), 2) ? -1 : 1;
3701 e = parseInt(str.substring(1, 1 + ebits), 2);
3702 f = parseInt(str.substring(1 + ebits), 2);
3703 if (e === (1 << ebits) - 1) {
3704 return f !== 0 ? NaN : s * Infinity;
3705 } else if (e > 0) {
3706 return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
3707 } else if (f !== 0) {
3708 return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
3709 } else {
3710 return s < 0 ? -0 : 0;
3711 }
3712 }
3713 function unpackF32(b) {
3714 return unpackIEEE754(b, 8, 23);
3715 }
3716 function packF32(v) {
3717 return packIEEE754(v, 8, 23);
3718 }
3719 function fround(x) {
3720 if (x === 0 || !$isFinite(x) || $isNaN(x)) {
3721 return x;
3722 }
3723 return unpackF32(packF32(Number(x)));
3724 }
3725 return {get fround() {
3726 return fround;
3727 }};
3728 });
3729 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Ma th.js", [], function() {
3730 "use strict";
3731 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Math.js";
3732 var jsFround = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName(" ./fround.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Math.js")).fround;
3733 var $__3 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Math.js")),
3734 maybeAddFunctions = $__3.maybeAddFunctions,
3735 registerPolyfill = $__3.registerPolyfill,
3736 toUint32 = $__3.toUint32;
3737 var $isFinite = isFinite;
3738 var $isNaN = isNaN;
3739 var $__0 = Math,
3740 abs = $__0.abs,
3741 ceil = $__0.ceil,
3742 exp = $__0.exp,
3743 floor = $__0.floor,
3744 log = $__0.log,
3745 pow = $__0.pow,
3746 sqrt = $__0.sqrt;
3747 function clz32(x) {
3748 x = toUint32(+x);
3749 if (x == 0)
3750 return 32;
3751 var result = 0;
3752 if ((x & 0xFFFF0000) === 0) {
3753 x <<= 16;
3754 result += 16;
3755 }
3756 ;
3757 if ((x & 0xFF000000) === 0) {
3758 x <<= 8;
3759 result += 8;
3760 }
3761 ;
3762 if ((x & 0xF0000000) === 0) {
3763 x <<= 4;
3764 result += 4;
3765 }
3766 ;
3767 if ((x & 0xC0000000) === 0) {
3768 x <<= 2;
3769 result += 2;
3770 }
3771 ;
3772 if ((x & 0x80000000) === 0) {
3773 x <<= 1;
3774 result += 1;
3775 }
3776 ;
3777 return result;
3778 }
3779 function imul(x, y) {
3780 x = toUint32(+x);
3781 y = toUint32(+y);
3782 var xh = (x >>> 16) & 0xffff;
3783 var xl = x & 0xffff;
3784 var yh = (y >>> 16) & 0xffff;
3785 var yl = y & 0xffff;
3786 return xl * yl + (((xh * yl + xl * yh) << 16) >>> 0) | 0;
3787 }
3788 function sign(x) {
3789 x = +x;
3790 if (x > 0)
3791 return 1;
3792 if (x < 0)
3793 return -1;
3794 return x;
3795 }
3796 function log10(x) {
3797 return log(x) * 0.434294481903251828;
3798 }
3799 function log2(x) {
3800 return log(x) * 1.442695040888963407;
3801 }
3802 function log1p(x) {
3803 x = +x;
3804 if (x < -1 || $isNaN(x)) {
3805 return NaN;
3806 }
3807 if (x === 0 || x === Infinity) {
3808 return x;
3809 }
3810 if (x === -1) {
3811 return -Infinity;
3812 }
3813 var result = 0;
3814 var n = 50;
3815 if (x < 0 || x > 1) {
3816 return log(1 + x);
3817 }
3818 for (var i = 1; i < n; i++) {
3819 if ((i % 2) === 0) {
3820 result -= pow(x, i) / i;
3821 } else {
3822 result += pow(x, i) / i;
3823 }
3824 }
3825 return result;
3826 }
3827 function expm1(x) {
3828 x = +x;
3829 if (x === -Infinity) {
3830 return -1;
3831 }
3832 if (!$isFinite(x) || x === 0) {
3833 return x;
3834 }
3835 return exp(x) - 1;
3836 }
3837 function cosh(x) {
3838 x = +x;
3839 if (x === 0) {
3840 return 1;
3841 }
3842 if ($isNaN(x)) {
3843 return NaN;
3844 }
3845 if (!$isFinite(x)) {
3846 return Infinity;
3847 }
3848 if (x < 0) {
3849 x = -x;
3850 }
3851 if (x > 21) {
3852 return exp(x) / 2;
3853 }
3854 return (exp(x) + exp(-x)) / 2;
3855 }
3856 function sinh(x) {
3857 x = +x;
3858 if (!$isFinite(x) || x === 0) {
3859 return x;
3860 }
3861 return (exp(x) - exp(-x)) / 2;
3862 }
3863 function tanh(x) {
3864 x = +x;
3865 if (x === 0)
3866 return x;
3867 if (!$isFinite(x))
3868 return sign(x);
3869 var exp1 = exp(x);
3870 var exp2 = exp(-x);
3871 return (exp1 - exp2) / (exp1 + exp2);
3872 }
3873 function acosh(x) {
3874 x = +x;
3875 if (x < 1)
3876 return NaN;
3877 if (!$isFinite(x))
3878 return x;
3879 return log(x + sqrt(x + 1) * sqrt(x - 1));
3880 }
3881 function asinh(x) {
3882 x = +x;
3883 if (x === 0 || !$isFinite(x))
3884 return x;
3885 if (x > 0)
3886 return log(x + sqrt(x * x + 1));
3887 return -log(-x + sqrt(x * x + 1));
3888 }
3889 function atanh(x) {
3890 x = +x;
3891 if (x === -1) {
3892 return -Infinity;
3893 }
3894 if (x === 1) {
3895 return Infinity;
3896 }
3897 if (x === 0) {
3898 return x;
3899 }
3900 if ($isNaN(x) || x < -1 || x > 1) {
3901 return NaN;
3902 }
3903 return 0.5 * log((1 + x) / (1 - x));
3904 }
3905 function hypot(x, y) {
3906 var length = arguments.length;
3907 var args = new Array(length);
3908 var max = 0;
3909 for (var i = 0; i < length; i++) {
3910 var n = arguments[i];
3911 n = +n;
3912 if (n === Infinity || n === -Infinity)
3913 return Infinity;
3914 n = abs(n);
3915 if (n > max)
3916 max = n;
3917 args[i] = n;
3918 }
3919 if (max === 0)
3920 max = 1;
3921 var sum = 0;
3922 var compensation = 0;
3923 for (var i = 0; i < length; i++) {
3924 var n = args[i] / max;
3925 var summand = n * n - compensation;
3926 var preliminary = sum + summand;
3927 compensation = (preliminary - sum) - summand;
3928 sum = preliminary;
3929 }
3930 return sqrt(sum) * max;
3931 }
3932 function trunc(x) {
3933 x = +x;
3934 if (x > 0)
3935 return floor(x);
3936 if (x < 0)
3937 return ceil(x);
3938 return x;
3939 }
3940 var fround,
3941 f32;
3942 if (typeof Float32Array === 'function') {
3943 f32 = new Float32Array(1);
3944 fround = function(x) {
3945 f32[0] = Number(x);
3946 return f32[0];
3947 };
3948 } else {
3949 fround = jsFround;
3950 }
3951 function cbrt(x) {
3952 x = +x;
3953 if (x === 0)
3954 return x;
3955 var negate = x < 0;
3956 if (negate)
3957 x = -x;
3958 var result = pow(x, 1 / 3);
3959 return negate ? -result : result;
3960 }
3961 function polyfillMath(global) {
3962 var Math = global.Math;
3963 maybeAddFunctions(Math, ['acosh', acosh, 'asinh', asinh, 'atanh', atanh, 'cb rt', cbrt, 'clz32', clz32, 'cosh', cosh, 'expm1', expm1, 'fround', fround, 'hypo t', hypot, 'imul', imul, 'log10', log10, 'log1p', log1p, 'log2', log2, 'sign', s ign, 'sinh', sinh, 'tanh', tanh, 'trunc', trunc]);
3964 }
3965 registerPolyfill(polyfillMath);
3966 return {
3967 get clz32() {
3968 return clz32;
3969 },
3970 get imul() {
3971 return imul;
3972 },
3973 get sign() {
3974 return sign;
3975 },
3976 get log10() {
3977 return log10;
3978 },
3979 get log2() {
3980 return log2;
3981 },
3982 get log1p() {
3983 return log1p;
3984 },
3985 get expm1() {
3986 return expm1;
3987 },
3988 get cosh() {
3989 return cosh;
3990 },
3991 get sinh() {
3992 return sinh;
3993 },
3994 get tanh() {
3995 return tanh;
3996 },
3997 get acosh() {
3998 return acosh;
3999 },
4000 get asinh() {
4001 return asinh;
4002 },
4003 get atanh() {
4004 return atanh;
4005 },
4006 get hypot() {
4007 return hypot;
4008 },
4009 get trunc() {
4010 return trunc;
4011 },
4012 get fround() {
4013 return fround;
4014 },
4015 get cbrt() {
4016 return cbrt;
4017 },
4018 get polyfillMath() {
4019 return polyfillMath;
4020 }
4021 };
4022 });
4023 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Math.js " + '');
4024 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/We akMap.js", [], function() {
4025 "use strict";
4026 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js";
4027 var $__5 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../p rivate.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")),
4028 createPrivateSymbol = $__5.createPrivateSymbol,
4029 deletePrivate = $__5.deletePrivate,
4030 getPrivate = $__5.getPrivate,
4031 hasPrivate = $__5.hasPrivate,
4032 setPrivate = $__5.setPrivate;
4033 var $__6 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../f rozen-data.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")),
4034 deleteFrozen = $__6.deleteFrozen,
4035 getFrozen = $__6.getFrozen,
4036 hasFrozen = $__6.hasFrozen,
4037 setFrozen = $__6.setFrozen;
4038 var $__7 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")),
4039 isObject = $__7.isObject,
4040 registerPolyfill = $__7.registerPolyfill;
4041 var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills /WeakMap.js")).default;
4042 var $__2 = Object,
4043 defineProperty = $__2.defineProperty,
4044 getOwnPropertyDescriptor = $__2.getOwnPropertyDescriptor,
4045 isExtensible = $__2.isExtensible;
4046 var $TypeError = TypeError;
4047 var hasOwnProperty = Object.prototype.hasOwnProperty;
4048 var sentinel = {};
4049 var WeakMap = function() {
4050 function WeakMap() {
4051 this.name_ = createPrivateSymbol();
4052 this.frozenData_ = [];
4053 }
4054 return ($traceurRuntime.createClass)(WeakMap, {
4055 set: function(key, value) {
4056 if (!isObject(key))
4057 throw new $TypeError('key must be an object');
4058 if (!isExtensible(key)) {
4059 setFrozen(this.frozenData_, key, value);
4060 } else {
4061 setPrivate(key, this.name_, value);
4062 }
4063 return this;
4064 },
4065 get: function(key) {
4066 if (!isObject(key))
4067 return undefined;
4068 if (!isExtensible(key)) {
4069 return getFrozen(this.frozenData_, key);
4070 }
4071 return getPrivate(key, this.name_);
4072 },
4073 delete: function(key) {
4074 if (!isObject(key))
4075 return false;
4076 if (!isExtensible(key)) {
4077 return deleteFrozen(this.frozenData_, key);
4078 }
4079 return deletePrivate(key, this.name_);
4080 },
4081 has: function(key) {
4082 if (!isObject(key))
4083 return false;
4084 if (!isExtensible(key)) {
4085 return hasFrozen(this.frozenData_, key);
4086 }
4087 return hasPrivate(key, this.name_);
4088 }
4089 }, {});
4090 }();
4091 function needsPolyfill(global) {
4092 var $__4 = global,
4093 WeakMap = $__4.WeakMap,
4094 Symbol = $__4.Symbol;
4095 if (!WeakMap || !hasNativeSymbol()) {
4096 return true;
4097 }
4098 try {
4099 var o = {};
4100 var wm = new WeakMap([[o, false]]);
4101 return wm.get(o);
4102 } catch (e) {
4103 return false;
4104 }
4105 }
4106 function polyfillWeakMap(global) {
4107 if (needsPolyfill(global)) {
4108 global.WeakMap = WeakMap;
4109 }
4110 }
4111 registerPolyfill(polyfillWeakMap);
4112 return {
4113 get WeakMap() {
4114 return WeakMap;
4115 },
4116 get polyfillWeakMap() {
4117 return polyfillWeakMap;
4118 }
4119 };
4120 });
4121 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap .js" + '');
4122 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/We akSet.js", [], function() {
4123 "use strict";
4124 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js";
4125 var $__5 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../p rivate.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")),
4126 createPrivateSymbol = $__5.createPrivateSymbol,
4127 deletePrivate = $__5.deletePrivate,
4128 getPrivate = $__5.getPrivate,
4129 hasPrivate = $__5.hasPrivate,
4130 setPrivate = $__5.setPrivate;
4131 var $__6 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../f rozen-data.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")),
4132 deleteFrozen = $__6.deleteFrozen,
4133 getFrozen = $__6.getFrozen,
4134 setFrozen = $__6.setFrozen;
4135 var $__7 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ut ils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")),
4136 isObject = $__7.isObject,
4137 registerPolyfill = $__7.registerPolyfill;
4138 var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModul eName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills /WeakSet.js")).default;
4139 var $__2 = Object,
4140 defineProperty = $__2.defineProperty,
4141 isExtensible = $__2.isExtensible;
4142 var $TypeError = TypeError;
4143 var hasOwnProperty = Object.prototype.hasOwnProperty;
4144 var WeakSet = function() {
4145 function WeakSet() {
4146 this.name_ = createPrivateSymbol();
4147 this.frozenData_ = [];
4148 }
4149 return ($traceurRuntime.createClass)(WeakSet, {
4150 add: function(value) {
4151 if (!isObject(value))
4152 throw new $TypeError('value must be an object');
4153 if (!isExtensible(value)) {
4154 setFrozen(this.frozenData_, value, value);
4155 } else {
4156 setPrivate(value, this.name_, true);
4157 }
4158 return this;
4159 },
4160 delete: function(value) {
4161 if (!isObject(value))
4162 return false;
4163 if (!isExtensible(value)) {
4164 return deleteFrozen(this.frozenData_, value);
4165 }
4166 return deletePrivate(value, this.name_);
4167 },
4168 has: function(value) {
4169 if (!isObject(value))
4170 return false;
4171 if (!isExtensible(value)) {
4172 return getFrozen(this.frozenData_, value) === value;
4173 }
4174 return hasPrivate(value, this.name_);
4175 }
4176 }, {});
4177 }();
4178 function needsPolyfill(global) {
4179 var $__4 = global,
4180 WeakSet = $__4.WeakSet,
4181 Symbol = $__4.Symbol;
4182 if (!WeakSet || !hasNativeSymbol()) {
4183 return true;
4184 }
4185 try {
4186 var o = {};
4187 var wm = new WeakSet([[o]]);
4188 return !wm.has(o);
4189 } catch (e) {
4190 return false;
4191 }
4192 }
4193 function polyfillWeakSet(global) {
4194 if (needsPolyfill(global)) {
4195 global.WeakSet = WeakSet;
4196 }
4197 }
4198 registerPolyfill(polyfillWeakSet);
4199 return {
4200 get WeakSet() {
4201 return WeakSet;
4202 },
4203 get polyfillWeakSet() {
4204 return polyfillWeakSet;
4205 }
4206 };
4207 });
4208 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet .js" + '');
4209 $traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/po lyfills.js", [], function() {
4210 "use strict";
4211 var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/polyfills.js ";
4212 var polyfillAll = $traceurRuntime.getModule($traceurRuntime.normalizeModuleNam e("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/polyfills.js")).p olyfillAll;
4213 polyfillAll(Reflect.global);
4214 var setupGlobals = $traceurRuntime.setupGlobals;
4215 $traceurRuntime.setupGlobals = function(global) {
4216 setupGlobals(global);
4217 polyfillAll(global);
4218 };
4219 return {};
4220 });
4221 $traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/polyfil ls.js" + '');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698