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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: test/js-perf-test/SixSpeed/traceur-runtime.js
diff --git a/test/js-perf-test/SixSpeed/traceur-runtime.js b/test/js-perf-test/SixSpeed/traceur-runtime.js
new file mode 100644
index 0000000000000000000000000000000000000000..f288dbc4a759e2b290f0bd96641dbb07aae4d4cc
--- /dev/null
+++ b/test/js-perf-test/SixSpeed/traceur-runtime.js
@@ -0,0 +1,4221 @@
+(function(global) {
+ 'use strict';
+ if (global.$traceurRuntime) {
+ return;
+ }
+ function setupGlobals(global) {
+ global.Reflect = global.Reflect || {};
+ global.Reflect.global = global.Reflect.global || global;
+ }
+ setupGlobals(global);
+ var typeOf = function(x) {
+ return typeof x;
+ };
+ global.$traceurRuntime = {
+ options: {},
+ setupGlobals: setupGlobals,
+ typeof: typeOf
+ };
+})(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this);
+(function() {
+ function buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
+ var out = [];
+ if (opt_scheme) {
+ out.push(opt_scheme, ':');
+ }
+ if (opt_domain) {
+ out.push('//');
+ if (opt_userInfo) {
+ out.push(opt_userInfo, '@');
+ }
+ out.push(opt_domain);
+ if (opt_port) {
+ out.push(':', opt_port);
+ }
+ }
+ if (opt_path) {
+ out.push(opt_path);
+ }
+ if (opt_queryData) {
+ out.push('?', opt_queryData);
+ }
+ if (opt_fragment) {
+ out.push('#', opt_fragment);
+ }
+ return out.join('');
+ }
+ var splitRe = new RegExp('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$');
+ var ComponentIndex = {
+ SCHEME: 1,
+ USER_INFO: 2,
+ DOMAIN: 3,
+ PORT: 4,
+ PATH: 5,
+ QUERY_DATA: 6,
+ FRAGMENT: 7
+ };
+ function split(uri) {
+ return (uri.match(splitRe));
+ }
+ function removeDotSegments(path) {
+ if (path === '/')
+ return '/';
+ var leadingSlash = path[0] === '/' ? '/' : '';
+ var trailingSlash = path.slice(-1) === '/' ? '/' : '';
+ var segments = path.split('/');
+ var out = [];
+ var up = 0;
+ for (var pos = 0; pos < segments.length; pos++) {
+ var segment = segments[pos];
+ switch (segment) {
+ case '':
+ case '.':
+ break;
+ case '..':
+ if (out.length)
+ out.pop();
+ else
+ up++;
+ break;
+ default:
+ out.push(segment);
+ }
+ }
+ if (!leadingSlash) {
+ while (up-- > 0) {
+ out.unshift('..');
+ }
+ if (out.length === 0)
+ out.push('.');
+ }
+ return leadingSlash + out.join('/') + trailingSlash;
+ }
+ function joinAndCanonicalizePath(parts) {
+ var path = parts[ComponentIndex.PATH] || '';
+ path = removeDotSegments(path);
+ parts[ComponentIndex.PATH] = path;
+ return buildFromEncodedParts(parts[ComponentIndex.SCHEME], parts[ComponentIndex.USER_INFO], parts[ComponentIndex.DOMAIN], parts[ComponentIndex.PORT], parts[ComponentIndex.PATH], parts[ComponentIndex.QUERY_DATA], parts[ComponentIndex.FRAGMENT]);
+ }
+ function canonicalizeUrl(url) {
+ var parts = split(url);
+ return joinAndCanonicalizePath(parts);
+ }
+ function resolveUrl(base, url) {
+ var parts = split(url);
+ var baseParts = split(base);
+ if (parts[ComponentIndex.SCHEME]) {
+ return joinAndCanonicalizePath(parts);
+ } else {
+ parts[ComponentIndex.SCHEME] = baseParts[ComponentIndex.SCHEME];
+ }
+ for (var i = ComponentIndex.SCHEME; i <= ComponentIndex.PORT; i++) {
+ if (!parts[i]) {
+ parts[i] = baseParts[i];
+ }
+ }
+ if (parts[ComponentIndex.PATH][0] == '/') {
+ return joinAndCanonicalizePath(parts);
+ }
+ var path = baseParts[ComponentIndex.PATH];
+ var index = path.lastIndexOf('/');
+ path = path.slice(0, index + 1) + parts[ComponentIndex.PATH];
+ parts[ComponentIndex.PATH] = path;
+ return joinAndCanonicalizePath(parts);
+ }
+ function isAbsolute(name) {
+ if (!name)
+ return false;
+ if (name[0] === '/')
+ return true;
+ var parts = split(name);
+ if (parts[ComponentIndex.SCHEME])
+ return true;
+ return false;
+ }
+ $traceurRuntime.canonicalizeUrl = canonicalizeUrl;
+ $traceurRuntime.isAbsolute = isAbsolute;
+ $traceurRuntime.removeDotSegments = removeDotSegments;
+ $traceurRuntime.resolveUrl = resolveUrl;
+})();
+(function(global) {
+ 'use strict';
+ var $__3 = $traceurRuntime,
+ canonicalizeUrl = $__3.canonicalizeUrl,
+ resolveUrl = $__3.resolveUrl,
+ isAbsolute = $__3.isAbsolute;
+ var moduleInstantiators = Object.create(null);
+ var baseURL;
+ if (global.location && global.location.href)
+ baseURL = resolveUrl(global.location.href, './');
+ else
+ baseURL = '';
+ function UncoatedModuleEntry(url, uncoatedModule) {
+ this.url = url;
+ this.value_ = uncoatedModule;
+ }
+ function ModuleEvaluationError(erroneousModuleName, cause) {
+ this.message = this.constructor.name + ': ' + this.stripCause(cause) + ' in ' + erroneousModuleName;
+ if (!(cause instanceof ModuleEvaluationError) && cause.stack)
+ this.stack = this.stripStack(cause.stack);
+ else
+ this.stack = '';
+ }
+ ModuleEvaluationError.prototype = Object.create(Error.prototype);
+ ModuleEvaluationError.prototype.constructor = ModuleEvaluationError;
+ ModuleEvaluationError.prototype.stripError = function(message) {
+ return message.replace(/.*Error:/, this.constructor.name + ':');
+ };
+ ModuleEvaluationError.prototype.stripCause = function(cause) {
+ if (!cause)
+ return '';
+ if (!cause.message)
+ return cause + '';
+ return this.stripError(cause.message);
+ };
+ ModuleEvaluationError.prototype.loadedBy = function(moduleName) {
+ this.stack += '\n loaded by ' + moduleName;
+ };
+ ModuleEvaluationError.prototype.stripStack = function(causeStack) {
+ var stack = [];
+ causeStack.split('\n').some(function(frame) {
+ if (/UncoatedModuleInstantiator/.test(frame))
+ return true;
+ stack.push(frame);
+ });
+ stack[0] = this.stripError(stack[0]);
+ return stack.join('\n');
+ };
+ function beforeLines(lines, number) {
+ var result = [];
+ var first = number - 3;
+ if (first < 0)
+ first = 0;
+ for (var i = first; i < number; i++) {
+ result.push(lines[i]);
+ }
+ return result;
+ }
+ function afterLines(lines, number) {
+ var last = number + 1;
+ if (last > lines.length - 1)
+ last = lines.length - 1;
+ var result = [];
+ for (var i = number; i <= last; i++) {
+ result.push(lines[i]);
+ }
+ return result;
+ }
+ function columnSpacing(columns) {
+ var result = '';
+ for (var i = 0; i < columns - 1; i++) {
+ result += '-';
+ }
+ return result;
+ }
+ function UncoatedModuleInstantiator(url, func) {
+ UncoatedModuleEntry.call(this, url, null);
+ this.func = func;
+ }
+ UncoatedModuleInstantiator.prototype = Object.create(UncoatedModuleEntry.prototype);
+ UncoatedModuleInstantiator.prototype.getUncoatedModule = function() {
+ var $__2 = this;
+ if (this.value_)
+ return this.value_;
+ try {
+ var relativeRequire;
+ if (typeof $traceurRuntime !== undefined && $traceurRuntime.require) {
+ relativeRequire = $traceurRuntime.require.bind(null, this.url);
+ }
+ return this.value_ = this.func.call(global, relativeRequire);
+ } catch (ex) {
+ if (ex instanceof ModuleEvaluationError) {
+ ex.loadedBy(this.url);
+ throw ex;
+ }
+ if (ex.stack) {
+ var lines = this.func.toString().split('\n');
+ var evaled = [];
+ ex.stack.split('\n').some(function(frame, index) {
+ if (frame.indexOf('UncoatedModuleInstantiator.getUncoatedModule') > 0)
+ return true;
+ var m = /(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(frame);
+ if (m) {
+ var line = parseInt(m[2], 10);
+ evaled = evaled.concat(beforeLines(lines, line));
+ if (index === 1) {
+ evaled.push(columnSpacing(m[3]) + '^ ' + $__2.url);
+ } else {
+ evaled.push(columnSpacing(m[3]) + '^');
+ }
+ evaled = evaled.concat(afterLines(lines, line));
+ evaled.push('= = = = = = = = =');
+ } else {
+ evaled.push(frame);
+ }
+ });
+ ex.stack = evaled.join('\n');
+ }
+ throw new ModuleEvaluationError(this.url, ex);
+ }
+ };
+ function getUncoatedModuleInstantiator(name) {
+ if (!name)
+ return;
+ var url = ModuleStore.normalize(name);
+ return moduleInstantiators[url];
+ }
+ ;
+ var moduleInstances = Object.create(null);
+ var liveModuleSentinel = {};
+ function Module(uncoatedModule) {
+ var isLive = arguments[1];
+ var coatedModule = Object.create(null);
+ Object.getOwnPropertyNames(uncoatedModule).forEach(function(name) {
+ var getter,
+ value;
+ if (isLive === liveModuleSentinel) {
+ var descr = Object.getOwnPropertyDescriptor(uncoatedModule, name);
+ if (descr.get)
+ getter = descr.get;
+ }
+ if (!getter) {
+ value = uncoatedModule[name];
+ getter = function() {
+ return value;
+ };
+ }
+ Object.defineProperty(coatedModule, name, {
+ get: getter,
+ enumerable: true
+ });
+ });
+ Object.preventExtensions(coatedModule);
+ return coatedModule;
+ }
+ var ModuleStore = {
+ normalize: function(name, refererName, refererAddress) {
+ if (typeof name !== 'string')
+ throw new TypeError('module name must be a string, not ' + typeof name);
+ if (isAbsolute(name))
+ return canonicalizeUrl(name);
+ if (/[^\.]\/\.\.\//.test(name)) {
+ throw new Error('module name embeds /../: ' + name);
+ }
+ if (name[0] === '.' && refererName)
+ return resolveUrl(refererName, name);
+ return canonicalizeUrl(name);
+ },
+ get: function(normalizedName) {
+ var m = getUncoatedModuleInstantiator(normalizedName);
+ if (!m)
+ return undefined;
+ var moduleInstance = moduleInstances[m.url];
+ if (moduleInstance)
+ return moduleInstance;
+ moduleInstance = Module(m.getUncoatedModule(), liveModuleSentinel);
+ return moduleInstances[m.url] = moduleInstance;
+ },
+ set: function(normalizedName, module) {
+ normalizedName = String(normalizedName);
+ moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, function() {
+ return module;
+ });
+ moduleInstances[normalizedName] = module;
+ },
+ get baseURL() {
+ return baseURL;
+ },
+ set baseURL(v) {
+ baseURL = String(v);
+ },
+ registerModule: function(name, deps, func) {
+ var normalizedName = ModuleStore.normalize(name);
+ if (moduleInstantiators[normalizedName])
+ throw new Error('duplicate module named ' + normalizedName);
+ moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, func);
+ },
+ bundleStore: Object.create(null),
+ register: function(name, deps, func) {
+ if (!deps || !deps.length && !func.length) {
+ this.registerModule(name, deps, func);
+ } else {
+ this.bundleStore[name] = {
+ deps: deps,
+ execute: function() {
+ var $__2 = arguments;
+ var depMap = {};
+ deps.forEach(function(dep, index) {
+ return depMap[dep] = $__2[index];
+ });
+ var registryEntry = func.call(this, depMap);
+ registryEntry.execute.call(this);
+ return registryEntry.exports;
+ }
+ };
+ }
+ },
+ getAnonymousModule: function(func) {
+ return new Module(func.call(global), liveModuleSentinel);
+ }
+ };
+ var moduleStoreModule = new Module({ModuleStore: ModuleStore});
+ ModuleStore.set('@traceur/src/runtime/ModuleStore.js', moduleStoreModule);
+ var setupGlobals = $traceurRuntime.setupGlobals;
+ $traceurRuntime.setupGlobals = function(global) {
+ setupGlobals(global);
+ };
+ $traceurRuntime.ModuleStore = ModuleStore;
+ $traceurRuntime.registerModule = ModuleStore.registerModule.bind(ModuleStore);
+ $traceurRuntime.getModule = ModuleStore.get;
+ $traceurRuntime.setModule = ModuleStore.set;
+ $traceurRuntime.normalizeModuleName = ModuleStore.normalize;
+})(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this);
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/new-unique-string.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/new-unique-string.js";
+ var random = Math.random;
+ var counter = Date.now() % 1e9;
+ function newUniqueString() {
+ return '__$' + (random() * 1e9 >>> 1) + '$' + ++counter + '$__';
+ }
+ var $__default = newUniqueString;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/has-native-symbols.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/has-native-symbols.js";
+ var v = !!Object.getOwnPropertySymbols && typeof Symbol === 'function';
+ function hasNativeSymbol() {
+ return v;
+ }
+ var $__default = hasNativeSymbol;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/symbols.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/symbols.js";
+ var newUniqueString = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../new-unique-string.js", "traceur-runtime@0.0.108/src/runtime/modules/symbols.js")).default;
+ var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/modules/symbols.js")).default;
+ var $create = Object.create;
+ var $defineProperty = Object.defineProperty;
+ var $freeze = Object.freeze;
+ var $getOwnPropertyNames = Object.getOwnPropertyNames;
+ var $keys = Object.keys;
+ var $TypeError = TypeError;
+ function nonEnum(value) {
+ return {
+ configurable: true,
+ enumerable: false,
+ value: value,
+ writable: true
+ };
+ }
+ var symbolInternalProperty = newUniqueString();
+ var symbolDescriptionProperty = newUniqueString();
+ var symbolDataProperty = newUniqueString();
+ var symbolValues = $create(null);
+ var SymbolImpl = function Symbol(description) {
+ var value = new SymbolValue(description);
+ if (!(this instanceof SymbolImpl))
+ return value;
+ throw new $TypeError('Symbol cannot be new\'ed');
+ };
+ $defineProperty(SymbolImpl.prototype, 'constructor', nonEnum(SymbolImpl));
+ $defineProperty(SymbolImpl.prototype, 'toString', nonEnum(function() {
+ var symbolValue = this[symbolDataProperty];
+ return symbolValue[symbolInternalProperty];
+ }));
+ $defineProperty(SymbolImpl.prototype, 'valueOf', nonEnum(function() {
+ var symbolValue = this[symbolDataProperty];
+ if (!symbolValue)
+ throw $TypeError('Conversion from symbol to string');
+ return symbolValue[symbolInternalProperty];
+ }));
+ function SymbolValue(description) {
+ var key = newUniqueString();
+ $defineProperty(this, symbolDataProperty, {value: this});
+ $defineProperty(this, symbolInternalProperty, {value: key});
+ $defineProperty(this, symbolDescriptionProperty, {value: description});
+ $freeze(this);
+ symbolValues[key] = this;
+ }
+ $defineProperty(SymbolValue.prototype, 'constructor', nonEnum(SymbolImpl));
+ $defineProperty(SymbolValue.prototype, 'toString', {
+ value: SymbolImpl.prototype.toString,
+ enumerable: false
+ });
+ $defineProperty(SymbolValue.prototype, 'valueOf', {
+ value: SymbolImpl.prototype.valueOf,
+ enumerable: false
+ });
+ $freeze(SymbolValue.prototype);
+ function isSymbolString(s) {
+ return symbolValues[s];
+ }
+ function removeSymbolKeys(array) {
+ var rv = [];
+ for (var i = 0; i < array.length; i++) {
+ if (!isSymbolString(array[i])) {
+ rv.push(array[i]);
+ }
+ }
+ return rv;
+ }
+ function getOwnPropertyNames(object) {
+ return removeSymbolKeys($getOwnPropertyNames(object));
+ }
+ function keys(object) {
+ return removeSymbolKeys($keys(object));
+ }
+ function getOwnPropertySymbols(object) {
+ var rv = [];
+ var names = $getOwnPropertyNames(object);
+ for (var i = 0; i < names.length; i++) {
+ var symbol = symbolValues[names[i]];
+ if (symbol) {
+ rv.push(symbol);
+ }
+ }
+ return rv;
+ }
+ function polyfillSymbol(global) {
+ var Object = global.Object;
+ if (!hasNativeSymbol()) {
+ global.Symbol = SymbolImpl;
+ Object.getOwnPropertyNames = getOwnPropertyNames;
+ Object.keys = keys;
+ $defineProperty(Object, 'getOwnPropertySymbols', nonEnum(getOwnPropertySymbols));
+ }
+ if (!global.Symbol.iterator) {
+ global.Symbol.iterator = global.Symbol('Symbol.iterator');
+ }
+ if (!global.Symbol.observer) {
+ global.Symbol.observer = global.Symbol('Symbol.observer');
+ }
+ }
+ var g = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this;
+ polyfillSymbol(g);
+ var typeOf = hasNativeSymbol() ? function(x) {
+ return typeof x;
+ } : function(x) {
+ return x instanceof SymbolValue ? 'symbol' : typeof x;
+ };
+ return {get typeof() {
+ return typeOf;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/typeof.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/typeof.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_symbols_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./symbols.js", "traceur-runtime@0.0.108/src/runtime/modules/typeof.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_symbols_46_js__.typeof;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/symbols.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/symbols.js";
+ var t = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/typeof.js", "traceur-runtime@0.0.108/src/runtime/symbols.js")).default;
+ $traceurRuntime.typeof = t;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/createClass.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createClass.js";
+ var $Object = Object;
+ var $TypeError = TypeError;
+ var $__1 = Object,
+ create = $__1.create,
+ defineProperties = $__1.defineProperties,
+ defineProperty = $__1.defineProperty,
+ getOwnPropertyDescriptor = $__1.getOwnPropertyDescriptor,
+ getOwnPropertyNames = $__1.getOwnPropertyNames,
+ getOwnPropertySymbols = $__1.getOwnPropertySymbols;
+ function forEachPropertyKey(object, f) {
+ getOwnPropertyNames(object).forEach(f);
+ if (getOwnPropertySymbols) {
+ getOwnPropertySymbols(object).forEach(f);
+ }
+ }
+ function getDescriptors(object) {
+ var descriptors = {};
+ forEachPropertyKey(object, function(key) {
+ descriptors[key] = getOwnPropertyDescriptor(object, key);
+ descriptors[key].enumerable = false;
+ });
+ return descriptors;
+ }
+ var nonEnum = {enumerable: false};
+ function makePropertiesNonEnumerable(object) {
+ forEachPropertyKey(object, function(key) {
+ defineProperty(object, key, nonEnum);
+ });
+ }
+ function createClass(ctor, object, staticObject, superClass) {
+ defineProperty(object, 'constructor', {
+ value: ctor,
+ configurable: true,
+ enumerable: false,
+ writable: true
+ });
+ if (arguments.length > 3) {
+ if (typeof superClass === 'function')
+ ctor.__proto__ = superClass;
+ ctor.prototype = create(getProtoParent(superClass), getDescriptors(object));
+ } else {
+ makePropertiesNonEnumerable(object);
+ ctor.prototype = object;
+ }
+ defineProperty(ctor, 'prototype', {
+ configurable: false,
+ writable: false
+ });
+ return defineProperties(ctor, getDescriptors(staticObject));
+ }
+ var $__default = createClass;
+ function getProtoParent(superClass) {
+ if (typeof superClass === 'function') {
+ var prototype = superClass.prototype;
+ if ($Object(prototype) === prototype || prototype === null)
+ return superClass.prototype;
+ throw new $TypeError('super prototype must be an Object or null');
+ }
+ if (superClass === null)
+ return null;
+ throw new $TypeError(("Super expression must either be null or a function, not " + typeof superClass + "."));
+ }
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/superConstructor.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superConstructor.js";
+ function superConstructor(ctor) {
+ return ctor.__proto__;
+ }
+ var $__default = superConstructor;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/superDescriptor.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superDescriptor.js";
+ var $__0 = Object,
+ getOwnPropertyDescriptor = $__0.getOwnPropertyDescriptor,
+ getPrototypeOf = $__0.getPrototypeOf;
+ function superDescriptor(homeObject, name) {
+ var proto = getPrototypeOf(homeObject);
+ do {
+ var result = getOwnPropertyDescriptor(proto, name);
+ if (result)
+ return result;
+ proto = getPrototypeOf(proto);
+ } while (proto);
+ return undefined;
+ }
+ var $__default = superDescriptor;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/superGet.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superGet.js";
+ var superDescriptor = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./superDescriptor.js", "traceur-runtime@0.0.108/src/runtime/modules/superGet.js")).default;
+ function superGet(self, homeObject, name) {
+ var descriptor = superDescriptor(homeObject, name);
+ if (descriptor) {
+ var value = descriptor.value;
+ if (value)
+ return value;
+ if (!descriptor.get)
+ return value;
+ return descriptor.get.call(self);
+ }
+ return undefined;
+ }
+ var $__default = superGet;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/superSet.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/superSet.js";
+ var superDescriptor = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./superDescriptor.js", "traceur-runtime@0.0.108/src/runtime/modules/superSet.js")).default;
+ var $TypeError = TypeError;
+ function superSet(self, homeObject, name, value) {
+ var descriptor = superDescriptor(homeObject, name);
+ if (descriptor && descriptor.set) {
+ descriptor.set.call(self, value);
+ return value;
+ }
+ throw $TypeError(("super has no setter '" + name + "'."));
+ }
+ var $__default = superSet;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/classes.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/classes.js";
+ var createClass = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createClass.js", "traceur-runtime@0.0.108/src/runtime/classes.js")).default;
+ var superConstructor = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superConstructor.js", "traceur-runtime@0.0.108/src/runtime/classes.js")).default;
+ var superGet = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superGet.js", "traceur-runtime@0.0.108/src/runtime/classes.js")).default;
+ var superSet = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/superSet.js", "traceur-runtime@0.0.108/src/runtime/classes.js")).default;
+ $traceurRuntime.createClass = createClass;
+ $traceurRuntime.superConstructor = superConstructor;
+ $traceurRuntime.superGet = superGet;
+ $traceurRuntime.superSet = superSet;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/exportStar.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/exportStar.js";
+ var $__1 = Object,
+ defineProperty = $__1.defineProperty,
+ getOwnPropertyNames = $__1.getOwnPropertyNames;
+ function exportStar(object) {
+ var $__2 = arguments,
+ $__3 = function(i) {
+ var mod = $__2[i];
+ var names = getOwnPropertyNames(mod);
+ var $__5 = function(j) {
+ var name = names[j];
+ if (name === '__esModule' || name === 'default') {
+ return 0;
+ }
+ defineProperty(object, name, {
+ get: function() {
+ return mod[name];
+ },
+ enumerable: true
+ });
+ },
+ $__6;
+ $__4: for (var j = 0; j < names.length; j++) {
+ $__6 = $__5(j);
+ switch ($__6) {
+ case 0:
+ continue $__4;
+ }
+ }
+ };
+ for (var i = 1; i < arguments.length; i++) {
+ $__3(i);
+ }
+ return object;
+ }
+ var $__default = exportStar;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/exportStar.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/exportStar.js";
+ var exportStar = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/exportStar.js", "traceur-runtime@0.0.108/src/runtime/exportStar.js")).default;
+ $traceurRuntime.exportStar = exportStar;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/private-symbol.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/private-symbol.js";
+ var newUniqueString = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./new-unique-string.js", "traceur-runtime@0.0.108/src/runtime/private-symbol.js")).default;
+ var $Symbol = typeof Symbol === 'function' ? Symbol : undefined;
+ var $getOwnPropertySymbols = Object.getOwnPropertySymbols;
+ var $create = Object.create;
+ var privateNames = $create(null);
+ function isPrivateSymbol(s) {
+ return privateNames[s];
+ }
+ ;
+ function createPrivateSymbol() {
+ var s = ($Symbol || newUniqueString)();
+ privateNames[s] = true;
+ return s;
+ }
+ ;
+ function hasPrivate(obj, sym) {
+ return hasOwnProperty.call(obj, sym);
+ }
+ ;
+ function deletePrivate(obj, sym) {
+ if (!hasPrivate(obj, sym)) {
+ return false;
+ }
+ delete obj[sym];
+ return true;
+ }
+ ;
+ function setPrivate(obj, sym, val) {
+ obj[sym] = val;
+ }
+ ;
+ function getPrivate(obj, sym) {
+ var val = obj[sym];
+ if (val === undefined)
+ return undefined;
+ return hasOwnProperty.call(obj, sym) ? val : undefined;
+ }
+ ;
+ function init() {
+ if ($getOwnPropertySymbols) {
+ Object.getOwnPropertySymbols = function getOwnPropertySymbols(object) {
+ var rv = [];
+ var symbols = $getOwnPropertySymbols(object);
+ for (var i = 0; i < symbols.length; i++) {
+ var symbol = symbols[i];
+ if (!isPrivateSymbol(symbol)) {
+ rv.push(symbol);
+ }
+ }
+ return rv;
+ };
+ }
+ }
+ return {
+ get isPrivateSymbol() {
+ return isPrivateSymbol;
+ },
+ get createPrivateSymbol() {
+ return createPrivateSymbol;
+ },
+ get hasPrivate() {
+ return hasPrivate;
+ },
+ get deletePrivate() {
+ return deletePrivate;
+ },
+ get setPrivate() {
+ return setPrivate;
+ },
+ get getPrivate() {
+ return getPrivate;
+ },
+ get init() {
+ return init;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/private-weak-map.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/private-weak-map.js";
+ var $WeakMap = typeof WeakMap === 'function' ? WeakMap : undefined;
+ function isPrivateSymbol(s) {
+ return false;
+ }
+ function createPrivateSymbol() {
+ return new $WeakMap();
+ }
+ function hasPrivate(obj, sym) {
+ return sym.has(obj);
+ }
+ function deletePrivate(obj, sym) {
+ return sym.delete(obj);
+ }
+ function setPrivate(obj, sym, val) {
+ sym.set(obj, val);
+ }
+ function getPrivate(obj, sym) {
+ return sym.get(obj);
+ }
+ function init() {}
+ return {
+ get isPrivateSymbol() {
+ return isPrivateSymbol;
+ },
+ get createPrivateSymbol() {
+ return createPrivateSymbol;
+ },
+ get hasPrivate() {
+ return hasPrivate;
+ },
+ get deletePrivate() {
+ return deletePrivate;
+ },
+ get setPrivate() {
+ return setPrivate;
+ },
+ get getPrivate() {
+ return getPrivate;
+ },
+ get init() {
+ return init;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/private.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/private.js";
+ var sym = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./private-symbol.js", "traceur-runtime@0.0.108/src/runtime/private.js"));
+ var weak = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./private-weak-map.js", "traceur-runtime@0.0.108/src/runtime/private.js"));
+ var hasWeakMap = typeof WeakMap === 'function';
+ var m = hasWeakMap ? weak : sym;
+ var isPrivateSymbol = m.isPrivateSymbol;
+ var createPrivateSymbol = m.createPrivateSymbol;
+ var hasPrivate = m.hasPrivate;
+ var deletePrivate = m.deletePrivate;
+ var setPrivate = m.setPrivate;
+ var getPrivate = m.getPrivate;
+ m.init();
+ return {
+ get isPrivateSymbol() {
+ return isPrivateSymbol;
+ },
+ get createPrivateSymbol() {
+ return createPrivateSymbol;
+ },
+ get hasPrivate() {
+ return hasPrivate;
+ },
+ get deletePrivate() {
+ return deletePrivate;
+ },
+ get setPrivate() {
+ return setPrivate;
+ },
+ get getPrivate() {
+ return getPrivate;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/properTailCalls.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/properTailCalls.js";
+ var $__0 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/modules/properTailCalls.js")),
+ getPrivate = $__0.getPrivate,
+ setPrivate = $__0.setPrivate,
+ createPrivateSymbol = $__0.createPrivateSymbol;
+ var $apply = Function.prototype.call.bind(Function.prototype.apply);
+ var CONTINUATION_TYPE = Object.create(null);
+ var isTailRecursiveName = null;
+ function createContinuation(operand, thisArg, argsArray) {
+ return [CONTINUATION_TYPE, operand, thisArg, argsArray];
+ }
+ function isContinuation(object) {
+ return object && object[0] === CONTINUATION_TYPE;
+ }
+ function $bind(operand, thisArg, args) {
+ var argArray = [thisArg];
+ for (var i = 0; i < args.length; i++) {
+ argArray[i + 1] = args[i];
+ }
+ var func = $apply(Function.prototype.bind, operand, argArray);
+ return func;
+ }
+ function $construct(func, argArray) {
+ var object = new ($bind(func, null, argArray));
+ return object;
+ }
+ function isTailRecursive(func) {
+ return !!getPrivate(func, isTailRecursiveName);
+ }
+ function tailCall(func, thisArg, argArray) {
+ var continuation = argArray[0];
+ if (isContinuation(continuation)) {
+ continuation = $apply(func, thisArg, continuation[3]);
+ return continuation;
+ }
+ continuation = createContinuation(func, thisArg, argArray);
+ while (true) {
+ if (isTailRecursive(func)) {
+ continuation = $apply(func, continuation[2], [continuation]);
+ } else {
+ continuation = $apply(func, continuation[2], continuation[3]);
+ }
+ if (!isContinuation(continuation)) {
+ return continuation;
+ }
+ func = continuation[1];
+ }
+ }
+ function construct() {
+ var object;
+ if (isTailRecursive(this)) {
+ object = $construct(this, [createContinuation(null, null, arguments)]);
+ } else {
+ object = $construct(this, arguments);
+ }
+ return object;
+ }
+ function setupProperTailCalls() {
+ isTailRecursiveName = createPrivateSymbol();
+ Function.prototype.call = initTailRecursiveFunction(function call(thisArg) {
+ var result = tailCall(function(thisArg) {
+ var argArray = [];
+ for (var i = 1; i < arguments.length; ++i) {
+ argArray[i - 1] = arguments[i];
+ }
+ var continuation = createContinuation(this, thisArg, argArray);
+ return continuation;
+ }, this, arguments);
+ return result;
+ });
+ Function.prototype.apply = initTailRecursiveFunction(function apply(thisArg, argArray) {
+ var result = tailCall(function(thisArg, argArray) {
+ var continuation = createContinuation(this, thisArg, argArray);
+ return continuation;
+ }, this, arguments);
+ return result;
+ });
+ }
+ function initTailRecursiveFunction(func) {
+ if (isTailRecursiveName === null) {
+ setupProperTailCalls();
+ }
+ setPrivate(func, isTailRecursiveName, true);
+ return func;
+ }
+ return {
+ get createContinuation() {
+ return createContinuation;
+ },
+ get tailCall() {
+ return tailCall;
+ },
+ get construct() {
+ return construct;
+ },
+ get initTailRecursiveFunction() {
+ return initTailRecursiveFunction;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/initTailRecursiveFunction.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/initTailRecursiveFunction.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/initTailRecursiveFunction.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__.initTailRecursiveFunction;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/call.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/call.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/call.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__.tailCall;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/continuation.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/continuation.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/continuation.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__.createContinuation;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/construct.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/construct.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/modules/construct.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_properTailCalls_46_js__.construct;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/properTailCalls.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/properTailCalls.js";
+ var initTailRecursiveFunction = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initTailRecursiveFunction.js", "traceur-runtime@0.0.108/src/runtime/properTailCalls.js")).default;
+ var call = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/call.js", "traceur-runtime@0.0.108/src/runtime/properTailCalls.js")).default;
+ var continuation = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/continuation.js", "traceur-runtime@0.0.108/src/runtime/properTailCalls.js")).default;
+ var construct = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/construct.js", "traceur-runtime@0.0.108/src/runtime/properTailCalls.js")).default;
+ $traceurRuntime.initTailRecursiveFunction = initTailRecursiveFunction;
+ $traceurRuntime.call = call;
+ $traceurRuntime.continuation = continuation;
+ $traceurRuntime.construct = construct;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/relativeRequire.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/relativeRequire.js";
+ var path;
+ function relativeRequire(callerPath, requiredPath) {
+ path = path || typeof require !== 'undefined' && require('path');
+ function isDirectory(path) {
+ return path.slice(-1) === '/';
+ }
+ function isAbsolute(path) {
+ return path[0] === '/';
+ }
+ function isRelative(path) {
+ return path[0] === '.';
+ }
+ if (isDirectory(requiredPath) || isAbsolute(requiredPath))
+ return;
+ return isRelative(requiredPath) ? require(path.resolve(path.dirname(callerPath), requiredPath)) : require(requiredPath);
+ }
+ $traceurRuntime.require = relativeRequire;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/checkObjectCoercible.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/checkObjectCoercible.js";
+ var $TypeError = TypeError;
+ function checkObjectCoercible(v) {
+ if (v === null || v === undefined) {
+ throw new $TypeError('Value cannot be converted to an Object');
+ }
+ return v;
+ }
+ var $__default = checkObjectCoercible;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/spread.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/spread.js";
+ var checkObjectCoercible = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../checkObjectCoercible.js", "traceur-runtime@0.0.108/src/runtime/modules/spread.js")).default;
+ function spread() {
+ var rv = [],
+ j = 0,
+ iterResult;
+ for (var i = 0; i < arguments.length; i++) {
+ var valueToSpread = checkObjectCoercible(arguments[i]);
+ if (typeof valueToSpread[Symbol.iterator] !== 'function') {
+ throw new TypeError('Cannot spread non-iterable object.');
+ }
+ var iter = valueToSpread[Symbol.iterator]();
+ while (!(iterResult = iter.next()).done) {
+ rv[j++] = iterResult.value;
+ }
+ }
+ return rv;
+ }
+ var $__default = spread;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/spread.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/spread.js";
+ var spread = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spread.js", "traceur-runtime@0.0.108/src/runtime/spread.js")).default;
+ $traceurRuntime.spread = spread;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/iteratorToArray.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/iteratorToArray.js";
+ function iteratorToArray(iter) {
+ var rv = [];
+ var i = 0;
+ var tmp;
+ while (!(tmp = iter.next()).done) {
+ rv[i++] = tmp.value;
+ }
+ return rv;
+ }
+ var $__default = iteratorToArray;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/destructuring.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/destructuring.js";
+ var iteratorToArray = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/iteratorToArray.js", "traceur-runtime@0.0.108/src/runtime/destructuring.js")).default;
+ $traceurRuntime.iteratorToArray = iteratorToArray;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/async.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/async.js";
+ var $__12 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/modules/async.js")),
+ createPrivateSymbol = $__12.createPrivateSymbol,
+ getPrivate = $__12.getPrivate,
+ setPrivate = $__12.setPrivate;
+ var $__11 = Object,
+ create = $__11.create,
+ defineProperty = $__11.defineProperty;
+ var observeName = createPrivateSymbol();
+ function AsyncGeneratorFunction() {}
+ function AsyncGeneratorFunctionPrototype() {}
+ AsyncGeneratorFunction.prototype = AsyncGeneratorFunctionPrototype;
+ AsyncGeneratorFunctionPrototype.constructor = AsyncGeneratorFunction;
+ defineProperty(AsyncGeneratorFunctionPrototype, 'constructor', {enumerable: false});
+ var AsyncGeneratorContext = function() {
+ function AsyncGeneratorContext(observer) {
+ var $__2 = this;
+ this.decoratedObserver = createDecoratedGenerator(observer, function() {
+ $__2.done = true;
+ });
+ this.done = false;
+ this.inReturn = false;
+ }
+ return ($traceurRuntime.createClass)(AsyncGeneratorContext, {
+ throw: function(error) {
+ if (!this.inReturn) {
+ throw error;
+ }
+ },
+ yield: function(value) {
+ if (this.done) {
+ this.inReturn = true;
+ throw undefined;
+ }
+ var result;
+ try {
+ result = this.decoratedObserver.next(value);
+ } catch (e) {
+ this.done = true;
+ throw e;
+ }
+ if (result === undefined) {
+ return;
+ }
+ if (result.done) {
+ this.done = true;
+ this.inReturn = true;
+ throw undefined;
+ }
+ return result.value;
+ },
+ yieldFor: function(observable) {
+ var ctx = this;
+ return observeForEach(observable[Symbol.observer].bind(observable), function(value) {
+ if (ctx.done) {
+ this.return();
+ return;
+ }
+ var result;
+ try {
+ result = ctx.decoratedObserver.next(value);
+ } catch (e) {
+ ctx.done = true;
+ throw e;
+ }
+ if (result === undefined) {
+ return;
+ }
+ if (result.done) {
+ ctx.done = true;
+ }
+ return result;
+ });
+ }
+ }, {});
+ }();
+ AsyncGeneratorFunctionPrototype.prototype[Symbol.observer] = function(observer) {
+ var observe = getPrivate(this, observeName);
+ var ctx = new AsyncGeneratorContext(observer);
+ schedule(function() {
+ return observe(ctx);
+ }).then(function(value) {
+ if (!ctx.done) {
+ ctx.decoratedObserver.return(value);
+ }
+ }).catch(function(error) {
+ if (!ctx.done) {
+ ctx.decoratedObserver.throw(error);
+ }
+ });
+ return ctx.decoratedObserver;
+ };
+ defineProperty(AsyncGeneratorFunctionPrototype.prototype, Symbol.observer, {enumerable: false});
+ function initAsyncGeneratorFunction(functionObject) {
+ functionObject.prototype = create(AsyncGeneratorFunctionPrototype.prototype);
+ functionObject.__proto__ = AsyncGeneratorFunctionPrototype;
+ return functionObject;
+ }
+ function createAsyncGeneratorInstance(observe, functionObject) {
+ for (var args = [],
+ $__10 = 2; $__10 < arguments.length; $__10++)
+ args[$__10 - 2] = arguments[$__10];
+ var object = create(functionObject.prototype);
+ setPrivate(object, observeName, observe);
+ return object;
+ }
+ function observeForEach(observe, next) {
+ return new Promise(function(resolve, reject) {
+ var generator = observe({
+ next: function(value) {
+ return next.call(generator, value);
+ },
+ throw: function(error) {
+ reject(error);
+ },
+ return: function(value) {
+ resolve(value);
+ }
+ });
+ });
+ }
+ function schedule(asyncF) {
+ return Promise.resolve().then(asyncF);
+ }
+ var generator = Symbol();
+ var onDone = Symbol();
+ var DecoratedGenerator = function() {
+ function DecoratedGenerator(_generator, _onDone) {
+ this[generator] = _generator;
+ this[onDone] = _onDone;
+ }
+ return ($traceurRuntime.createClass)(DecoratedGenerator, {
+ next: function(value) {
+ var result = this[generator].next(value);
+ if (result !== undefined && result.done) {
+ this[onDone].call(this);
+ }
+ return result;
+ },
+ throw: function(error) {
+ this[onDone].call(this);
+ return this[generator].throw(error);
+ },
+ return: function(value) {
+ this[onDone].call(this);
+ return this[generator].return(value);
+ }
+ }, {});
+ }();
+ function createDecoratedGenerator(generator, onDone) {
+ return new DecoratedGenerator(generator, onDone);
+ }
+ Array.prototype[Symbol.observer] = function(observer) {
+ var done = false;
+ var decoratedObserver = createDecoratedGenerator(observer, function() {
+ return done = true;
+ });
+ var $__6 = true;
+ var $__7 = false;
+ var $__8 = undefined;
+ try {
+ for (var $__4 = void 0,
+ $__3 = (this)[Symbol.iterator](); !($__6 = ($__4 = $__3.next()).done); $__6 = true) {
+ var value = $__4.value;
+ {
+ decoratedObserver.next(value);
+ if (done) {
+ return;
+ }
+ }
+ }
+ } catch ($__9) {
+ $__7 = true;
+ $__8 = $__9;
+ } finally {
+ try {
+ if (!$__6 && $__3.return != null) {
+ $__3.return();
+ }
+ } finally {
+ if ($__7) {
+ throw $__8;
+ }
+ }
+ }
+ decoratedObserver.return();
+ return decoratedObserver;
+ };
+ defineProperty(Array.prototype, Symbol.observer, {enumerable: false});
+ return {
+ get initAsyncGeneratorFunction() {
+ return initAsyncGeneratorFunction;
+ },
+ get createAsyncGeneratorInstance() {
+ return createAsyncGeneratorInstance;
+ },
+ get observeForEach() {
+ return observeForEach;
+ },
+ get schedule() {
+ return schedule;
+ },
+ get createDecoratedGenerator() {
+ return createDecoratedGenerator;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/initAsyncGeneratorFunction.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/initAsyncGeneratorFunction.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "traceur-runtime@0.0.108/src/runtime/modules/initAsyncGeneratorFunction.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__.initAsyncGeneratorFunction;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/createAsyncGeneratorInstance.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createAsyncGeneratorInstance.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "traceur-runtime@0.0.108/src/runtime/modules/createAsyncGeneratorInstance.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__.createAsyncGeneratorInstance;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/observeForEach.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/observeForEach.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "traceur-runtime@0.0.108/src/runtime/modules/observeForEach.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__.observeForEach;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/schedule.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/schedule.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "traceur-runtime@0.0.108/src/runtime/modules/schedule.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__.schedule;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/createDecoratedGenerator.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createDecoratedGenerator.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "traceur-runtime@0.0.108/src/runtime/modules/createDecoratedGenerator.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_async_46_js__.createDecoratedGenerator;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/async.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/async.js";
+ var initAsyncGeneratorFunction = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initAsyncGeneratorFunction.js", "traceur-runtime@0.0.108/src/runtime/async.js")).default;
+ var createAsyncGeneratorInstance = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createAsyncGeneratorInstance.js", "traceur-runtime@0.0.108/src/runtime/async.js")).default;
+ var observeForEach = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/observeForEach.js", "traceur-runtime@0.0.108/src/runtime/async.js")).default;
+ var schedule = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/schedule.js", "traceur-runtime@0.0.108/src/runtime/async.js")).default;
+ var createDecoratedGenerator = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createDecoratedGenerator.js", "traceur-runtime@0.0.108/src/runtime/async.js")).default;
+ $traceurRuntime.initAsyncGeneratorFunction = initAsyncGeneratorFunction;
+ $traceurRuntime.createAsyncGeneratorInstance = createAsyncGeneratorInstance;
+ $traceurRuntime.observeForEach = observeForEach;
+ $traceurRuntime.schedule = schedule;
+ $traceurRuntime.createDecoratedGenerator = createDecoratedGenerator;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/generators.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/generators.js";
+ var $__2 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/modules/generators.js")),
+ createPrivateSymbol = $__2.createPrivateSymbol,
+ getPrivate = $__2.getPrivate,
+ setPrivate = $__2.setPrivate;
+ var $TypeError = TypeError;
+ var $__1 = Object,
+ create = $__1.create,
+ defineProperties = $__1.defineProperties,
+ defineProperty = $__1.defineProperty;
+ function nonEnum(value) {
+ return {
+ configurable: true,
+ enumerable: false,
+ value: value,
+ writable: true
+ };
+ }
+ var ST_NEWBORN = 0;
+ var ST_EXECUTING = 1;
+ var ST_SUSPENDED = 2;
+ var ST_CLOSED = 3;
+ var END_STATE = -2;
+ var RETHROW_STATE = -3;
+ function getInternalError(state) {
+ return new Error('Traceur compiler bug: invalid state in state machine: ' + state);
+ }
+ var RETURN_SENTINEL = {};
+ function GeneratorContext() {
+ this.state = 0;
+ this.GState = ST_NEWBORN;
+ this.storedException = undefined;
+ this.finallyFallThrough = undefined;
+ this.sent_ = undefined;
+ this.returnValue = undefined;
+ this.oldReturnValue = undefined;
+ this.tryStack_ = [];
+ }
+ GeneratorContext.prototype = {
+ pushTry: function(catchState, finallyState) {
+ if (finallyState !== null) {
+ var finallyFallThrough = null;
+ for (var i = this.tryStack_.length - 1; i >= 0; i--) {
+ if (this.tryStack_[i].catch !== undefined) {
+ finallyFallThrough = this.tryStack_[i].catch;
+ break;
+ }
+ }
+ if (finallyFallThrough === null)
+ finallyFallThrough = RETHROW_STATE;
+ this.tryStack_.push({
+ finally: finallyState,
+ finallyFallThrough: finallyFallThrough
+ });
+ }
+ if (catchState !== null) {
+ this.tryStack_.push({catch: catchState});
+ }
+ },
+ popTry: function() {
+ this.tryStack_.pop();
+ },
+ maybeUncatchable: function() {
+ if (this.storedException === RETURN_SENTINEL) {
+ throw RETURN_SENTINEL;
+ }
+ },
+ get sent() {
+ this.maybeThrow();
+ return this.sent_;
+ },
+ set sent(v) {
+ this.sent_ = v;
+ },
+ get sentIgnoreThrow() {
+ return this.sent_;
+ },
+ maybeThrow: function() {
+ if (this.action === 'throw') {
+ this.action = 'next';
+ throw this.sent_;
+ }
+ },
+ end: function() {
+ switch (this.state) {
+ case END_STATE:
+ return this;
+ case RETHROW_STATE:
+ throw this.storedException;
+ default:
+ throw getInternalError(this.state);
+ }
+ },
+ handleException: function(ex) {
+ this.GState = ST_CLOSED;
+ this.state = END_STATE;
+ throw ex;
+ },
+ wrapYieldStar: function(iterator) {
+ var ctx = this;
+ return {
+ next: function(v) {
+ return iterator.next(v);
+ },
+ throw: function(e) {
+ var result;
+ if (e === RETURN_SENTINEL) {
+ if (iterator.return) {
+ result = iterator.return(ctx.returnValue);
+ if (!result.done) {
+ ctx.returnValue = ctx.oldReturnValue;
+ return result;
+ }
+ ctx.returnValue = result.value;
+ }
+ throw e;
+ }
+ if (iterator.throw) {
+ return iterator.throw(e);
+ }
+ iterator.return && iterator.return();
+ throw $TypeError('Inner iterator does not have a throw method');
+ }
+ };
+ }
+ };
+ function nextOrThrow(ctx, moveNext, action, x) {
+ switch (ctx.GState) {
+ case ST_EXECUTING:
+ throw new Error(("\"" + action + "\" on executing generator"));
+ case ST_CLOSED:
+ if (action == 'next') {
+ return {
+ value: undefined,
+ done: true
+ };
+ }
+ if (x === RETURN_SENTINEL) {
+ return {
+ value: ctx.returnValue,
+ done: true
+ };
+ }
+ throw x;
+ case ST_NEWBORN:
+ if (action === 'throw') {
+ ctx.GState = ST_CLOSED;
+ if (x === RETURN_SENTINEL) {
+ return {
+ value: ctx.returnValue,
+ done: true
+ };
+ }
+ throw x;
+ }
+ if (x !== undefined)
+ throw $TypeError('Sent value to newborn generator');
+ case ST_SUSPENDED:
+ ctx.GState = ST_EXECUTING;
+ ctx.action = action;
+ ctx.sent = x;
+ var value;
+ try {
+ value = moveNext(ctx);
+ } catch (ex) {
+ if (ex === RETURN_SENTINEL) {
+ value = ctx;
+ } else {
+ throw ex;
+ }
+ }
+ var done = value === ctx;
+ if (done)
+ value = ctx.returnValue;
+ ctx.GState = done ? ST_CLOSED : ST_SUSPENDED;
+ return {
+ value: value,
+ done: done
+ };
+ }
+ }
+ var ctxName = createPrivateSymbol();
+ var moveNextName = createPrivateSymbol();
+ function GeneratorFunction() {}
+ function GeneratorFunctionPrototype() {}
+ GeneratorFunction.prototype = GeneratorFunctionPrototype;
+ defineProperty(GeneratorFunctionPrototype, 'constructor', nonEnum(GeneratorFunction));
+ GeneratorFunctionPrototype.prototype = {
+ constructor: GeneratorFunctionPrototype,
+ next: function(v) {
+ return nextOrThrow(getPrivate(this, ctxName), getPrivate(this, moveNextName), 'next', v);
+ },
+ throw: function(v) {
+ return nextOrThrow(getPrivate(this, ctxName), getPrivate(this, moveNextName), 'throw', v);
+ },
+ return: function(v) {
+ var ctx = getPrivate(this, ctxName);
+ ctx.oldReturnValue = ctx.returnValue;
+ ctx.returnValue = v;
+ return nextOrThrow(ctx, getPrivate(this, moveNextName), 'throw', RETURN_SENTINEL);
+ }
+ };
+ defineProperties(GeneratorFunctionPrototype.prototype, {
+ constructor: {enumerable: false},
+ next: {enumerable: false},
+ throw: {enumerable: false},
+ return: {enumerable: false}
+ });
+ Object.defineProperty(GeneratorFunctionPrototype.prototype, Symbol.iterator, nonEnum(function() {
+ return this;
+ }));
+ function createGeneratorInstance(innerFunction, functionObject, self) {
+ var moveNext = getMoveNext(innerFunction, self);
+ var ctx = new GeneratorContext();
+ var object = create(functionObject.prototype);
+ setPrivate(object, ctxName, ctx);
+ setPrivate(object, moveNextName, moveNext);
+ return object;
+ }
+ function initGeneratorFunction(functionObject) {
+ functionObject.prototype = create(GeneratorFunctionPrototype.prototype);
+ functionObject.__proto__ = GeneratorFunctionPrototype;
+ return functionObject;
+ }
+ function AsyncFunctionContext() {
+ GeneratorContext.call(this);
+ this.err = undefined;
+ var ctx = this;
+ ctx.result = new Promise(function(resolve, reject) {
+ ctx.resolve = resolve;
+ ctx.reject = reject;
+ });
+ }
+ AsyncFunctionContext.prototype = create(GeneratorContext.prototype);
+ AsyncFunctionContext.prototype.end = function() {
+ switch (this.state) {
+ case END_STATE:
+ this.resolve(this.returnValue);
+ break;
+ case RETHROW_STATE:
+ this.reject(this.storedException);
+ break;
+ default:
+ this.reject(getInternalError(this.state));
+ }
+ };
+ AsyncFunctionContext.prototype.handleException = function() {
+ this.state = RETHROW_STATE;
+ };
+ function asyncWrap(innerFunction, self) {
+ var moveNext = getMoveNext(innerFunction, self);
+ var ctx = new AsyncFunctionContext();
+ ctx.createCallback = function(newState) {
+ return function(value) {
+ ctx.state = newState;
+ ctx.value = value;
+ moveNext(ctx);
+ };
+ };
+ ctx.errback = function(err) {
+ handleCatch(ctx, err);
+ moveNext(ctx);
+ };
+ moveNext(ctx);
+ return ctx.result;
+ }
+ function getMoveNext(innerFunction, self) {
+ return function(ctx) {
+ while (true) {
+ try {
+ return innerFunction.call(self, ctx);
+ } catch (ex) {
+ handleCatch(ctx, ex);
+ }
+ }
+ };
+ }
+ function handleCatch(ctx, ex) {
+ ctx.storedException = ex;
+ var last = ctx.tryStack_[ctx.tryStack_.length - 1];
+ if (!last) {
+ ctx.handleException(ex);
+ return;
+ }
+ ctx.state = last.catch !== undefined ? last.catch : last.finally;
+ if (last.finallyFallThrough !== undefined)
+ ctx.finallyFallThrough = last.finallyFallThrough;
+ }
+ return {
+ get createGeneratorInstance() {
+ return createGeneratorInstance;
+ },
+ get initGeneratorFunction() {
+ return initGeneratorFunction;
+ },
+ get asyncWrap() {
+ return asyncWrap;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/asyncWrap.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/asyncWrap.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_generators_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js", "traceur-runtime@0.0.108/src/runtime/modules/asyncWrap.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_generators_46_js__.asyncWrap;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/initGeneratorFunction.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/initGeneratorFunction.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_generators_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js", "traceur-runtime@0.0.108/src/runtime/modules/initGeneratorFunction.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_generators_46_js__.initGeneratorFunction;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/createGeneratorInstance.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/createGeneratorInstance.js";
+ var $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_generators_46_js__ = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js", "traceur-runtime@0.0.108/src/runtime/modules/createGeneratorInstance.js"));
+ return {get default() {
+ return $__traceur_45_runtime_64_0_46_0_46_108_47_src_47_runtime_47_modules_47_generators_46_js__.createGeneratorInstance;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/generators.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/generators.js";
+ var asyncWrap = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/asyncWrap.js", "traceur-runtime@0.0.108/src/runtime/generators.js")).default;
+ var initGeneratorFunction = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/initGeneratorFunction.js", "traceur-runtime@0.0.108/src/runtime/generators.js")).default;
+ var createGeneratorInstance = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/createGeneratorInstance.js", "traceur-runtime@0.0.108/src/runtime/generators.js")).default;
+ $traceurRuntime.asyncWrap = asyncWrap;
+ $traceurRuntime.initGeneratorFunction = initGeneratorFunction;
+ $traceurRuntime.createGeneratorInstance = createGeneratorInstance;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/spawn.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/spawn.js";
+ function spawn(self, args, gen) {
+ return new Promise(function(resolve, reject) {
+ function fulfill(v) {
+ try {
+ step(gen.next(v));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(v) {
+ try {
+ step(gen.throw(v));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(res) {
+ if (res.done) {
+ resolve(res.value);
+ } else {
+ Promise.resolve(res.value).then(fulfill, rejected);
+ }
+ }
+ step((gen = gen.apply(self, args)).next());
+ });
+ }
+ var $__default = spawn;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/spawn.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/spawn.js";
+ var spawn = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spawn.js", "traceur-runtime@0.0.108/src/runtime/spawn.js")).default;
+ $traceurRuntime.spawn = spawn;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/getTemplateObject.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/getTemplateObject.js";
+ var $__1 = Object,
+ defineProperty = $__1.defineProperty,
+ freeze = $__1.freeze;
+ var slice = Array.prototype.slice;
+ var map = Object.create(null);
+ function getTemplateObject(raw) {
+ var cooked = arguments[1];
+ var key = raw.join('${}');
+ var templateObject = map[key];
+ if (templateObject)
+ return templateObject;
+ if (!cooked) {
+ cooked = slice.call(raw);
+ }
+ return map[key] = freeze(defineProperty(cooked, 'raw', {value: freeze(raw)}));
+ }
+ var $__default = getTemplateObject;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/template.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/template.js";
+ var getTemplateObject = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/getTemplateObject.js", "traceur-runtime@0.0.108/src/runtime/template.js")).default;
+ $traceurRuntime.getTemplateObject = getTemplateObject;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/modules/spreadProperties.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/modules/spreadProperties.js";
+ var $__1 = Object,
+ defineProperty = $__1.defineProperty,
+ getOwnPropertyNames = $__1.getOwnPropertyNames,
+ getOwnPropertySymbols = $__1.getOwnPropertySymbols,
+ propertyIsEnumerable = $__1.propertyIsEnumerable;
+ function createDataProperty(o, p, v) {
+ defineProperty(o, p, {
+ configurable: true,
+ enumerable: true,
+ value: v,
+ writable: true
+ });
+ }
+ function copyDataProperties(target, source) {
+ if (source == null) {
+ return;
+ }
+ var copy = function(keys) {
+ for (var i = 0; i < keys.length; i++) {
+ var nextKey = keys[i];
+ if (propertyIsEnumerable.call(source, nextKey)) {
+ var propValue = source[nextKey];
+ createDataProperty(target, nextKey, propValue);
+ }
+ }
+ };
+ copy(getOwnPropertyNames(source));
+ copy(getOwnPropertySymbols(source));
+ }
+ var $__default = function() {
+ var target = arguments[0];
+ for (var i = 1; i < arguments.length; i++) {
+ copyDataProperties(target, arguments[i]);
+ }
+ return target;
+ };
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/jsx.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/jsx.js";
+ var spreadProperties = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./modules/spreadProperties.js", "traceur-runtime@0.0.108/src/runtime/jsx.js")).default;
+ $traceurRuntime.spreadProperties = spreadProperties;
+ return {};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/runtime-modules.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/runtime-modules.js";
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./symbols.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./classes.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./exportStar.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./properTailCalls.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./relativeRequire.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./spread.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./destructuring.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./async.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./generators.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./spawn.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./template.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./jsx.js", "traceur-runtime@0.0.108/src/runtime/runtime-modules.js"));
+ return {};
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/runtime-modules.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/frozen-data.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/frozen-data.js";
+ function findIndex(arr, key) {
+ for (var i = 0; i < arr.length; i += 2) {
+ if (arr[i] === key) {
+ return i;
+ }
+ }
+ return -1;
+ }
+ function setFrozen(arr, key, val) {
+ var i = findIndex(arr, key);
+ if (i === -1) {
+ arr.push(key, val);
+ }
+ }
+ function getFrozen(arr, key) {
+ var i = findIndex(arr, key);
+ if (i !== -1) {
+ return arr[i + 1];
+ }
+ return undefined;
+ }
+ function hasFrozen(arr, key) {
+ return findIndex(arr, key) !== -1;
+ }
+ function deleteFrozen(arr, key) {
+ var i = findIndex(arr, key);
+ if (i !== -1) {
+ arr.splice(i, 2);
+ return true;
+ }
+ return false;
+ }
+ return {
+ get setFrozen() {
+ return setFrozen;
+ },
+ get getFrozen() {
+ return getFrozen;
+ },
+ get hasFrozen() {
+ return hasFrozen;
+ },
+ get deleteFrozen() {
+ return deleteFrozen;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/utils.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/utils.js";
+ var $ceil = Math.ceil;
+ var $floor = Math.floor;
+ var $isFinite = isFinite;
+ var $isNaN = isNaN;
+ var $pow = Math.pow;
+ var $min = Math.min;
+ var $TypeError = TypeError;
+ var $Object = Object;
+ function toObject(x) {
+ if (x == null) {
+ throw $TypeError();
+ }
+ return $Object(x);
+ }
+ function toUint32(x) {
+ return x >>> 0;
+ }
+ function isObject(x) {
+ return x && (typeof x === 'object' || typeof x === 'function');
+ }
+ function isCallable(x) {
+ return typeof x === 'function';
+ }
+ function isNumber(x) {
+ return typeof x === 'number';
+ }
+ function toInteger(x) {
+ x = +x;
+ if ($isNaN(x))
+ return 0;
+ if (x === 0 || !$isFinite(x))
+ return x;
+ return x > 0 ? $floor(x) : $ceil(x);
+ }
+ var MAX_SAFE_LENGTH = $pow(2, 53) - 1;
+ function toLength(x) {
+ var len = toInteger(x);
+ return len < 0 ? 0 : $min(len, MAX_SAFE_LENGTH);
+ }
+ function checkIterable(x) {
+ return !isObject(x) ? undefined : x[Symbol.iterator];
+ }
+ function isConstructor(x) {
+ return isCallable(x);
+ }
+ function createIteratorResultObject(value, done) {
+ return {
+ value: value,
+ done: done
+ };
+ }
+ function maybeDefine(object, name, descr) {
+ if (!(name in object)) {
+ Object.defineProperty(object, name, descr);
+ }
+ }
+ function maybeDefineMethod(object, name, value) {
+ maybeDefine(object, name, {
+ value: value,
+ configurable: true,
+ enumerable: false,
+ writable: true
+ });
+ }
+ function maybeDefineConst(object, name, value) {
+ maybeDefine(object, name, {
+ value: value,
+ configurable: false,
+ enumerable: false,
+ writable: false
+ });
+ }
+ function maybeAddFunctions(object, functions) {
+ for (var i = 0; i < functions.length; i += 2) {
+ var name = functions[i];
+ var value = functions[i + 1];
+ maybeDefineMethod(object, name, value);
+ }
+ }
+ function maybeAddConsts(object, consts) {
+ for (var i = 0; i < consts.length; i += 2) {
+ var name = consts[i];
+ var value = consts[i + 1];
+ maybeDefineConst(object, name, value);
+ }
+ }
+ function maybeAddIterator(object, func, Symbol) {
+ if (!Symbol || !Symbol.iterator || object[Symbol.iterator])
+ return;
+ if (object['@@iterator'])
+ func = object['@@iterator'];
+ Object.defineProperty(object, Symbol.iterator, {
+ value: func,
+ configurable: true,
+ enumerable: false,
+ writable: true
+ });
+ }
+ var polyfills = [];
+ function registerPolyfill(func) {
+ polyfills.push(func);
+ }
+ function polyfillAll(global) {
+ polyfills.forEach(function(f) {
+ return f(global);
+ });
+ }
+ return {
+ get toObject() {
+ return toObject;
+ },
+ get toUint32() {
+ return toUint32;
+ },
+ get isObject() {
+ return isObject;
+ },
+ get isCallable() {
+ return isCallable;
+ },
+ get isNumber() {
+ return isNumber;
+ },
+ get toInteger() {
+ return toInteger;
+ },
+ get toLength() {
+ return toLength;
+ },
+ get checkIterable() {
+ return checkIterable;
+ },
+ get isConstructor() {
+ return isConstructor;
+ },
+ get createIteratorResultObject() {
+ return createIteratorResultObject;
+ },
+ get maybeDefine() {
+ return maybeDefine;
+ },
+ get maybeDefineMethod() {
+ return maybeDefineMethod;
+ },
+ get maybeDefineConst() {
+ return maybeDefineConst;
+ },
+ get maybeAddFunctions() {
+ return maybeAddFunctions;
+ },
+ get maybeAddConsts() {
+ return maybeAddConsts;
+ },
+ get maybeAddIterator() {
+ return maybeAddIterator;
+ },
+ get registerPolyfill() {
+ return registerPolyfill;
+ },
+ get polyfillAll() {
+ return polyfillAll;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Map.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js";
+ var $__16 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")),
+ createPrivateSymbol = $__16.createPrivateSymbol,
+ getPrivate = $__16.getPrivate,
+ setPrivate = $__16.setPrivate;
+ var $__17 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")),
+ deleteFrozen = $__17.deleteFrozen,
+ getFrozen = $__17.getFrozen,
+ setFrozen = $__17.setFrozen;
+ var $__18 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")),
+ isObject = $__18.isObject,
+ registerPolyfill = $__18.registerPolyfill;
+ var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Map.js")).default;
+ var $__9 = Object,
+ defineProperty = $__9.defineProperty,
+ getOwnPropertyDescriptor = $__9.getOwnPropertyDescriptor,
+ hasOwnProperty = $__9.hasOwnProperty,
+ isExtensible = $__9.isExtensible;
+ var deletedSentinel = {};
+ var counter = 1;
+ var hashCodeName = createPrivateSymbol();
+ function getHashCodeForObject(obj) {
+ return getPrivate(obj, hashCodeName);
+ }
+ function getOrSetHashCodeForObject(obj) {
+ var hash = getHashCodeForObject(obj);
+ if (!hash) {
+ hash = counter++;
+ setPrivate(obj, hashCodeName, hash);
+ }
+ return hash;
+ }
+ function lookupIndex(map, key) {
+ if (typeof key === 'string') {
+ return map.stringIndex_[key];
+ }
+ if (isObject(key)) {
+ if (!isExtensible(key)) {
+ return getFrozen(map.frozenData_, key);
+ }
+ var hc = getHashCodeForObject(key);
+ if (hc === undefined) {
+ return undefined;
+ }
+ return map.objectIndex_[hc];
+ }
+ return map.primitiveIndex_[key];
+ }
+ function initMap(map) {
+ map.entries_ = [];
+ map.objectIndex_ = Object.create(null);
+ map.stringIndex_ = Object.create(null);
+ map.primitiveIndex_ = Object.create(null);
+ map.frozenData_ = [];
+ map.deletedCount_ = 0;
+ }
+ var Map = function() {
+ function Map() {
+ var $__11,
+ $__12;
+ var iterable = arguments[0];
+ if (!isObject(this))
+ throw new TypeError('Map called on incompatible type');
+ if (hasOwnProperty.call(this, 'entries_')) {
+ throw new TypeError('Map can not be reentrantly initialised');
+ }
+ initMap(this);
+ if (iterable !== null && iterable !== undefined) {
+ var $__5 = true;
+ var $__6 = false;
+ var $__7 = undefined;
+ try {
+ for (var $__3 = void 0,
+ $__2 = (iterable)[Symbol.iterator](); !($__5 = ($__3 = $__2.next()).done); $__5 = true) {
+ var $__10 = $__3.value,
+ key = ($__11 = $__10[Symbol.iterator](), ($__12 = $__11.next()).done ? void 0 : $__12.value),
+ value = ($__12 = $__11.next()).done ? void 0 : $__12.value;
+ {
+ this.set(key, value);
+ }
+ }
+ } catch ($__8) {
+ $__6 = true;
+ $__7 = $__8;
+ } finally {
+ try {
+ if (!$__5 && $__2.return != null) {
+ $__2.return();
+ }
+ } finally {
+ if ($__6) {
+ throw $__7;
+ }
+ }
+ }
+ }
+ }
+ return ($traceurRuntime.createClass)(Map, {
+ get size() {
+ return this.entries_.length / 2 - this.deletedCount_;
+ },
+ get: function(key) {
+ var index = lookupIndex(this, key);
+ if (index !== undefined) {
+ return this.entries_[index + 1];
+ }
+ },
+ set: function(key, value) {
+ var index = lookupIndex(this, key);
+ if (index !== undefined) {
+ this.entries_[index + 1] = value;
+ } else {
+ index = this.entries_.length;
+ this.entries_[index] = key;
+ this.entries_[index + 1] = value;
+ if (isObject(key)) {
+ if (!isExtensible(key)) {
+ setFrozen(this.frozenData_, key, index);
+ } else {
+ var hash = getOrSetHashCodeForObject(key);
+ this.objectIndex_[hash] = index;
+ }
+ } else if (typeof key === 'string') {
+ this.stringIndex_[key] = index;
+ } else {
+ this.primitiveIndex_[key] = index;
+ }
+ }
+ return this;
+ },
+ has: function(key) {
+ return lookupIndex(this, key) !== undefined;
+ },
+ delete: function(key) {
+ var index = lookupIndex(this, key);
+ if (index === undefined) {
+ return false;
+ }
+ this.entries_[index] = deletedSentinel;
+ this.entries_[index + 1] = undefined;
+ this.deletedCount_++;
+ if (isObject(key)) {
+ if (!isExtensible(key)) {
+ deleteFrozen(this.frozenData_, key);
+ } else {
+ var hash = getHashCodeForObject(key);
+ delete this.objectIndex_[hash];
+ }
+ } else if (typeof key === 'string') {
+ delete this.stringIndex_[key];
+ } else {
+ delete this.primitiveIndex_[key];
+ }
+ return true;
+ },
+ clear: function() {
+ initMap(this);
+ },
+ forEach: function(callbackFn) {
+ var thisArg = arguments[1];
+ for (var i = 0; i < this.entries_.length; i += 2) {
+ var key = this.entries_[i];
+ var value = this.entries_[i + 1];
+ if (key === deletedSentinel)
+ continue;
+ callbackFn.call(thisArg, value, key, this);
+ }
+ },
+ entries: $traceurRuntime.initGeneratorFunction(function $__13() {
+ var i,
+ key,
+ value;
+ return $traceurRuntime.createGeneratorInstance(function($ctx) {
+ while (true)
+ switch ($ctx.state) {
+ case 0:
+ i = 0;
+ $ctx.state = 12;
+ break;
+ case 12:
+ $ctx.state = (i < this.entries_.length) ? 8 : -2;
+ break;
+ case 4:
+ i += 2;
+ $ctx.state = 12;
+ break;
+ case 8:
+ key = this.entries_[i];
+ value = this.entries_[i + 1];
+ $ctx.state = 9;
+ break;
+ case 9:
+ $ctx.state = (key === deletedSentinel) ? 4 : 6;
+ break;
+ case 6:
+ $ctx.state = 2;
+ return [key, value];
+ case 2:
+ $ctx.maybeThrow();
+ $ctx.state = 4;
+ break;
+ default:
+ return $ctx.end();
+ }
+ }, $__13, this);
+ }),
+ keys: $traceurRuntime.initGeneratorFunction(function $__14() {
+ var i,
+ key,
+ value;
+ return $traceurRuntime.createGeneratorInstance(function($ctx) {
+ while (true)
+ switch ($ctx.state) {
+ case 0:
+ i = 0;
+ $ctx.state = 12;
+ break;
+ case 12:
+ $ctx.state = (i < this.entries_.length) ? 8 : -2;
+ break;
+ case 4:
+ i += 2;
+ $ctx.state = 12;
+ break;
+ case 8:
+ key = this.entries_[i];
+ value = this.entries_[i + 1];
+ $ctx.state = 9;
+ break;
+ case 9:
+ $ctx.state = (key === deletedSentinel) ? 4 : 6;
+ break;
+ case 6:
+ $ctx.state = 2;
+ return key;
+ case 2:
+ $ctx.maybeThrow();
+ $ctx.state = 4;
+ break;
+ default:
+ return $ctx.end();
+ }
+ }, $__14, this);
+ }),
+ values: $traceurRuntime.initGeneratorFunction(function $__15() {
+ var i,
+ key,
+ value;
+ return $traceurRuntime.createGeneratorInstance(function($ctx) {
+ while (true)
+ switch ($ctx.state) {
+ case 0:
+ i = 0;
+ $ctx.state = 12;
+ break;
+ case 12:
+ $ctx.state = (i < this.entries_.length) ? 8 : -2;
+ break;
+ case 4:
+ i += 2;
+ $ctx.state = 12;
+ break;
+ case 8:
+ key = this.entries_[i];
+ value = this.entries_[i + 1];
+ $ctx.state = 9;
+ break;
+ case 9:
+ $ctx.state = (key === deletedSentinel) ? 4 : 6;
+ break;
+ case 6:
+ $ctx.state = 2;
+ return value;
+ case 2:
+ $ctx.maybeThrow();
+ $ctx.state = 4;
+ break;
+ default:
+ return $ctx.end();
+ }
+ }, $__15, this);
+ })
+ }, {});
+ }();
+ defineProperty(Map.prototype, Symbol.iterator, {
+ configurable: true,
+ writable: true,
+ value: Map.prototype.entries
+ });
+ function needsPolyfill(global) {
+ var $__10 = global,
+ Map = $__10.Map,
+ Symbol = $__10.Symbol;
+ if (!Map || !hasNativeSymbol() || !Map.prototype[Symbol.iterator] || !Map.prototype.entries) {
+ return true;
+ }
+ try {
+ return new Map([[]]).size !== 1;
+ } catch (e) {
+ return false;
+ }
+ }
+ function polyfillMap(global) {
+ if (needsPolyfill(global)) {
+ global.Map = Map;
+ }
+ }
+ registerPolyfill(polyfillMap);
+ return {
+ get Map() {
+ return Map;
+ },
+ get polyfillMap() {
+ return polyfillMap;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Map.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Set.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js";
+ var $__18 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js")),
+ isObject = $__18.isObject,
+ registerPolyfill = $__18.registerPolyfill;
+ var Map = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./Map.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js")).Map;
+ var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Set.js")).default;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ var Set = function() {
+ function Set() {
+ var iterable = arguments[0];
+ if (!isObject(this))
+ throw new TypeError('Set called on incompatible type');
+ if (hasOwnProperty.call(this, 'map_')) {
+ throw new TypeError('Set can not be reentrantly initialised');
+ }
+ this.map_ = new Map();
+ if (iterable !== null && iterable !== undefined) {
+ var $__6 = true;
+ var $__7 = false;
+ var $__8 = undefined;
+ try {
+ for (var $__4 = void 0,
+ $__3 = (iterable)[Symbol.iterator](); !($__6 = ($__4 = $__3.next()).done); $__6 = true) {
+ var item = $__4.value;
+ {
+ this.add(item);
+ }
+ }
+ } catch ($__9) {
+ $__7 = true;
+ $__8 = $__9;
+ } finally {
+ try {
+ if (!$__6 && $__3.return != null) {
+ $__3.return();
+ }
+ } finally {
+ if ($__7) {
+ throw $__8;
+ }
+ }
+ }
+ }
+ }
+ return ($traceurRuntime.createClass)(Set, {
+ get size() {
+ return this.map_.size;
+ },
+ has: function(key) {
+ return this.map_.has(key);
+ },
+ add: function(key) {
+ this.map_.set(key, key);
+ return this;
+ },
+ delete: function(key) {
+ return this.map_.delete(key);
+ },
+ clear: function() {
+ return this.map_.clear();
+ },
+ forEach: function(callbackFn) {
+ var thisArg = arguments[1];
+ var $__2 = this;
+ return this.map_.forEach(function(value, key) {
+ callbackFn.call(thisArg, key, key, $__2);
+ });
+ },
+ values: $traceurRuntime.initGeneratorFunction(function $__12() {
+ var $__13,
+ $__14;
+ return $traceurRuntime.createGeneratorInstance(function($ctx) {
+ while (true)
+ switch ($ctx.state) {
+ case 0:
+ $__13 = $ctx.wrapYieldStar(this.map_.keys()[Symbol.iterator]());
+ $ctx.sent = void 0;
+ $ctx.action = 'next';
+ $ctx.state = 12;
+ break;
+ case 12:
+ $__14 = $__13[$ctx.action]($ctx.sentIgnoreThrow);
+ $ctx.state = 9;
+ break;
+ case 9:
+ $ctx.state = ($__14.done) ? 3 : 2;
+ break;
+ case 3:
+ $ctx.sent = $__14.value;
+ $ctx.state = -2;
+ break;
+ case 2:
+ $ctx.state = 12;
+ return $__14.value;
+ default:
+ return $ctx.end();
+ }
+ }, $__12, this);
+ }),
+ entries: $traceurRuntime.initGeneratorFunction(function $__15() {
+ var $__16,
+ $__17;
+ return $traceurRuntime.createGeneratorInstance(function($ctx) {
+ while (true)
+ switch ($ctx.state) {
+ case 0:
+ $__16 = $ctx.wrapYieldStar(this.map_.entries()[Symbol.iterator]());
+ $ctx.sent = void 0;
+ $ctx.action = 'next';
+ $ctx.state = 12;
+ break;
+ case 12:
+ $__17 = $__16[$ctx.action]($ctx.sentIgnoreThrow);
+ $ctx.state = 9;
+ break;
+ case 9:
+ $ctx.state = ($__17.done) ? 3 : 2;
+ break;
+ case 3:
+ $ctx.sent = $__17.value;
+ $ctx.state = -2;
+ break;
+ case 2:
+ $ctx.state = 12;
+ return $__17.value;
+ default:
+ return $ctx.end();
+ }
+ }, $__15, this);
+ })
+ }, {});
+ }();
+ Object.defineProperty(Set.prototype, Symbol.iterator, {
+ configurable: true,
+ writable: true,
+ value: Set.prototype.values
+ });
+ Object.defineProperty(Set.prototype, 'keys', {
+ configurable: true,
+ writable: true,
+ value: Set.prototype.values
+ });
+ function needsPolyfill(global) {
+ var $__11 = global,
+ Set = $__11.Set,
+ Symbol = $__11.Symbol;
+ if (!Set || !hasNativeSymbol() || !Set.prototype[Symbol.iterator] || !Set.prototype.values) {
+ return true;
+ }
+ try {
+ return new Set([1]).size !== 1;
+ } catch (e) {
+ return false;
+ }
+ }
+ function polyfillSet(global) {
+ if (needsPolyfill(global)) {
+ global.Set = Set;
+ }
+ }
+ registerPolyfill(polyfillSet);
+ return {
+ get Set() {
+ return Set;
+ },
+ get polyfillSet() {
+ return polyfillSet;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Set.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/node_modules/rsvp/lib/rsvp/asap.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/node_modules/rsvp/lib/rsvp/asap.js";
+ var len = 0;
+ var toString = {}.toString;
+ var vertxNext;
+ function asap(callback, arg) {
+ queue[len] = callback;
+ queue[len + 1] = arg;
+ len += 2;
+ if (len === 2) {
+ scheduleFlush();
+ }
+ }
+ var $__default = asap;
+ var browserWindow = (typeof window !== 'undefined') ? window : undefined;
+ var browserGlobal = browserWindow || {};
+ var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
+ var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
+ var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
+ function useNextTick() {
+ var nextTick = process.nextTick;
+ var version = process.versions.node.match(/^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$/);
+ if (Array.isArray(version) && version[1] === '0' && version[2] === '10') {
+ nextTick = setImmediate;
+ }
+ return function() {
+ nextTick(flush);
+ };
+ }
+ function useVertxTimer() {
+ return function() {
+ vertxNext(flush);
+ };
+ }
+ function useMutationObserver() {
+ var iterations = 0;
+ var observer = new BrowserMutationObserver(flush);
+ var node = document.createTextNode('');
+ observer.observe(node, {characterData: true});
+ return function() {
+ node.data = (iterations = ++iterations % 2);
+ };
+ }
+ function useMessageChannel() {
+ var channel = new MessageChannel();
+ channel.port1.onmessage = flush;
+ return function() {
+ channel.port2.postMessage(0);
+ };
+ }
+ function useSetTimeout() {
+ return function() {
+ setTimeout(flush, 1);
+ };
+ }
+ var queue = new Array(1000);
+ function flush() {
+ for (var i = 0; i < len; i += 2) {
+ var callback = queue[i];
+ var arg = queue[i + 1];
+ callback(arg);
+ queue[i] = undefined;
+ queue[i + 1] = undefined;
+ }
+ len = 0;
+ }
+ function attemptVertex() {
+ try {
+ var r = require;
+ var vertx = r('vertx');
+ vertxNext = vertx.runOnLoop || vertx.runOnContext;
+ return useVertxTimer();
+ } catch (e) {
+ return useSetTimeout();
+ }
+ }
+ var scheduleFlush;
+ if (isNode) {
+ scheduleFlush = useNextTick();
+ } else if (BrowserMutationObserver) {
+ scheduleFlush = useMutationObserver();
+ } else if (isWorker) {
+ scheduleFlush = useMessageChannel();
+ } else if (browserWindow === undefined && typeof require === 'function') {
+ scheduleFlush = attemptVertex();
+ } else {
+ scheduleFlush = useSetTimeout();
+ }
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js";
+ var async = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../../../node_modules/rsvp/lib/rsvp/asap.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js")).default;
+ var $__9 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js")),
+ isObject = $__9.isObject,
+ registerPolyfill = $__9.registerPolyfill;
+ var $__10 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js")),
+ createPrivateSymbol = $__10.createPrivateSymbol,
+ getPrivate = $__10.getPrivate,
+ setPrivate = $__10.setPrivate;
+ var promiseRaw = {};
+ function isPromise(x) {
+ return x && typeof x === 'object' && x.status_ !== undefined;
+ }
+ function idResolveHandler(x) {
+ return x;
+ }
+ function idRejectHandler(x) {
+ throw x;
+ }
+ function chain(promise) {
+ var onResolve = arguments[1] !== (void 0) ? arguments[1] : idResolveHandler;
+ var onReject = arguments[2] !== (void 0) ? arguments[2] : idRejectHandler;
+ var deferred = getDeferred(promise.constructor);
+ switch (promise.status_) {
+ case undefined:
+ throw TypeError;
+ case 0:
+ promise.onResolve_.push(onResolve, deferred);
+ promise.onReject_.push(onReject, deferred);
+ break;
+ case +1:
+ promiseEnqueue(promise.value_, [onResolve, deferred]);
+ break;
+ case -1:
+ promiseEnqueue(promise.value_, [onReject, deferred]);
+ break;
+ }
+ return deferred.promise;
+ }
+ function getDeferred(C) {
+ if (this === $Promise) {
+ var promise = promiseInit(new $Promise(promiseRaw));
+ return {
+ promise: promise,
+ resolve: function(x) {
+ promiseResolve(promise, x);
+ },
+ reject: function(r) {
+ promiseReject(promise, r);
+ }
+ };
+ } else {
+ var result = {};
+ result.promise = new C(function(resolve, reject) {
+ result.resolve = resolve;
+ result.reject = reject;
+ });
+ return result;
+ }
+ }
+ function promiseSet(promise, status, value, onResolve, onReject) {
+ promise.status_ = status;
+ promise.value_ = value;
+ promise.onResolve_ = onResolve;
+ promise.onReject_ = onReject;
+ return promise;
+ }
+ function promiseInit(promise) {
+ return promiseSet(promise, 0, undefined, [], []);
+ }
+ var Promise = function() {
+ function Promise(resolver) {
+ if (resolver === promiseRaw)
+ return;
+ if (typeof resolver !== 'function')
+ throw new TypeError;
+ var promise = promiseInit(this);
+ try {
+ resolver(function(x) {
+ promiseResolve(promise, x);
+ }, function(r) {
+ promiseReject(promise, r);
+ });
+ } catch (e) {
+ promiseReject(promise, e);
+ }
+ }
+ return ($traceurRuntime.createClass)(Promise, {
+ catch: function(onReject) {
+ return this.then(undefined, onReject);
+ },
+ then: function(onResolve, onReject) {
+ if (typeof onResolve !== 'function')
+ onResolve = idResolveHandler;
+ if (typeof onReject !== 'function')
+ onReject = idRejectHandler;
+ var that = this;
+ var constructor = this.constructor;
+ return chain(this, function(x) {
+ x = promiseCoerce(constructor, x);
+ return x === that ? onReject(new TypeError) : isPromise(x) ? x.then(onResolve, onReject) : onResolve(x);
+ }, onReject);
+ }
+ }, {
+ resolve: function(x) {
+ if (this === $Promise) {
+ if (isPromise(x)) {
+ return x;
+ }
+ return promiseSet(new $Promise(promiseRaw), +1, x);
+ } else {
+ return new this(function(resolve, reject) {
+ resolve(x);
+ });
+ }
+ },
+ reject: function(r) {
+ if (this === $Promise) {
+ return promiseSet(new $Promise(promiseRaw), -1, r);
+ } else {
+ return new this(function(resolve, reject) {
+ reject(r);
+ });
+ }
+ },
+ all: function(values) {
+ var deferred = getDeferred(this);
+ var resolutions = [];
+ try {
+ var makeCountdownFunction = function(i) {
+ return function(x) {
+ resolutions[i] = x;
+ if (--count === 0)
+ deferred.resolve(resolutions);
+ };
+ };
+ var count = 0;
+ var i = 0;
+ var $__4 = true;
+ var $__5 = false;
+ var $__6 = undefined;
+ try {
+ for (var $__2 = void 0,
+ $__1 = (values)[Symbol.iterator](); !($__4 = ($__2 = $__1.next()).done); $__4 = true) {
+ var value = $__2.value;
+ {
+ var countdownFunction = makeCountdownFunction(i);
+ this.resolve(value).then(countdownFunction, function(r) {
+ deferred.reject(r);
+ });
+ ++i;
+ ++count;
+ }
+ }
+ } catch ($__7) {
+ $__5 = true;
+ $__6 = $__7;
+ } finally {
+ try {
+ if (!$__4 && $__1.return != null) {
+ $__1.return();
+ }
+ } finally {
+ if ($__5) {
+ throw $__6;
+ }
+ }
+ }
+ if (count === 0) {
+ deferred.resolve(resolutions);
+ }
+ } catch (e) {
+ deferred.reject(e);
+ }
+ return deferred.promise;
+ },
+ race: function(values) {
+ var deferred = getDeferred(this);
+ try {
+ for (var i = 0; i < values.length; i++) {
+ this.resolve(values[i]).then(function(x) {
+ deferred.resolve(x);
+ }, function(r) {
+ deferred.reject(r);
+ });
+ }
+ } catch (e) {
+ deferred.reject(e);
+ }
+ return deferred.promise;
+ }
+ });
+ }();
+ var $Promise = Promise;
+ var $PromiseReject = $Promise.reject;
+ function promiseResolve(promise, x) {
+ promiseDone(promise, +1, x, promise.onResolve_);
+ }
+ function promiseReject(promise, r) {
+ promiseDone(promise, -1, r, promise.onReject_);
+ }
+ function promiseDone(promise, status, value, reactions) {
+ if (promise.status_ !== 0)
+ return;
+ promiseEnqueue(value, reactions);
+ promiseSet(promise, status, value);
+ }
+ function promiseEnqueue(value, tasks) {
+ async(function() {
+ for (var i = 0; i < tasks.length; i += 2) {
+ promiseHandle(value, tasks[i], tasks[i + 1]);
+ }
+ });
+ }
+ function promiseHandle(value, handler, deferred) {
+ try {
+ var result = handler(value);
+ if (result === deferred.promise)
+ throw new TypeError;
+ else if (isPromise(result))
+ chain(result, deferred.resolve, deferred.reject);
+ else
+ deferred.resolve(result);
+ } catch (e) {
+ try {
+ deferred.reject(e);
+ } catch (e) {}
+ }
+ }
+ var thenableSymbol = createPrivateSymbol();
+ function promiseCoerce(constructor, x) {
+ if (!isPromise(x) && isObject(x)) {
+ var then;
+ try {
+ then = x.then;
+ } catch (r) {
+ var promise = $PromiseReject.call(constructor, r);
+ setPrivate(x, thenableSymbol, promise);
+ return promise;
+ }
+ if (typeof then === 'function') {
+ var p = getPrivate(x, thenableSymbol);
+ if (p) {
+ return p;
+ } else {
+ var deferred = getDeferred(constructor);
+ setPrivate(x, thenableSymbol, deferred.promise);
+ try {
+ then.call(x, deferred.resolve, deferred.reject);
+ } catch (r) {
+ deferred.reject(r);
+ }
+ return deferred.promise;
+ }
+ }
+ }
+ return x;
+ }
+ function polyfillPromise(global) {
+ if (!global.Promise)
+ global.Promise = Promise;
+ }
+ registerPolyfill(polyfillPromise);
+ return {
+ get Promise() {
+ return Promise;
+ },
+ get polyfillPromise() {
+ return polyfillPromise;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Promise.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/StringIterator.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/StringIterator.js";
+ var $__3 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/StringIterator.js")),
+ createIteratorResultObject = $__3.createIteratorResultObject,
+ isObject = $__3.isObject;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ var iteratedString = Symbol('iteratedString');
+ var stringIteratorNextIndex = Symbol('stringIteratorNextIndex');
+ var StringIterator = function() {
+ var $__1;
+ function StringIterator() {}
+ return ($traceurRuntime.createClass)(StringIterator, ($__1 = {}, Object.defineProperty($__1, "next", {
+ value: function() {
+ var o = this;
+ if (!isObject(o) || !hasOwnProperty.call(o, iteratedString)) {
+ throw new TypeError('this must be a StringIterator object');
+ }
+ var s = o[iteratedString];
+ if (s === undefined) {
+ return createIteratorResultObject(undefined, true);
+ }
+ var position = o[stringIteratorNextIndex];
+ var len = s.length;
+ if (position >= len) {
+ o[iteratedString] = undefined;
+ return createIteratorResultObject(undefined, true);
+ }
+ var first = s.charCodeAt(position);
+ var resultString;
+ if (first < 0xD800 || first > 0xDBFF || position + 1 === len) {
+ resultString = String.fromCharCode(first);
+ } else {
+ var second = s.charCodeAt(position + 1);
+ if (second < 0xDC00 || second > 0xDFFF) {
+ resultString = String.fromCharCode(first);
+ } else {
+ resultString = String.fromCharCode(first) + String.fromCharCode(second);
+ }
+ }
+ o[stringIteratorNextIndex] = position + resultString.length;
+ return createIteratorResultObject(resultString, false);
+ },
+ configurable: true,
+ enumerable: true,
+ writable: true
+ }), Object.defineProperty($__1, Symbol.iterator, {
+ value: function() {
+ return this;
+ },
+ configurable: true,
+ enumerable: true,
+ writable: true
+ }), $__1), {});
+ }();
+ function createStringIterator(string) {
+ var s = String(string);
+ var iterator = Object.create(StringIterator.prototype);
+ iterator[iteratedString] = s;
+ iterator[stringIteratorNextIndex] = 0;
+ return iterator;
+ }
+ return {get createStringIterator() {
+ return createStringIterator;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/String.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/String.js";
+ var checkObjectCoercible = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../checkObjectCoercible.js", "traceur-runtime@0.0.108/src/runtime/polyfills/String.js")).default;
+ var createStringIterator = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./StringIterator.js", "traceur-runtime@0.0.108/src/runtime/polyfills/String.js")).createStringIterator;
+ var $__3 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/String.js")),
+ maybeAddFunctions = $__3.maybeAddFunctions,
+ maybeAddIterator = $__3.maybeAddIterator,
+ registerPolyfill = $__3.registerPolyfill;
+ var $toString = Object.prototype.toString;
+ var $indexOf = String.prototype.indexOf;
+ var $lastIndexOf = String.prototype.lastIndexOf;
+ function startsWith(search) {
+ var string = String(this);
+ if (this == null || $toString.call(search) == '[object RegExp]') {
+ throw TypeError();
+ }
+ var stringLength = string.length;
+ var searchString = String(search);
+ var searchLength = searchString.length;
+ var position = arguments.length > 1 ? arguments[1] : undefined;
+ var pos = position ? Number(position) : 0;
+ if (isNaN(pos)) {
+ pos = 0;
+ }
+ var start = Math.min(Math.max(pos, 0), stringLength);
+ return $indexOf.call(string, searchString, pos) == start;
+ }
+ function endsWith(search) {
+ var string = String(this);
+ if (this == null || $toString.call(search) == '[object RegExp]') {
+ throw TypeError();
+ }
+ var stringLength = string.length;
+ var searchString = String(search);
+ var searchLength = searchString.length;
+ var pos = stringLength;
+ if (arguments.length > 1) {
+ var position = arguments[1];
+ if (position !== undefined) {
+ pos = position ? Number(position) : 0;
+ if (isNaN(pos)) {
+ pos = 0;
+ }
+ }
+ }
+ var end = Math.min(Math.max(pos, 0), stringLength);
+ var start = end - searchLength;
+ if (start < 0) {
+ return false;
+ }
+ return $lastIndexOf.call(string, searchString, start) == start;
+ }
+ function includes(search) {
+ if (this == null) {
+ throw TypeError();
+ }
+ var string = String(this);
+ if (search && $toString.call(search) == '[object RegExp]') {
+ throw TypeError();
+ }
+ var stringLength = string.length;
+ var searchString = String(search);
+ var searchLength = searchString.length;
+ var position = arguments.length > 1 ? arguments[1] : undefined;
+ var pos = position ? Number(position) : 0;
+ if (pos != pos) {
+ pos = 0;
+ }
+ var start = Math.min(Math.max(pos, 0), stringLength);
+ if (searchLength + start > stringLength) {
+ return false;
+ }
+ return $indexOf.call(string, searchString, pos) != -1;
+ }
+ function repeat(count) {
+ if (this == null) {
+ throw TypeError();
+ }
+ var string = String(this);
+ var n = count ? Number(count) : 0;
+ if (isNaN(n)) {
+ n = 0;
+ }
+ if (n < 0 || n == Infinity) {
+ throw RangeError();
+ }
+ if (n == 0) {
+ return '';
+ }
+ var result = '';
+ while (n--) {
+ result += string;
+ }
+ return result;
+ }
+ function codePointAt(position) {
+ if (this == null) {
+ throw TypeError();
+ }
+ var string = String(this);
+ var size = string.length;
+ var index = position ? Number(position) : 0;
+ if (isNaN(index)) {
+ index = 0;
+ }
+ if (index < 0 || index >= size) {
+ return undefined;
+ }
+ var first = string.charCodeAt(index);
+ var second;
+ if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {
+ second = string.charCodeAt(index + 1);
+ if (second >= 0xDC00 && second <= 0xDFFF) {
+ return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
+ }
+ }
+ return first;
+ }
+ function raw(callsite) {
+ var raw = callsite.raw;
+ var len = raw.length >>> 0;
+ if (len === 0)
+ return '';
+ var s = '';
+ var i = 0;
+ while (true) {
+ s += raw[i];
+ if (i + 1 === len)
+ return s;
+ s += arguments[++i];
+ }
+ }
+ function fromCodePoint(_) {
+ var codeUnits = [];
+ var floor = Math.floor;
+ var highSurrogate;
+ var lowSurrogate;
+ var index = -1;
+ var length = arguments.length;
+ if (!length) {
+ return '';
+ }
+ while (++index < length) {
+ var codePoint = Number(arguments[index]);
+ if (!isFinite(codePoint) || codePoint < 0 || codePoint > 0x10FFFF || floor(codePoint) != codePoint) {
+ throw RangeError('Invalid code point: ' + codePoint);
+ }
+ if (codePoint <= 0xFFFF) {
+ codeUnits.push(codePoint);
+ } else {
+ codePoint -= 0x10000;
+ highSurrogate = (codePoint >> 10) + 0xD800;
+ lowSurrogate = (codePoint % 0x400) + 0xDC00;
+ codeUnits.push(highSurrogate, lowSurrogate);
+ }
+ }
+ return String.fromCharCode.apply(null, codeUnits);
+ }
+ function stringPrototypeIterator() {
+ var o = checkObjectCoercible(this);
+ var s = String(o);
+ return createStringIterator(s);
+ }
+ function polyfillString(global) {
+ var String = global.String;
+ maybeAddFunctions(String.prototype, ['codePointAt', codePointAt, 'endsWith', endsWith, 'includes', includes, 'repeat', repeat, 'startsWith', startsWith]);
+ maybeAddFunctions(String, ['fromCodePoint', fromCodePoint, 'raw', raw]);
+ maybeAddIterator(String.prototype, stringPrototypeIterator, Symbol);
+ }
+ registerPolyfill(polyfillString);
+ return {
+ get startsWith() {
+ return startsWith;
+ },
+ get endsWith() {
+ return endsWith;
+ },
+ get includes() {
+ return includes;
+ },
+ get repeat() {
+ return repeat;
+ },
+ get codePointAt() {
+ return codePointAt;
+ },
+ get raw() {
+ return raw;
+ },
+ get fromCodePoint() {
+ return fromCodePoint;
+ },
+ get stringPrototypeIterator() {
+ return stringPrototypeIterator;
+ },
+ get polyfillString() {
+ return polyfillString;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/String.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/ArrayIterator.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/ArrayIterator.js";
+ var $__2 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/ArrayIterator.js")),
+ toObject = $__2.toObject,
+ toUint32 = $__2.toUint32,
+ createIteratorResultObject = $__2.createIteratorResultObject;
+ var ARRAY_ITERATOR_KIND_KEYS = 1;
+ var ARRAY_ITERATOR_KIND_VALUES = 2;
+ var ARRAY_ITERATOR_KIND_ENTRIES = 3;
+ var ArrayIterator = function() {
+ var $__1;
+ function ArrayIterator() {}
+ return ($traceurRuntime.createClass)(ArrayIterator, ($__1 = {}, Object.defineProperty($__1, "next", {
+ value: function() {
+ var iterator = toObject(this);
+ var array = iterator.iteratorObject_;
+ if (!array) {
+ throw new TypeError('Object is not an ArrayIterator');
+ }
+ var index = iterator.arrayIteratorNextIndex_;
+ var itemKind = iterator.arrayIterationKind_;
+ var length = toUint32(array.length);
+ if (index >= length) {
+ iterator.arrayIteratorNextIndex_ = Infinity;
+ return createIteratorResultObject(undefined, true);
+ }
+ iterator.arrayIteratorNextIndex_ = index + 1;
+ if (itemKind == ARRAY_ITERATOR_KIND_VALUES)
+ return createIteratorResultObject(array[index], false);
+ if (itemKind == ARRAY_ITERATOR_KIND_ENTRIES)
+ return createIteratorResultObject([index, array[index]], false);
+ return createIteratorResultObject(index, false);
+ },
+ configurable: true,
+ enumerable: true,
+ writable: true
+ }), Object.defineProperty($__1, Symbol.iterator, {
+ value: function() {
+ return this;
+ },
+ configurable: true,
+ enumerable: true,
+ writable: true
+ }), $__1), {});
+ }();
+ function createArrayIterator(array, kind) {
+ var object = toObject(array);
+ var iterator = new ArrayIterator;
+ iterator.iteratorObject_ = object;
+ iterator.arrayIteratorNextIndex_ = 0;
+ iterator.arrayIterationKind_ = kind;
+ return iterator;
+ }
+ function entries() {
+ return createArrayIterator(this, ARRAY_ITERATOR_KIND_ENTRIES);
+ }
+ function keys() {
+ return createArrayIterator(this, ARRAY_ITERATOR_KIND_KEYS);
+ }
+ function values() {
+ return createArrayIterator(this, ARRAY_ITERATOR_KIND_VALUES);
+ }
+ return {
+ get entries() {
+ return entries;
+ },
+ get keys() {
+ return keys;
+ },
+ get values() {
+ return values;
+ }
+ };
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Array.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Array.js";
+ var $__9 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./ArrayIterator.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Array.js")),
+ entries = $__9.entries,
+ keys = $__9.keys,
+ jsValues = $__9.values;
+ var $__10 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Array.js")),
+ checkIterable = $__10.checkIterable,
+ isCallable = $__10.isCallable,
+ isConstructor = $__10.isConstructor,
+ maybeAddFunctions = $__10.maybeAddFunctions,
+ maybeAddIterator = $__10.maybeAddIterator,
+ registerPolyfill = $__10.registerPolyfill,
+ toInteger = $__10.toInteger,
+ toLength = $__10.toLength,
+ toObject = $__10.toObject;
+ function from(arrLike) {
+ var mapFn = arguments[1];
+ var thisArg = arguments[2];
+ var C = this;
+ var items = toObject(arrLike);
+ var mapping = mapFn !== undefined;
+ var k = 0;
+ var arr,
+ len;
+ if (mapping && !isCallable(mapFn)) {
+ throw TypeError();
+ }
+ if (checkIterable(items)) {
+ arr = isConstructor(C) ? new C() : [];
+ var $__3 = true;
+ var $__4 = false;
+ var $__5 = undefined;
+ try {
+ for (var $__1 = void 0,
+ $__0 = (items)[Symbol.iterator](); !($__3 = ($__1 = $__0.next()).done); $__3 = true) {
+ var item = $__1.value;
+ {
+ if (mapping) {
+ arr[k] = mapFn.call(thisArg, item, k);
+ } else {
+ arr[k] = item;
+ }
+ k++;
+ }
+ }
+ } catch ($__6) {
+ $__4 = true;
+ $__5 = $__6;
+ } finally {
+ try {
+ if (!$__3 && $__0.return != null) {
+ $__0.return();
+ }
+ } finally {
+ if ($__4) {
+ throw $__5;
+ }
+ }
+ }
+ arr.length = k;
+ return arr;
+ }
+ len = toLength(items.length);
+ arr = isConstructor(C) ? new C(len) : new Array(len);
+ for (; k < len; k++) {
+ if (mapping) {
+ arr[k] = typeof thisArg === 'undefined' ? mapFn(items[k], k) : mapFn.call(thisArg, items[k], k);
+ } else {
+ arr[k] = items[k];
+ }
+ }
+ arr.length = len;
+ return arr;
+ }
+ function of() {
+ for (var items = [],
+ $__7 = 0; $__7 < arguments.length; $__7++)
+ items[$__7] = arguments[$__7];
+ var C = this;
+ var len = items.length;
+ var arr = isConstructor(C) ? new C(len) : new Array(len);
+ for (var k = 0; k < len; k++) {
+ arr[k] = items[k];
+ }
+ arr.length = len;
+ return arr;
+ }
+ function fill(value) {
+ var start = arguments[1] !== (void 0) ? arguments[1] : 0;
+ var end = arguments[2];
+ var object = toObject(this);
+ var len = toLength(object.length);
+ var fillStart = toInteger(start);
+ var fillEnd = end !== undefined ? toInteger(end) : len;
+ fillStart = fillStart < 0 ? Math.max(len + fillStart, 0) : Math.min(fillStart, len);
+ fillEnd = fillEnd < 0 ? Math.max(len + fillEnd, 0) : Math.min(fillEnd, len);
+ while (fillStart < fillEnd) {
+ object[fillStart] = value;
+ fillStart++;
+ }
+ return object;
+ }
+ function find(predicate) {
+ var thisArg = arguments[1];
+ return findHelper(this, predicate, thisArg);
+ }
+ function findIndex(predicate) {
+ var thisArg = arguments[1];
+ return findHelper(this, predicate, thisArg, true);
+ }
+ function findHelper(self, predicate) {
+ var thisArg = arguments[2];
+ var returnIndex = arguments[3] !== (void 0) ? arguments[3] : false;
+ var object = toObject(self);
+ var len = toLength(object.length);
+ if (!isCallable(predicate)) {
+ throw TypeError();
+ }
+ for (var i = 0; i < len; i++) {
+ var value = object[i];
+ if (predicate.call(thisArg, value, i, object)) {
+ return returnIndex ? i : value;
+ }
+ }
+ return returnIndex ? -1 : undefined;
+ }
+ function polyfillArray(global) {
+ var $__8 = global,
+ Array = $__8.Array,
+ Object = $__8.Object,
+ Symbol = $__8.Symbol;
+ var values = jsValues;
+ if (Symbol && Symbol.iterator && Array.prototype[Symbol.iterator]) {
+ values = Array.prototype[Symbol.iterator];
+ }
+ maybeAddFunctions(Array.prototype, ['entries', entries, 'keys', keys, 'values', values, 'fill', fill, 'find', find, 'findIndex', findIndex]);
+ maybeAddFunctions(Array, ['from', from, 'of', of]);
+ maybeAddIterator(Array.prototype, values, Symbol);
+ maybeAddIterator(Object.getPrototypeOf([].values()), function() {
+ return this;
+ }, Symbol);
+ }
+ registerPolyfill(polyfillArray);
+ return {
+ get from() {
+ return from;
+ },
+ get of() {
+ return of;
+ },
+ get fill() {
+ return fill;
+ },
+ get find() {
+ return find;
+ },
+ get findIndex() {
+ return findIndex;
+ },
+ get polyfillArray() {
+ return polyfillArray;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Array.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/assign.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/assign.js";
+ var keys = Object.keys;
+ function assign(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+ var props = source == null ? [] : keys(source);
+ var p = void 0,
+ length = props.length;
+ for (p = 0; p < length; p++) {
+ var name = props[p];
+ target[name] = source[name];
+ }
+ }
+ return target;
+ }
+ var $__default = assign;
+ return {get default() {
+ return $__default;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Object.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Object.js";
+ var $__2 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Object.js")),
+ maybeAddFunctions = $__2.maybeAddFunctions,
+ registerPolyfill = $__2.registerPolyfill;
+ var assign = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./assign.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Object.js")).default;
+ var $__0 = Object,
+ defineProperty = $__0.defineProperty,
+ getOwnPropertyDescriptor = $__0.getOwnPropertyDescriptor,
+ getOwnPropertyNames = $__0.getOwnPropertyNames;
+ function is(left, right) {
+ if (left === right)
+ return left !== 0 || 1 / left === 1 / right;
+ return left !== left && right !== right;
+ }
+ function mixin(target, source) {
+ var props = getOwnPropertyNames(source);
+ var p,
+ descriptor,
+ length = props.length;
+ for (p = 0; p < length; p++) {
+ var name = props[p];
+ descriptor = getOwnPropertyDescriptor(source, props[p]);
+ defineProperty(target, props[p], descriptor);
+ }
+ return target;
+ }
+ function polyfillObject(global) {
+ var Object = global.Object;
+ maybeAddFunctions(Object, ['assign', assign, 'is', is, 'mixin', mixin]);
+ }
+ registerPolyfill(polyfillObject);
+ return {
+ get assign() {
+ return assign;
+ },
+ get is() {
+ return is;
+ },
+ get mixin() {
+ return mixin;
+ },
+ get polyfillObject() {
+ return polyfillObject;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Object.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Number.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Number.js";
+ var $__1 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Number.js")),
+ isNumber = $__1.isNumber,
+ maybeAddConsts = $__1.maybeAddConsts,
+ maybeAddFunctions = $__1.maybeAddFunctions,
+ registerPolyfill = $__1.registerPolyfill,
+ toInteger = $__1.toInteger;
+ var $abs = Math.abs;
+ var $isFinite = isFinite;
+ var $isNaN = isNaN;
+ var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;
+ var MIN_SAFE_INTEGER = -Math.pow(2, 53) + 1;
+ var EPSILON = Math.pow(2, -52);
+ function NumberIsFinite(number) {
+ return isNumber(number) && $isFinite(number);
+ }
+ function isInteger(number) {
+ return NumberIsFinite(number) && toInteger(number) === number;
+ }
+ function NumberIsNaN(number) {
+ return isNumber(number) && $isNaN(number);
+ }
+ function isSafeInteger(number) {
+ if (NumberIsFinite(number)) {
+ var integral = toInteger(number);
+ if (integral === number)
+ return $abs(integral) <= MAX_SAFE_INTEGER;
+ }
+ return false;
+ }
+ function polyfillNumber(global) {
+ var Number = global.Number;
+ maybeAddConsts(Number, ['MAX_SAFE_INTEGER', MAX_SAFE_INTEGER, 'MIN_SAFE_INTEGER', MIN_SAFE_INTEGER, 'EPSILON', EPSILON]);
+ maybeAddFunctions(Number, ['isFinite', NumberIsFinite, 'isInteger', isInteger, 'isNaN', NumberIsNaN, 'isSafeInteger', isSafeInteger]);
+ }
+ registerPolyfill(polyfillNumber);
+ return {
+ get MAX_SAFE_INTEGER() {
+ return MAX_SAFE_INTEGER;
+ },
+ get MIN_SAFE_INTEGER() {
+ return MIN_SAFE_INTEGER;
+ },
+ get EPSILON() {
+ return EPSILON;
+ },
+ get isFinite() {
+ return NumberIsFinite;
+ },
+ get isInteger() {
+ return isInteger;
+ },
+ get isNaN() {
+ return NumberIsNaN;
+ },
+ get isSafeInteger() {
+ return isSafeInteger;
+ },
+ get polyfillNumber() {
+ return polyfillNumber;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Number.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/fround.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/fround.js";
+ var $isFinite = isFinite;
+ var $isNaN = isNaN;
+ var $__0 = Math,
+ LN2 = $__0.LN2,
+ abs = $__0.abs,
+ floor = $__0.floor,
+ log = $__0.log,
+ min = $__0.min,
+ pow = $__0.pow;
+ function packIEEE754(v, ebits, fbits) {
+ var bias = (1 << (ebits - 1)) - 1,
+ s,
+ e,
+ f,
+ ln,
+ i,
+ bits,
+ str,
+ bytes;
+ function roundToEven(n) {
+ var w = floor(n),
+ f = n - w;
+ if (f < 0.5)
+ return w;
+ if (f > 0.5)
+ return w + 1;
+ return w % 2 ? w + 1 : w;
+ }
+ if (v !== v) {
+ e = (1 << ebits) - 1;
+ f = pow(2, fbits - 1);
+ s = 0;
+ } else if (v === Infinity || v === -Infinity) {
+ e = (1 << ebits) - 1;
+ f = 0;
+ s = (v < 0) ? 1 : 0;
+ } else if (v === 0) {
+ e = 0;
+ f = 0;
+ s = (1 / v === -Infinity) ? 1 : 0;
+ } else {
+ s = v < 0;
+ v = abs(v);
+ if (v >= pow(2, 1 - bias)) {
+ e = min(floor(log(v) / LN2), 1023);
+ f = roundToEven(v / pow(2, e) * pow(2, fbits));
+ if (f / pow(2, fbits) >= 2) {
+ e = e + 1;
+ f = 1;
+ }
+ if (e > bias) {
+ e = (1 << ebits) - 1;
+ f = 0;
+ } else {
+ e = e + bias;
+ f = f - pow(2, fbits);
+ }
+ } else {
+ e = 0;
+ f = roundToEven(v / pow(2, 1 - bias - fbits));
+ }
+ }
+ bits = [];
+ for (i = fbits; i; i -= 1) {
+ bits.push(f % 2 ? 1 : 0);
+ f = floor(f / 2);
+ }
+ for (i = ebits; i; i -= 1) {
+ bits.push(e % 2 ? 1 : 0);
+ e = floor(e / 2);
+ }
+ bits.push(s ? 1 : 0);
+ bits.reverse();
+ str = bits.join('');
+ bytes = [];
+ while (str.length) {
+ bytes.push(parseInt(str.substring(0, 8), 2));
+ str = str.substring(8);
+ }
+ return bytes;
+ }
+ function unpackIEEE754(bytes, ebits, fbits) {
+ var bits = [],
+ i,
+ j,
+ b,
+ str,
+ bias,
+ s,
+ e,
+ f;
+ for (i = bytes.length; i; i -= 1) {
+ b = bytes[i - 1];
+ for (j = 8; j; j -= 1) {
+ bits.push(b % 2 ? 1 : 0);
+ b = b >> 1;
+ }
+ }
+ bits.reverse();
+ str = bits.join('');
+ bias = (1 << (ebits - 1)) - 1;
+ s = parseInt(str.substring(0, 1), 2) ? -1 : 1;
+ e = parseInt(str.substring(1, 1 + ebits), 2);
+ f = parseInt(str.substring(1 + ebits), 2);
+ if (e === (1 << ebits) - 1) {
+ return f !== 0 ? NaN : s * Infinity;
+ } else if (e > 0) {
+ return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
+ } else if (f !== 0) {
+ return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
+ } else {
+ return s < 0 ? -0 : 0;
+ }
+ }
+ function unpackF32(b) {
+ return unpackIEEE754(b, 8, 23);
+ }
+ function packF32(v) {
+ return packIEEE754(v, 8, 23);
+ }
+ function fround(x) {
+ if (x === 0 || !$isFinite(x) || $isNaN(x)) {
+ return x;
+ }
+ return unpackF32(packF32(Number(x)));
+ }
+ return {get fround() {
+ return fround;
+ }};
+});
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/Math.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/Math.js";
+ var jsFround = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./fround.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Math.js")).fround;
+ var $__3 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/Math.js")),
+ maybeAddFunctions = $__3.maybeAddFunctions,
+ registerPolyfill = $__3.registerPolyfill,
+ toUint32 = $__3.toUint32;
+ var $isFinite = isFinite;
+ var $isNaN = isNaN;
+ var $__0 = Math,
+ abs = $__0.abs,
+ ceil = $__0.ceil,
+ exp = $__0.exp,
+ floor = $__0.floor,
+ log = $__0.log,
+ pow = $__0.pow,
+ sqrt = $__0.sqrt;
+ function clz32(x) {
+ x = toUint32(+x);
+ if (x == 0)
+ return 32;
+ var result = 0;
+ if ((x & 0xFFFF0000) === 0) {
+ x <<= 16;
+ result += 16;
+ }
+ ;
+ if ((x & 0xFF000000) === 0) {
+ x <<= 8;
+ result += 8;
+ }
+ ;
+ if ((x & 0xF0000000) === 0) {
+ x <<= 4;
+ result += 4;
+ }
+ ;
+ if ((x & 0xC0000000) === 0) {
+ x <<= 2;
+ result += 2;
+ }
+ ;
+ if ((x & 0x80000000) === 0) {
+ x <<= 1;
+ result += 1;
+ }
+ ;
+ return result;
+ }
+ function imul(x, y) {
+ x = toUint32(+x);
+ y = toUint32(+y);
+ var xh = (x >>> 16) & 0xffff;
+ var xl = x & 0xffff;
+ var yh = (y >>> 16) & 0xffff;
+ var yl = y & 0xffff;
+ return xl * yl + (((xh * yl + xl * yh) << 16) >>> 0) | 0;
+ }
+ function sign(x) {
+ x = +x;
+ if (x > 0)
+ return 1;
+ if (x < 0)
+ return -1;
+ return x;
+ }
+ function log10(x) {
+ return log(x) * 0.434294481903251828;
+ }
+ function log2(x) {
+ return log(x) * 1.442695040888963407;
+ }
+ function log1p(x) {
+ x = +x;
+ if (x < -1 || $isNaN(x)) {
+ return NaN;
+ }
+ if (x === 0 || x === Infinity) {
+ return x;
+ }
+ if (x === -1) {
+ return -Infinity;
+ }
+ var result = 0;
+ var n = 50;
+ if (x < 0 || x > 1) {
+ return log(1 + x);
+ }
+ for (var i = 1; i < n; i++) {
+ if ((i % 2) === 0) {
+ result -= pow(x, i) / i;
+ } else {
+ result += pow(x, i) / i;
+ }
+ }
+ return result;
+ }
+ function expm1(x) {
+ x = +x;
+ if (x === -Infinity) {
+ return -1;
+ }
+ if (!$isFinite(x) || x === 0) {
+ return x;
+ }
+ return exp(x) - 1;
+ }
+ function cosh(x) {
+ x = +x;
+ if (x === 0) {
+ return 1;
+ }
+ if ($isNaN(x)) {
+ return NaN;
+ }
+ if (!$isFinite(x)) {
+ return Infinity;
+ }
+ if (x < 0) {
+ x = -x;
+ }
+ if (x > 21) {
+ return exp(x) / 2;
+ }
+ return (exp(x) + exp(-x)) / 2;
+ }
+ function sinh(x) {
+ x = +x;
+ if (!$isFinite(x) || x === 0) {
+ return x;
+ }
+ return (exp(x) - exp(-x)) / 2;
+ }
+ function tanh(x) {
+ x = +x;
+ if (x === 0)
+ return x;
+ if (!$isFinite(x))
+ return sign(x);
+ var exp1 = exp(x);
+ var exp2 = exp(-x);
+ return (exp1 - exp2) / (exp1 + exp2);
+ }
+ function acosh(x) {
+ x = +x;
+ if (x < 1)
+ return NaN;
+ if (!$isFinite(x))
+ return x;
+ return log(x + sqrt(x + 1) * sqrt(x - 1));
+ }
+ function asinh(x) {
+ x = +x;
+ if (x === 0 || !$isFinite(x))
+ return x;
+ if (x > 0)
+ return log(x + sqrt(x * x + 1));
+ return -log(-x + sqrt(x * x + 1));
+ }
+ function atanh(x) {
+ x = +x;
+ if (x === -1) {
+ return -Infinity;
+ }
+ if (x === 1) {
+ return Infinity;
+ }
+ if (x === 0) {
+ return x;
+ }
+ if ($isNaN(x) || x < -1 || x > 1) {
+ return NaN;
+ }
+ return 0.5 * log((1 + x) / (1 - x));
+ }
+ function hypot(x, y) {
+ var length = arguments.length;
+ var args = new Array(length);
+ var max = 0;
+ for (var i = 0; i < length; i++) {
+ var n = arguments[i];
+ n = +n;
+ if (n === Infinity || n === -Infinity)
+ return Infinity;
+ n = abs(n);
+ if (n > max)
+ max = n;
+ args[i] = n;
+ }
+ if (max === 0)
+ max = 1;
+ var sum = 0;
+ var compensation = 0;
+ for (var i = 0; i < length; i++) {
+ var n = args[i] / max;
+ var summand = n * n - compensation;
+ var preliminary = sum + summand;
+ compensation = (preliminary - sum) - summand;
+ sum = preliminary;
+ }
+ return sqrt(sum) * max;
+ }
+ function trunc(x) {
+ x = +x;
+ if (x > 0)
+ return floor(x);
+ if (x < 0)
+ return ceil(x);
+ return x;
+ }
+ var fround,
+ f32;
+ if (typeof Float32Array === 'function') {
+ f32 = new Float32Array(1);
+ fround = function(x) {
+ f32[0] = Number(x);
+ return f32[0];
+ };
+ } else {
+ fround = jsFround;
+ }
+ function cbrt(x) {
+ x = +x;
+ if (x === 0)
+ return x;
+ var negate = x < 0;
+ if (negate)
+ x = -x;
+ var result = pow(x, 1 / 3);
+ return negate ? -result : result;
+ }
+ function polyfillMath(global) {
+ var Math = global.Math;
+ maybeAddFunctions(Math, ['acosh', acosh, 'asinh', asinh, 'atanh', atanh, 'cbrt', cbrt, 'clz32', clz32, 'cosh', cosh, 'expm1', expm1, 'fround', fround, 'hypot', hypot, 'imul', imul, 'log10', log10, 'log1p', log1p, 'log2', log2, 'sign', sign, 'sinh', sinh, 'tanh', tanh, 'trunc', trunc]);
+ }
+ registerPolyfill(polyfillMath);
+ return {
+ get clz32() {
+ return clz32;
+ },
+ get imul() {
+ return imul;
+ },
+ get sign() {
+ return sign;
+ },
+ get log10() {
+ return log10;
+ },
+ get log2() {
+ return log2;
+ },
+ get log1p() {
+ return log1p;
+ },
+ get expm1() {
+ return expm1;
+ },
+ get cosh() {
+ return cosh;
+ },
+ get sinh() {
+ return sinh;
+ },
+ get tanh() {
+ return tanh;
+ },
+ get acosh() {
+ return acosh;
+ },
+ get asinh() {
+ return asinh;
+ },
+ get atanh() {
+ return atanh;
+ },
+ get hypot() {
+ return hypot;
+ },
+ get trunc() {
+ return trunc;
+ },
+ get fround() {
+ return fround;
+ },
+ get cbrt() {
+ return cbrt;
+ },
+ get polyfillMath() {
+ return polyfillMath;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/Math.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js";
+ var $__5 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")),
+ createPrivateSymbol = $__5.createPrivateSymbol,
+ deletePrivate = $__5.deletePrivate,
+ getPrivate = $__5.getPrivate,
+ hasPrivate = $__5.hasPrivate,
+ setPrivate = $__5.setPrivate;
+ var $__6 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")),
+ deleteFrozen = $__6.deleteFrozen,
+ getFrozen = $__6.getFrozen,
+ hasFrozen = $__6.hasFrozen,
+ setFrozen = $__6.setFrozen;
+ var $__7 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")),
+ isObject = $__7.isObject,
+ registerPolyfill = $__7.registerPolyfill;
+ var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js")).default;
+ var $__2 = Object,
+ defineProperty = $__2.defineProperty,
+ getOwnPropertyDescriptor = $__2.getOwnPropertyDescriptor,
+ isExtensible = $__2.isExtensible;
+ var $TypeError = TypeError;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ var sentinel = {};
+ var WeakMap = function() {
+ function WeakMap() {
+ this.name_ = createPrivateSymbol();
+ this.frozenData_ = [];
+ }
+ return ($traceurRuntime.createClass)(WeakMap, {
+ set: function(key, value) {
+ if (!isObject(key))
+ throw new $TypeError('key must be an object');
+ if (!isExtensible(key)) {
+ setFrozen(this.frozenData_, key, value);
+ } else {
+ setPrivate(key, this.name_, value);
+ }
+ return this;
+ },
+ get: function(key) {
+ if (!isObject(key))
+ return undefined;
+ if (!isExtensible(key)) {
+ return getFrozen(this.frozenData_, key);
+ }
+ return getPrivate(key, this.name_);
+ },
+ delete: function(key) {
+ if (!isObject(key))
+ return false;
+ if (!isExtensible(key)) {
+ return deleteFrozen(this.frozenData_, key);
+ }
+ return deletePrivate(key, this.name_);
+ },
+ has: function(key) {
+ if (!isObject(key))
+ return false;
+ if (!isExtensible(key)) {
+ return hasFrozen(this.frozenData_, key);
+ }
+ return hasPrivate(key, this.name_);
+ }
+ }, {});
+ }();
+ function needsPolyfill(global) {
+ var $__4 = global,
+ WeakMap = $__4.WeakMap,
+ Symbol = $__4.Symbol;
+ if (!WeakMap || !hasNativeSymbol()) {
+ return true;
+ }
+ try {
+ var o = {};
+ var wm = new WeakMap([[o, false]]);
+ return wm.get(o);
+ } catch (e) {
+ return false;
+ }
+ }
+ function polyfillWeakMap(global) {
+ if (needsPolyfill(global)) {
+ global.WeakMap = WeakMap;
+ }
+ }
+ registerPolyfill(polyfillWeakMap);
+ return {
+ get WeakMap() {
+ return WeakMap;
+ },
+ get polyfillWeakMap() {
+ return polyfillWeakMap;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/WeakMap.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js";
+ var $__5 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../private.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")),
+ createPrivateSymbol = $__5.createPrivateSymbol,
+ deletePrivate = $__5.deletePrivate,
+ getPrivate = $__5.getPrivate,
+ hasPrivate = $__5.hasPrivate,
+ setPrivate = $__5.setPrivate;
+ var $__6 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../frozen-data.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")),
+ deleteFrozen = $__6.deleteFrozen,
+ getFrozen = $__6.getFrozen,
+ setFrozen = $__6.setFrozen;
+ var $__7 = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")),
+ isObject = $__7.isObject,
+ registerPolyfill = $__7.registerPolyfill;
+ var hasNativeSymbol = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("../has-native-symbols.js", "traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js")).default;
+ var $__2 = Object,
+ defineProperty = $__2.defineProperty,
+ isExtensible = $__2.isExtensible;
+ var $TypeError = TypeError;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ var WeakSet = function() {
+ function WeakSet() {
+ this.name_ = createPrivateSymbol();
+ this.frozenData_ = [];
+ }
+ return ($traceurRuntime.createClass)(WeakSet, {
+ add: function(value) {
+ if (!isObject(value))
+ throw new $TypeError('value must be an object');
+ if (!isExtensible(value)) {
+ setFrozen(this.frozenData_, value, value);
+ } else {
+ setPrivate(value, this.name_, true);
+ }
+ return this;
+ },
+ delete: function(value) {
+ if (!isObject(value))
+ return false;
+ if (!isExtensible(value)) {
+ return deleteFrozen(this.frozenData_, value);
+ }
+ return deletePrivate(value, this.name_);
+ },
+ has: function(value) {
+ if (!isObject(value))
+ return false;
+ if (!isExtensible(value)) {
+ return getFrozen(this.frozenData_, value) === value;
+ }
+ return hasPrivate(value, this.name_);
+ }
+ }, {});
+ }();
+ function needsPolyfill(global) {
+ var $__4 = global,
+ WeakSet = $__4.WeakSet,
+ Symbol = $__4.Symbol;
+ if (!WeakSet || !hasNativeSymbol()) {
+ return true;
+ }
+ try {
+ var o = {};
+ var wm = new WeakSet([[o]]);
+ return !wm.has(o);
+ } catch (e) {
+ return false;
+ }
+ }
+ function polyfillWeakSet(global) {
+ if (needsPolyfill(global)) {
+ global.WeakSet = WeakSet;
+ }
+ }
+ registerPolyfill(polyfillWeakSet);
+ return {
+ get WeakSet() {
+ return WeakSet;
+ },
+ get polyfillWeakSet() {
+ return polyfillWeakSet;
+ }
+ };
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/WeakSet.js" + '');
+$traceurRuntime.registerModule("traceur-runtime@0.0.108/src/runtime/polyfills/polyfills.js", [], function() {
+ "use strict";
+ var __moduleName = "traceur-runtime@0.0.108/src/runtime/polyfills/polyfills.js";
+ var polyfillAll = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./utils.js", "traceur-runtime@0.0.108/src/runtime/polyfills/polyfills.js")).polyfillAll;
+ polyfillAll(Reflect.global);
+ var setupGlobals = $traceurRuntime.setupGlobals;
+ $traceurRuntime.setupGlobals = function(global) {
+ setupGlobals(global);
+ polyfillAll(global);
+ };
+ return {};
+});
+$traceurRuntime.getModule("traceur-runtime@0.0.108/src/runtime/polyfills/polyfills.js" + '');

Powered by Google App Engine
This is Rietveld 408576698