bolt-engine/jspm_packages/traceur.js
2015-01-22 22:56:00 +03:30

19 lines
564 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(a){"use strict";function b(a){return{configurable:!0,enumerable:!1,value:a,writable:!0}}function c(){return"__$"+Math.floor(1e9*Math.random())+"$"+ ++S+"$__"}function d(a){return X[a]}function e(){var a=c();return X[a]=!0,a}function f(a){return"object"==typeof a&&a instanceof i}function g(a){return f(a)?"symbol":typeof a}function h(a){var b=new i(a);if(!(this instanceof h))return b;throw new TypeError("Symbol cannot be new'ed")}function i(a){var b=c();I(this,V,{value:this}),I(this,T,{value:b}),I(this,U,{value:a}),k(this),W[b]=this}function j(a){var b=a[Y];return b&&b.self===a?b:Q(a)?($.hash.value=_++,$.self.value=a,Z.value=G(null,$),I(a,Y,Z),Z.value):void 0}function k(a){return j(a),J.apply(this,arguments)}function l(a){return j(a),O.apply(this,arguments)}function m(a){return j(a),P.apply(this,arguments)}function n(a){return W[a]||X[a]}function o(a){return f(a)?a[T]:a}function p(a){for(var b=[],c=0;c<a.length;c++)n(a[c])||b.push(a[c]);return b}function q(a){return p(L(a))}function r(a){return p(M(a))}function s(a){for(var b=[],c=L(a),d=0;d<c.length;d++){var e=W[c[d]];e&&b.push(e)}return b}function t(a,b){return K(a,o(b))}function u(a){return N.call(this,o(a))}function v(b){return a.traceur&&a.traceur.options[b]}function w(a,b,c){return f(b)&&(b=b[T]),I(a,b,c),a}function x(a){I(a,"defineProperty",{value:w}),I(a,"getOwnPropertyNames",{value:q}),I(a,"getOwnPropertyDescriptor",{value:t}),I(a.prototype,"hasOwnProperty",{value:u}),I(a,"freeze",{value:k}),I(a,"preventExtensions",{value:l}),I(a,"seal",{value:m}),I(a,"keys",{value:r})}function y(a){for(var b=1;b<arguments.length;b++)for(var c=L(arguments[b]),d=0;d<c.length;d++){var e=c[d];n(e)||!function(b,c){I(a,c,{get:function(){return b[c]},enumerable:!0})}(arguments[b],c[d])}return a}function z(a){return null!=a&&("object"==typeof a||"function"==typeof a)}function A(a){if(null==a)throw F();return E(a)}function B(a){if(null==a)throw new TypeError("Value cannot be converted to an Object");return a}function C(a,b){a.Symbol||(a.Symbol=b,Object.getOwnPropertySymbols=s),a.Symbol.iterator||(a.Symbol.iterator=b("Symbol.iterator"))}function D(a){C(a,h),a.Reflect=a.Reflect||{},a.Reflect.global=a.Reflect.global||a,x(a.Object)}if(!a.$traceurRuntime){var E=Object,F=TypeError,G=E.create,H=E.defineProperties,I=E.defineProperty,J=E.freeze,K=E.getOwnPropertyDescriptor,L=E.getOwnPropertyNames,M=E.keys,N=E.prototype.hasOwnProperty,O=(E.prototype.toString,Object.preventExtensions),P=Object.seal,Q=Object.isExtensible,R=b,S=0,T=c(),U=c(),V=c(),W=G(null),X=G(null);I(h.prototype,"constructor",b(h)),I(h.prototype,"toString",R(function(){var a=this[V];if(!v("symbols"))return a[T];if(!a)throw TypeError("Conversion from symbol to string");var b=a[U];return void 0===b&&(b=""),"Symbol("+b+")"})),I(h.prototype,"valueOf",R(function(){var a=this[V];if(!a)throw TypeError("Conversion from symbol to string");return v("symbols")?a:a[T]})),I(i.prototype,"constructor",b(h)),I(i.prototype,"toString",{value:h.prototype.toString,enumerable:!1}),I(i.prototype,"valueOf",{value:h.prototype.valueOf,enumerable:!1});var Y=e(),Z={value:void 0},$={hash:{value:void 0},self:{value:void 0}},_=0;k(i.prototype),D(a),a.$traceurRuntime={checkObjectCoercible:B,createPrivateName:e,defineProperties:H,defineProperty:I,exportStar:y,getOwnHashObject:j,getOwnPropertyDescriptor:K,getOwnPropertyNames:L,isObject:z,isPrivateName:d,isSymbolString:n,keys:M,setupGlobals:D,toObject:A,toProperty:o,"typeof":g}}}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),function(){"use strict";function a(a,c){function d(a){return"/"===a.slice(-1)}function e(a){return"/"===a[0]}function f(a){return"."===a[0]}return b=b||"undefined"!=typeof require&&require("path"),d(c)||e(c)?void 0:require(f(c)?b.resolve(b.dirname(a),c):c)}var b;$traceurRuntime.require=a}(),function(){"use strict";function a(){for(var a,b=[],c=0,d=0;d<arguments.length;d++){var e=$traceurRuntime.checkObjectCoercible(arguments[d]);if("function"!=typeof e[$traceurRuntime.toProperty(Symbol.iterator)])throw new TypeError("Cannot spread non-iterable object.");for(var f=e[$traceurRuntime.toProperty(Symbol.iterator)]();!(a=f.next()).done;)b[c++]=a.value}return b}$traceurRuntime.spread=a}(),function(){"use strict";function a(a,b){var c=p(a);do{var d=o(c,b);if(d)return d;c=p(c)}while(c);return void 0}function b(a){return a.__proto__}function c(a,b,c,e){return d(a,b,c).apply(a,e)}function d(b,c,d){var e=a(c,d);return e?e.get?e.get.call(b):e.value:void 0}function e(b,c,d,e){var f=a(c,d);if(f&&f.set)return f.set.call(b,e),e;throw k("super has no setter '"+d+"'.")}function f(a){for(var b={},c=r(a),d=0;d<c.length;d++){var e=c[d];b[e]=o(a,e)}for(var f=s(a),d=0;d<f.length;d++){var g=f[d];b[$traceurRuntime.toProperty(g)]=o(a,$traceurRuntime.toProperty(g))}return b}function g(a,b,c,d){return n(b,"constructor",{value:a,configurable:!0,enumerable:!1,writable:!0}),arguments.length>3?("function"==typeof d&&(a.__proto__=d),a.prototype=l(h(d),f(b))):a.prototype=b,n(a,"prototype",{configurable:!1,writable:!1}),m(a,f(c))}function h(a){if("function"==typeof a){var b=a.prototype;if(j(b)===b||null===b)return a.prototype;throw new k("super prototype must be an Object or null")}if(null===a)return null;throw new k("Super expression must either be null or a function, not "+typeof a+".")}function i(a,b,d){null!==p(b)&&c(a,b,"constructor",d)}var j=Object,k=TypeError,l=j.create,m=$traceurRuntime.defineProperties,n=$traceurRuntime.defineProperty,o=$traceurRuntime.getOwnPropertyDescriptor,p=($traceurRuntime.getOwnPropertyNames,Object.getPrototypeOf),q=Object,r=q.getOwnPropertyNames,s=q.getOwnPropertySymbols;$traceurRuntime.createClass=g,$traceurRuntime.defaultSuperCall=i,$traceurRuntime.superCall=c,$traceurRuntime.superConstructor=b,$traceurRuntime.superGet=d,$traceurRuntime.superSet=e}(),function(){"use strict";function a(a){return{configurable:!0,enumerable:!1,value:a,writable:!0}}function b(a){return new Error("Traceur compiler bug: invalid state in state machine: "+a)}function c(){this.state=0,this.GState=r,this.storedException=void 0,this.finallyFallThrough=void 0,this.sent_=void 0,this.returnValue=void 0,this.tryStack_=[]}function d(a,b,c,d){switch(a.GState){case s:throw new Error('"'+c+'" on executing generator');case u:if("next"==c)return{value:void 0,done:!0};throw d;case r:if("throw"===c)throw a.GState=u,d;if(void 0!==d)throw q("Sent value to newborn generator");case t:a.GState=s,a.action=c,a.sent=d;var e=b(a),f=e===a;return f&&(e=a.returnValue),a.GState=f?u:t,{value:e,done:f}}}function e(){}function f(){}function g(a,b,d){var e=k(a,d),f=new c,g=p(b.prototype);return g[x]=f,g[y]=e,g}function h(a){return a.prototype=p(f.prototype),a.__proto__=f,a}function i(){c.call(this),this.err=void 0;var a=this;a.result=new Promise(function(b,c){a.resolve=b,a.reject=c})}function j(a,b){var c=k(a,b),d=new i;return d.createCallback=function(a){return function(b){d.state=a,d.value=b,c(d)}},d.errback=function(a){l(d,a),c(d)},c(d),d.result}function k(a,b){return function(c){for(;;)try{return a.call(b,c)}catch(d){l(c,d)}}}function l(a,b){a.storedException=b;var c=a.tryStack_[a.tryStack_.length-1];return c?(a.state=void 0!==c.catch?c.catch:c.finally,void(void 0!==c.finallyFallThrough&&(a.finallyFallThrough=c.finallyFallThrough))):void a.handleException(b)}if("object"!=typeof $traceurRuntime)throw new Error("traceur runtime not found.");var m=$traceurRuntime.createPrivateName,n=$traceurRuntime.defineProperties,o=$traceurRuntime.defineProperty,p=Object.create,q=TypeError,r=0,s=1,t=2,u=3,v=-2,w=-3;c.prototype={pushTry:function(a,b){if(null!==b){for(var c=null,d=this.tryStack_.length-1;d>=0;d--)if(void 0!==this.tryStack_[d].catch){c=this.tryStack_[d].catch;break}null===c&&(c=w),this.tryStack_.push({"finally":b,finallyFallThrough:c})}null!==a&&this.tryStack_.push({"catch":a})},popTry:function(){this.tryStack_.pop()},get sent(){return this.maybeThrow(),this.sent_},set sent(a){this.sent_=a},get sentIgnoreThrow(){return this.sent_},maybeThrow:function(){if("throw"===this.action)throw this.action="next",this.sent_},end:function(){switch(this.state){case v:return this;case w:throw this.storedException;default:throw b(this.state)}},handleException:function(a){throw this.GState=u,this.state=v,a}};var x=m(),y=m();e.prototype=f,o(f,"constructor",a(e)),f.prototype={constructor:f,next:function(a){return d(this[x],this[y],"next",a)},"throw":function(a){return d(this[x],this[y],"throw",a)}},n(f.prototype,{constructor:{enumerable:!1},next:{enumerable:!1},"throw":{enumerable:!1}}),Object.defineProperty(f.prototype,Symbol.iterator,a(function(){return this})),i.prototype=p(c.prototype),i.prototype.end=function(){switch(this.state){case v:this.resolve(this.returnValue);break;case w:this.reject(this.storedException);break;default:this.reject(b(this.state))}},i.prototype.handleException=function(){this.state=w},$traceurRuntime.asyncWrap=j,$traceurRuntime.initGeneratorFunction=h,$traceurRuntime.createGeneratorInstance=g}(),function(){function a(a,b,c,d,e,f,g){var h=[];return a&&h.push(a,":"),c&&(h.push("//"),b&&h.push(b,"@"),h.push(c),d&&h.push(":",d)),e&&h.push(e),f&&h.push("?",f),g&&h.push("#",g),h.join("")}function b(a){return a.match(h)}function c(a){if("/"===a)return"/";for(var b="/"===a[0]?"/":"",c="/"===a.slice(-1)?"/":"",d=a.split("/"),e=[],f=0,g=0;g<d.length;g++){var h=d[g];switch(h){case"":case".":break;case"..":e.length?e.pop():f++;break;default:e.push(h)}}if(!b){for(;f-->0;)e.unshift("..");0===e.length&&e.push(".")}return b+e.join("/")+c}function d(b){var d=b[i.PATH]||"";return d=c(d),b[i.PATH]=d,a(b[i.SCHEME],b[i.USER_INFO],b[i.DOMAIN],b[i.PORT],b[i.PATH],b[i.QUERY_DATA],b[i.FRAGMENT])}function e(a){var c=b(a);return d(c)}function f(a,c){var e=b(c),f=b(a);if(e[i.SCHEME])return d(e);e[i.SCHEME]=f[i.SCHEME];for(var g=i.SCHEME;g<=i.PORT;g++)e[g]||(e[g]=f[g]);if("/"==e[i.PATH][0])return d(e);var h=f[i.PATH],j=h.lastIndexOf("/");return h=h.slice(0,j+1)+e[i.PATH],e[i.PATH]=h,d(e)}function g(a){if(!a)return!1;if("/"===a[0])return!0;var c=b(a);return c[i.SCHEME]?!0:!1}var h=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),i={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};$traceurRuntime.canonicalizeUrl=e,$traceurRuntime.isAbsolute=g,$traceurRuntime.removeDotSegments=c,$traceurRuntime.resolveUrl=f}(),function(){"use strict";function a(a){for(var b=[],e=1;e<arguments.length;e++)b[e-1]=arguments[e];var f=d,g=$traceurRuntime.getOwnHashObject(a).hash;f[g]||(f[g]=Object.create(null)),f=f[g];for(var h=0;h<b.length-1;h++)g=$traceurRuntime.getOwnHashObject(b[h]).hash,f[g]||(f[g]=Object.create(null)),f=f[g];var i=b[b.length-1];return g=$traceurRuntime.getOwnHashObject(i).hash,f[g]||(f[g]=new c(a,b)),f[g]}var b={any:{name:"any"},"boolean":{name:"boolean"},number:{name:"number"},string:{name:"string"},symbol:{name:"symbol"},"void":{name:"void"}},c=function(a,b){this.type=a,this.argumentTypes=b};$traceurRuntime.createClass(c,{},{});var d=Object.create(null);$traceurRuntime.GenericType=c,$traceurRuntime.genericType=a,$traceurRuntime.type=b}(),function(a){"use strict";function b(a,b){var c=[],d=b-3;0>d&&(d=0);for(var e=d;b>e;e++)c.push(a[e]);return c}function c(a,b){var c=b+1;c>a.length-1&&(c=a.length-1);for(var d=[],e=b;c>=e;e++)d.push(a[e]);return d}function d(a){for(var b="",c=0;a-1>c;c++)b+="-";return b}function e(a){if(a){var b=t.normalize(a);return l[b]}}function f(a){var b=arguments[1],c=Object.create(null);return Object.getOwnPropertyNames(a).forEach(function(d){var e,f;if(b===s){var g=Object.getOwnPropertyDescriptor(a,d);g.get&&(e=g.get)}e||(f=a[d],e=function(){return f}),Object.defineProperty(c,d,{get:e,enumerable:!0})}),Object.preventExtensions(c),c}var g,h=$traceurRuntime,i=h.canonicalizeUrl,j=h.resolveUrl,k=h.isAbsolute,l=Object.create(null);g=a.location&&a.location.href?j(a.location.href,"./"):"";var m=function(a,b){this.url=a,this.value_=b};$traceurRuntime.createClass(m,{},{});var n=function(a,b){this.message=this.constructor.name+": "+this.stripCause(b)+" in "+a,this.stack=b instanceof o||!b.stack?"":this.stripStack(b.stack)},o=n;$traceurRuntime.createClass(n,{stripError:function(a){return a.replace(/.*Error:/,this.constructor.name+":")},stripCause:function(a){return a?a.message?this.stripError(a.message):a+"":""},loadedBy:function(a){this.stack+="\n loaded by "+a},stripStack:function(a){var b=[];return a.split("\n").some(function(a){return/UncoatedModuleInstantiator/.test(a)?!0:void b.push(a)}),b[0]=this.stripError(b[0]),b.join("\n")}},{},Error);var p=function(a,b){$traceurRuntime.superConstructor(q).call(this,a,null),this.func=b},q=p;$traceurRuntime.createClass(p,{getUncoatedModule:function(){if(this.value_)return this.value_;try{var e;return void 0!==typeof $traceurRuntime&&(e=$traceurRuntime.require.bind(null,this.url)),this.value_=this.func.call(a,e)}catch(f){if(f instanceof n)throw f.loadedBy(this.url),f;if(f.stack){var g=this.func.toString().split("\n"),h=[];f.stack.split("\n").some(function(a){if(a.indexOf("UncoatedModuleInstantiator.getUncoatedModule")>0)return!0;var e=/(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(a);if(e){var f=parseInt(e[2],10);h=h.concat(b(g,f)),h.push(d(e[3])+"^"),h=h.concat(c(g,f)),h.push("= = = = = = = = =")}else h.push(a)}),f.stack=h.join("\n")}throw new n(this.url,f)}}},{},m);var r=Object.create(null),s={},t={normalize:function(a,b){if("string"!=typeof a)throw new TypeError("module name must be a string, not "+typeof a);if(k(a))return i(a);if(/[^\.]\/\.\.\//.test(a))throw new Error("module name embeds /../: "+a);return"."===a[0]&&b?j(b,a):i(a)},get:function(a){var b=e(a);if(!b)return void 0;var c=r[b.url];return c?c:(c=f(b.getUncoatedModule(),s),r[b.url]=c)},set:function(a,b){a=String(a),l[a]=new p(a,function(){return b}),r[a]=b},get baseURL(){return g},set baseURL(a){g=String(a)},registerModule:function(a,b,c){var d=t.normalize(a);if(l[d])throw new Error("duplicate module named "+d);l[d]=new p(d,c)},bundleStore:Object.create(null),register:function(a,b,c){b&&(b.length||c.length)?this.bundleStore[a]={deps:b,execute:function(){var a=arguments,d={};b.forEach(function(b,c){return d[b]=a[c]});var e=c.call(this,d);return e.execute.call(this),e.exports}}:this.registerModule(a,b,c)},getAnonymousModule:function(b){return new f(b.call(a),s)},getForTesting:function(a){var b=this;return this.testingPrefix_||Object.keys(r).some(function(a){var c=/(traceur@[^\/]*\/)/.exec(a);return c?(b.testingPrefix_=c[1],!0):void 0}),this.get(this.testingPrefix_+a)}},u=new f({ModuleStore:t});t.set("@traceur/src/runtime/ModuleStore",u),t.set("@traceur/src/runtime/ModuleStore.js",u);var v=$traceurRuntime.setupGlobals;$traceurRuntime.setupGlobals=function(a){v(a)},$traceurRuntime.ModuleStore=t,a.System={register:t.register.bind(t),registerModule:t.registerModule.bind(t),get:t.get,set:t.set,normalize:t.normalize},$traceurRuntime.getModuleImpl=function(a){var b=e(a);return b&&b.getUncoatedModule()}}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),System.registerModule("traceur@0.0.79/src/runtime/polyfills/utils.js",[],function(){"use strict";function a(a){return a>>>0}function b(a){return a&&("object"==typeof a||"function"==typeof a)}function c(a){return"function"==typeof a}function d(a){return"number"==typeof a}function e(a){return a=+a,u(a)?0:0!==a&&t(a)?a>0?s(a):r(a):a}function f(a){var b=e(a);return 0>b?0:w(b,y)}function g(a){return b(a)?a[Symbol.iterator]:void 0}function h(a){return c(a)}function i(a,b){return{value:a,done:b}}function j(a,b,c){b in a||Object.defineProperty(a,b,c)}function k(a,b,c){j(a,b,{value:c,configurable:!0,enumerable:!1,writable:!0})}function l(a,b,c){j(a,b,{value:c,configurable:!1,enumerable:!1,writable:!1})}function m(a,b){for(var c=0;c<b.length;c+=2){var d=b[c],e=b[c+1];k(a,d,e)}}function n(a,b){for(var c=0;c<b.length;c+=2){var d=b[c],e=b[c+1];l(a,d,e)}}function o(a,b,c){c&&c.iterator&&!a[c.iterator]&&(a["@@iterator"]&&(b=a["@@iterator"]),Object.defineProperty(a,c.iterator,{value:b,configurable:!0,enumerable:!1,writable:!0}))}function p(a){z.push(a)}function q(a){z.forEach(function(b){return b(a)})}var r=Math.ceil,s=Math.floor,t=isFinite,u=isNaN,v=Math.pow,w=Math.min,x=$traceurRuntime.toObject,y=v(2,53)-1,z=[];return{get toObject(){return x},get toUint32(){return a},get isObject(){return b},get isCallable(){return c},get isNumber(){return d},get toInteger(){return e},get toLength(){return f},get checkIterable(){return g},get isConstructor(){return h},get createIteratorResultObject(){return i},get maybeDefine(){return j},get maybeDefineMethod(){return k},get maybeDefineConst(){return l},get maybeAddFunctions(){return m},get maybeAddConsts(){return n},get maybeAddIterator(){return o},get registerPolyfill(){return p},get polyfillAll(){return q}}}),System.registerModule("traceur@0.0.79/src/runtime/polyfills/Map.js",[],function(){"use strict";function a(a,b){if(e(b)){var c=h(b);return c&&a.objectIndex_[c.hash]}return"string"==typeof b?a.stringIndex_[b]:a.primitiveIndex_[b]}function b(a){a.entries_=[],a.objectIndex_=Object.create(null),a.stringIndex_=Object.create(null),a.primitiveIndex_=Object.create(null),a.deletedCount_=0}function c(a){var b=a,c=b.Object,d=b.Symbol;a.Map||(a.Map=k);var e=a.Map.prototype;void 0===e.entries&&(a.Map=k),e.entries&&(f(e,e.entries,d),f(c.getPrototypeOf((new a.Map).entries()),function(){return this},d))}var d=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),e=d.isObject,f=d.maybeAddIterator,g=d.registerPolyfill,h=$traceurRuntime.getOwnHashObject,i=Object.prototype.hasOwnProperty,j={},k=function(){var a=arguments[0];if(!e(this))throw new TypeError("Map called on incompatible type");if(i.call(this,"entries_"))throw new TypeError("Map can not be reentrantly initialised");if(b(this),null!==a&&void 0!==a)for(var c,d=a[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=d.next()).done;){var f=c.value,g=f[0],h=f[1];this.set(g,h)}};return $traceurRuntime.createClass(k,{get size(){return this.entries_.length/2-this.deletedCount_},get:function(b){var c=a(this,b);return void 0!==c?this.entries_[c+1]:void 0},set:function(b,c){var d=e(b),f="string"==typeof b,g=a(this,b);if(void 0!==g)this.entries_[g+1]=c;else if(g=this.entries_.length,this.entries_[g]=b,this.entries_[g+1]=c,d){var i=h(b),j=i.hash;this.objectIndex_[j]=g}else f?this.stringIndex_[b]=g:this.primitiveIndex_[b]=g;return this},has:function(b){return void 0!==a(this,b)},"delete":function(a){var b,c,d=e(a),f="string"==typeof a;if(d){var g=h(a);g&&(b=this.objectIndex_[c=g.hash],delete this.objectIndex_[c])}else f?(b=this.stringIndex_[a],delete this.stringIndex_[a]):(b=this.primitiveIndex_[a],delete this.primitiveIndex_[a]);return void 0!==b?(this.entries_[b]=j,this.entries_[b+1]=void 0,this.deletedCount_++,!0):!1},clear:function(){b(this)},forEach:function(a){for(var b=arguments[1],c=0;c<this.entries_.length;c+=2){var d=this.entries_[c],e=this.entries_[c+1];d!==j&&a.call(b,e,d,this)}},entries:$traceurRuntime.initGeneratorFunction(function l(){var a,b,c;return $traceurRuntime.createGeneratorInstance(function(d){for(;;)switch(d.state){case 0:a=0,d.state=12;break;case 12:d.state=a<this.entries_.length?8:-2;break;case 4:a+=2,d.state=12;break;case 8:b=this.entries_[a],c=this.entries_[a+1],d.state=9;break;case 9:d.state=b===j?4:6;break;case 6:return d.state=2,[b,c];case 2:d.maybeThrow(),d.state=4;break;default:return d.end()}},l,this)}),keys:$traceurRuntime.initGeneratorFunction(function m(){var a,b,c;return $traceurRuntime.createGeneratorInstance(function(d){for(;;)switch(d.state){case 0:a=0,d.state=12;break;case 12:d.state=a<this.entries_.length?8:-2;break;case 4:a+=2,d.state=12;break;case 8:b=this.entries_[a],c=this.entries_[a+1],d.state=9;break;case 9:d.state=b===j?4:6;break;case 6:return d.state=2,b;case 2:d.maybeThrow(),d.state=4;break;default:return d.end()}},m,this)}),values:$traceurRuntime.initGeneratorFunction(function n(){var a,b,c;return $traceurRuntime.createGeneratorInstance(function(d){for(;;)switch(d.state){case 0:a=0,d.state=12;break;case 12:d.state=a<this.entries_.length?8:-2;break;case 4:a+=2,d.state=12;break;case 8:b=this.entries_[a],c=this.entries_[a+1],d.state=9;break;case 9:d.state=b===j?4:6;break;case 6:return d.state=2,c;case 2:d.maybeThrow(),d.state=4;break;default:return d.end()}},n,this)})},{}),Object.defineProperty(k.prototype,Symbol.iterator,{configurable:!0,writable:!0,value:k.prototype.entries}),g(c),{get Map(){return k},get polyfillMap(){return c}}}),System.get("traceur@0.0.79/src/runtime/polyfills/Map.js"),System.registerModule("traceur@0.0.79/src/runtime/polyfills/Set.js",[],function(){"use strict";function a(a){a.map_=new g}function b(a){var b=a,c=b.Object,d=b.Symbol;a.Set||(a.Set=i);var f=a.Set.prototype;f.values&&(e(f,f.values,d),e(c.getPrototypeOf((new a.Set).values()),function(){return this},d))}var c=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),d=c.isObject,e=c.maybeAddIterator,f=c.registerPolyfill,g=System.get("traceur@0.0.79/src/runtime/polyfills/Map.js").Map,h=($traceurRuntime.getOwnHashObject,Object.prototype.hasOwnProperty),i=function(){var b=arguments[0];if(!d(this))throw new TypeError("Set called on incompatible type");if(h.call(this,"map_"))throw new TypeError("Set can not be reentrantly initialised");if(a(this),null!==b&&void 0!==b)for(var c,e=b[$traceurRuntime.toProperty(Symbol.iterator)]();!(c=e.next()).done;){var f=c.value;this.add(f)}};return $traceurRuntime.createClass(i,{get size(){return this.map_.size},has:function(a){return this.map_.has(a)},add:function(a){return this.map_.set(a,a),this},"delete":function(a){return this.map_.delete(a)},clear:function(){return this.map_.clear()},forEach:function(a){var b=arguments[1],c=this;return this.map_.forEach(function(d,e){a.call(b,e,e,c)})},values:$traceurRuntime.initGeneratorFunction(function j(){var a,b;return $traceurRuntime.createGeneratorInstance(function(c){for(;;)switch(c.state){case 0:a=this.map_.keys()[Symbol.iterator](),c.sent=void 0,c.action="next",c.state=12;break;case 12:b=a[c.action](c.sentIgnoreThrow),c.state=9;break;case 9:c.state=b.done?3:2;break;case 3:c.sent=b.value,c.state=-2;break;case 2:return c.state=12,b.value;default:return c.end()}},j,this)}),entries:$traceurRuntime.initGeneratorFunction(function k(){var a,b;return $traceurRuntime.createGeneratorInstance(function(c){for(;;)switch(c.state){case 0:a=this.map_.entries()[Symbol.iterator](),c.sent=void 0,c.action="next",c.state=12;break;case 12:b=a[c.action](c.sentIgnoreThrow),c.state=9;break;case 9:c.state=b.done?3:2;break;case 3:c.sent=b.value,c.state=-2;break;case 2:return c.state=12,b.value;default:return c.end()}},k,this)})},{}),Object.defineProperty(i.prototype,Symbol.iterator,{configurable:!0,writable:!0,value:i.prototype.values}),Object.defineProperty(i.prototype,"keys",{configurable:!0,writable:!0,value:i.prototype.values}),f(b),{get Set(){return i},get polyfillSet(){return b}}}),System.get("traceur@0.0.79/src/runtime/polyfills/Set.js"),System.registerModule("traceur@0.0.79/node_modules/rsvp/lib/rsvp/asap.js",[],function(){"use strict";function a(a,b){m[h]=a,m[h+1]=b,h+=2,2===h&&g()}function b(){return function(){process.nextTick(f)}}function c(){var a=0,b=new k(f),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function d(){var a=new MessageChannel;return a.port1.onmessage=f,function(){a.port2.postMessage(0)}}function e(){return function(){setTimeout(f,1)}}function f(){for(var a=0;h>a;a+=2){var b=m[a],c=m[a+1];b(c),m[a]=void 0,m[a+1]=void 0}h=0}var g,h=0,i=a,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,m=new Array(1e3);return g="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?b():k?c():l?d():e(),{get default(){return i}}}),System.registerModule("traceur@0.0.79/src/runtime/polyfills/Promise.js",[],function(){"use strict";function a(a){return a&&"object"==typeof a&&void 0!==a.status_}function b(a){return a}function c(a){throw a}function d(a){var d=void 0!==arguments[1]?arguments[1]:b,f=void 0!==arguments[2]?arguments[2]:c,g=e(a.constructor);switch(a.status_){case void 0:throw TypeError;case 0:a.onResolve_.push(d,g),a.onReject_.push(f,g);break;case 1:k(a.value_,[d,g]);break;case-1:k(a.value_,[f,g])}return g.promise}function e(a){if(this===t){var b=g(new t(r));return{promise:b,resolve:function(a){h(b,a)},reject:function(a){i(b,a)}}}var c={};return c.promise=new a(function(a,b){c.resolve=a,c.reject=b}),c}function f(a,b,c,d,e){return a.status_=b,a.value_=c,a.onResolve_=d,a.onReject_=e,a}function g(a){return f(a,0,void 0,[],[])}function h(a,b){j(a,1,b,a.onResolve_)}function i(a,b){j(a,-1,b,a.onReject_)}function j(a,b,c,d){0===a.status_&&(k(c,d),f(a,b,c))}function k(a,b){p(function(){for(var c=0;c<b.length;c+=2)l(a,b[c],b[c+1])})}function l(b,c,e){try{var f=c(b);if(f===e.promise)throw new TypeError;a(f)?d(f,e.resolve,e.reject):e.resolve(f)}catch(g){try{e.reject(g)}catch(g){}}}function m(a){return a&&("object"==typeof a||"function"==typeof a)}function n(b,c){if(!a(c)&&m(c)){var d;try{d=c.then}catch(f){var g=u.call(b,f);return c[v]=g,g}if("function"==typeof d){var h=c[v];if(h)return h;var i=e(b);c[v]=i.promise;try{d.call(c,i.resolve,i.reject)}catch(f){i.reject(f)}return i.promise}}return c}function o(a){a.Promise||(a.Promise=s)}var p=System.get("traceur@0.0.79/node_modules/rsvp/lib/rsvp/asap.js").default,q=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js").registerPolyfill,r={},s=function(a){if(a!==r){if("function"!=typeof a)throw new TypeError;var b=g(this);try{a(function(a){h(b,a)},function(a){i(b,a)})}catch(c){i(b,c)}}};$traceurRuntime.createClass(s,{"catch":function(a){return this.then(void 0,a)},then:function(e,f){"function"!=typeof e&&(e=b),"function"!=typeof f&&(f=c);var g=this,h=this.constructor;return d(this,function(b){return b=n(h,b),b===g?f(new TypeError):a(b)?b.then(e,f):e(b)},f)}},{resolve:function(b){return this===t?a(b)?b:f(new t(r),1,b):new this(function(a){a(b)})},reject:function(a){return this===t?f(new t(r),-1,a):new this(function(b,c){c(a)})},all:function(a){var b=e(this),c=[];try{var d=a.length;if(0===d)b.resolve(c);else for(var f=0;f<a.length;f++)this.resolve(a[f]).then(function(a,e){c[a]=e,0===--d&&b.resolve(c)}.bind(void 0,f),function(a){b.reject(a)})}catch(g){b.reject(g)}return b.promise},race:function(a){var b=e(this);try{for(var c=0;c<a.length;c++)this.resolve(a[c]).then(function(a){b.resolve(a)},function(a){b.reject(a)})}catch(d){b.reject(d)}return b.promise}});var t=s,u=t.reject,v="@@thenable";return q(o),{get Promise(){return s},get polyfillPromise(){return o}}}),System.get("traceur@0.0.79/src/runtime/polyfills/Promise.js"),System.registerModule("traceur@0.0.79/src/runtime/polyfills/StringIterator.js",[],function(){"use strict";function a(a){var b=String(a),c=Object.create(j.prototype);return c[f(h)]=b,c[f(i)]=0,c}var b,c=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),d=c.createIteratorResultObject,e=c.isObject,f=$traceurRuntime.toProperty,g=Object.prototype.hasOwnProperty,h=Symbol("iteratedString"),i=Symbol("stringIteratorNextIndex"),j=function(){};return $traceurRuntime.createClass(j,(b={},Object.defineProperty(b,"next",{value:function(){var a=this;if(!e(a)||!g.call(a,h))throw new TypeError("this must be a StringIterator object");var b=a[f(h)];if(void 0===b)return d(void 0,!0);var c=a[f(i)],j=b.length;if(c>=j)return a[f(h)]=void 0,d(void 0,!0);var k,l=b.charCodeAt(c);if(55296>l||l>56319||c+1===j)k=String.fromCharCode(l);else{var m=b.charCodeAt(c+1);k=56320>m||m>57343?String.fromCharCode(l):String.fromCharCode(l)+String.fromCharCode(m)}return a[f(i)]=c+k.length,d(k,!1)},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),b),{}),{get createStringIterator(){return a}}}),System.registerModule("traceur@0.0.79/src/runtime/polyfills/String.js",[],function(){"use strict";function a(a){var b=String(this);if(null==this||"[object RegExp]"==o.call(a))throw TypeError();var c=b.length,d=String(a),e=(d.length,arguments.length>1?arguments[1]:void 0),f=e?Number(e):0;isNaN(f)&&(f=0);var g=Math.min(Math.max(f,0),c);return p.call(b,d,f)==g}function b(a){var b=String(this);if(null==this||"[object RegExp]"==o.call(a))throw TypeError();var c=b.length,d=String(a),e=d.length,f=c;if(arguments.length>1){var g=arguments[1];void 0!==g&&(f=g?Number(g):0,isNaN(f)&&(f=0))}var h=Math.min(Math.max(f,0),c),i=h-e;return 0>i?!1:q.call(b,d,i)==i}function c(a){if(null==this)throw TypeError();var b=String(this);if(a&&"[object RegExp]"==o.call(a))throw TypeError();var c=b.length,d=String(a),e=d.length,f=arguments.length>1?arguments[1]:void 0,g=f?Number(f):0;g!=g&&(g=0);var h=Math.min(Math.max(g,0),c);return e+h>c?!1:-1!=p.call(b,d,g)}function d(a){if(null==this)throw TypeError();var b=String(this),c=a?Number(a):0;if(isNaN(c)&&(c=0),0>c||1/0==c)throw RangeError();if(0==c)return"";for(var d="";c--;)d+=b;return d}function e(a){if(null==this)throw TypeError();var b=String(this),c=b.length,d=a?Number(a):0;if(isNaN(d)&&(d=0),0>d||d>=c)return void 0;var e,f=b.charCodeAt(d);return f>=55296&&56319>=f&&c>d+1&&(e=b.charCodeAt(d+1),e>=56320&&57343>=e)?1024*(f-55296)+e-56320+65536:f}function f(a){var b=a.raw,c=b.length>>>0;if(0===c)return"";for(var d="",e=0;;){if(d+=b[e],e+1===c)return d;d+=arguments[++e]}}function g(){var a,b,c=[],d=Math.floor,e=-1,f=arguments.length;if(!f)return"";for(;++e<f;){var g=Number(arguments[e]);if(!isFinite(g)||0>g||g>1114111||d(g)!=g)throw RangeError("Invalid code point: "+g);65535>=g?c.push(g):(g-=65536,a=(g>>10)+55296,b=g%1024+56320,c.push(a,b))}return String.fromCharCode.apply(null,c)}function h(){var a=$traceurRuntime.checkObjectCoercible(this),b=String(a);return j(b)}function i(i){var j=i.String;l(j.prototype,["codePointAt",e,"endsWith",b,"includes",c,"repeat",d,"startsWith",a]),l(j,["fromCodePoint",g,"raw",f]),m(j.prototype,h,Symbol)}var j=System.get("traceur@0.0.79/src/runtime/polyfills/StringIterator.js").createStringIterator,k=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),l=k.maybeAddFunctions,m=k.maybeAddIterator,n=k.registerPolyfill,o=Object.prototype.toString,p=String.prototype.indexOf,q=String.prototype.lastIndexOf;return n(i),{get startsWith(){return a},get endsWith(){return b},get includes(){return c},get repeat(){return d},get codePointAt(){return e},get raw(){return f},get fromCodePoint(){return g},get stringPrototypeIterator(){return h},get polyfillString(){return i}}}),System.get("traceur@0.0.79/src/runtime/polyfills/String.js"),System.registerModule("traceur@0.0.79/src/runtime/polyfills/ArrayIterator.js",[],function(){"use strict";function a(a,b){var c=g(a),d=new m;return d.iteratorObject_=c,d.arrayIteratorNextIndex_=0,d.arrayIterationKind_=b,d}function b(){return a(this,l)}function c(){return a(this,j)}function d(){return a(this,k)}var e,f=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),g=f.toObject,h=f.toUint32,i=f.createIteratorResultObject,j=1,k=2,l=3,m=function(){};return $traceurRuntime.createClass(m,(e={},Object.defineProperty(e,"next",{value:function(){var a=g(this),b=a.iteratorObject_;if(!b)throw new TypeError("Object is not an ArrayIterator");var c=a.arrayIteratorNextIndex_,d=a.arrayIterationKind_,e=h(b.length);return c>=e?(a.arrayIteratorNextIndex_=1/0,i(void 0,!0)):(a.arrayIteratorNextIndex_=c+1,d==k?i(b[c],!1):d==l?i([c,b[c]],!1):i(c,!1))},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(e,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),e),{}),{get entries(){return b},get keys(){return c},get values(){return d}}}),System.registerModule("traceur@0.0.79/src/runtime/polyfills/Array.js",[],function(){"use strict";function a(a){var b,c,d=arguments[1],e=arguments[2],f=this,g=u(a),h=void 0!==d,i=0;
if(h&&!n(d))throw TypeError();if(m(g)){b=o(f)?new f:[];for(var j,k=g[$traceurRuntime.toProperty(Symbol.iterator)]();!(j=k.next()).done;){var l=j.value;b[i]=h?d.call(e,l,i):l,i++}return b.length=i,b}for(c=t(g.length),b=o(f)?new f(c):new Array(c);c>i;i++)b[i]=h?"undefined"==typeof e?d(g[i],i):d.call(e,g[i],i):g[i];return b.length=c,b}function b(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];for(var c=this,d=a.length,e=o(c)?new c(d):new Array(d),f=0;d>f;f++)e[f]=a[f];return e.length=d,e}function c(a){var b=void 0!==arguments[1]?arguments[1]:0,c=arguments[2],d=u(this),e=t(d.length),f=s(b),g=void 0!==c?s(c):e;for(f=0>f?Math.max(e+f,0):Math.min(f,e),g=0>g?Math.max(e+g,0):Math.min(g,e);g>f;)d[f]=a,f++;return d}function d(a){var b=arguments[1];return f(this,a,b)}function e(a){var b=arguments[1];return f(this,a,b,!0)}function f(a,b){var c=arguments[2],d=void 0!==arguments[3]?arguments[3]:!1,e=u(a),f=t(e.length);if(!n(b))throw TypeError();for(var g=0;f>g;g++){var h=e[g];if(b.call(c,h,g,e))return d?g:h}return d?-1:void 0}function g(f){var g=f,h=g.Array,l=g.Object,m=g.Symbol;p(h.prototype,["entries",i,"keys",j,"values",k,"fill",c,"find",d,"findIndex",e]),p(h,["from",a,"of",b]),q(h.prototype,k,m),q(l.getPrototypeOf([].values()),function(){return this},m)}var h=System.get("traceur@0.0.79/src/runtime/polyfills/ArrayIterator.js"),i=h.entries,j=h.keys,k=h.values,l=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),m=l.checkIterable,n=l.isCallable,o=l.isConstructor,p=l.maybeAddFunctions,q=l.maybeAddIterator,r=l.registerPolyfill,s=l.toInteger,t=l.toLength,u=l.toObject;return r(g),{get from(){return a},get of(){return b},get fill(){return c},get find(){return d},get findIndex(){return e},get polyfillArray(){return g}}}),System.get("traceur@0.0.79/src/runtime/polyfills/Array.js"),System.registerModule("traceur@0.0.79/src/runtime/polyfills/Object.js",[],function(){"use strict";function a(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b}function b(a){for(var b=1;b<arguments.length;b++){var c,d=arguments[b],e=null==d?[]:m(d),f=e.length;for(c=0;f>c;c++){var g=e[c];l(g)||(a[g]=d[g])}}return a}function c(a,b){var c,d,e=k(b),f=e.length;for(c=0;f>c;c++){var g=e[c];l(g)||(d=j(b,e[c]),i(a,e[c],d))}return a}function d(d){var e=d.Object;f(e,["assign",b,"is",a,"mixin",c])}var e=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),f=e.maybeAddFunctions,g=e.registerPolyfill,h=$traceurRuntime,i=h.defineProperty,j=h.getOwnPropertyDescriptor,k=h.getOwnPropertyNames,l=h.isPrivateName,m=h.keys;return g(d),{get is(){return a},get assign(){return b},get mixin(){return c},get polyfillObject(){return d}}}),System.get("traceur@0.0.79/src/runtime/polyfills/Object.js"),System.registerModule("traceur@0.0.79/src/runtime/polyfills/Number.js",[],function(){"use strict";function a(a){return g(a)&&m(a)}function b(b){return a(b)&&k(b)===b}function c(a){return g(a)&&n(a)}function d(b){if(a(b)){var c=k(b);if(c===b)return l(c)<=o}return!1}function e(e){var f=e.Number;h(f,["MAX_SAFE_INTEGER",o,"MIN_SAFE_INTEGER",p,"EPSILON",q]),i(f,["isFinite",a,"isInteger",b,"isNaN",c,"isSafeInteger",d])}var f=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js"),g=f.isNumber,h=f.maybeAddConsts,i=f.maybeAddFunctions,j=f.registerPolyfill,k=f.toInteger,l=Math.abs,m=isFinite,n=isNaN,o=Math.pow(2,53)-1,p=-Math.pow(2,53)+1,q=Math.pow(2,-52);return j(e),{get MAX_SAFE_INTEGER(){return o},get MIN_SAFE_INTEGER(){return p},get EPSILON(){return q},get isFinite(){return a},get isInteger(){return b},get isNaN(){return c},get isSafeInteger(){return d},get polyfillNumber(){return e}}}),System.get("traceur@0.0.79/src/runtime/polyfills/Number.js"),System.registerModule("traceur@0.0.79/src/runtime/polyfills/polyfills.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/runtime/polyfills/utils.js").polyfillAll;a(Reflect.global);var b=$traceurRuntime.setupGlobals;return $traceurRuntime.setupGlobals=function(c){b(c),a(c)},{}}),System.get("traceur@0.0.79/src/runtime/polyfills/polyfills.js"),System.registerModule("traceur@0.0.79/src/Options.js",[],function(){"use strict";function a(a){var b=Object.create(null);return Object.keys(a).forEach(function(c){Object.defineProperty(b,c,{enumerable:!0,value:a[c]})}),b}function b(a){switch(a){case"false":return!1;case"true":case!0:return!0;default:return!!a&&String(a)}}function c(a,b){a.option("--referrer <name>","Bracket output code with System.referrerName=<name>",function(a){return b.setOption("referrer",a),System.map=System.semverMap(a),a}),a.option("--type-assertion-module <path>","Absolute path to the type assertion module.",function(a){return b.setOption("type-assertion-module",a),a}),a.option("--modules <"+n.join(", ")+">","select the output format for modules",function(a){b.modules=a}),a.option("--moduleName <string>","__moduleName value, + sign to use source name, or empty to omit",function(a){"+"===a&&(a=!0),b.moduleName=a}),a.option("--outputLanguage <es6|es5>","compilation target language",function(a){if("es6"!==a&&"es5"!==a)throw new Error("outputLanguage must be one of es5, es6");b.outputLanguage=a}),a.option("--source-maps [file|inline|memory]","sourceMaps generated to file or inline with data: URL",function(a){return b.sourceMaps=a}),a.option("--experimental","Turns on all experimental features",function(){b.experimental=!0}),a.option("--atscript","Turns on all AtScript features",function(){b.atscript=!0}),Object.keys(b).forEach(function(c){var d=e(c);if(!a.optionFor("--"+c)&&!a.optionFor("--"+d))if(c in j&&c in k)a.option("--"+d+" [true|false|parse]",q[c]),a.on(d,function(a){return b.setOptionCoerced(d,a)});else{if(null===b[c])throw new Error("Unexpected null commandOption "+c);a.option("--"+d,q[c]),a.on(d,function(){return b.setOption(d,!0)})}}),b.setDefaults()}function d(a){return a.replace(/-\w/g,function(a){return a[1].toUpperCase()})}function e(a){return a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})}function f(a,b){b===t&&(m[a]=!0),Object.defineProperty(j,a,{get:function(){return!!p[a]},enumerable:!0,configurable:!0}),Object.defineProperty(k,a,{get:function(){var b=p[a];return"parse"===b?!1:b},enumerable:!0,configurable:!0});var c=p[a]||b===u;p[a]=c,l[a]=c}function g(a){l[a]=!1,p[a]=!1}var h=a({annotations:!1,arrayComprehension:!1,arrowFunctions:!0,asyncFunctions:!1,blockBinding:!0,classes:!0,commentCallback:!1,computedPropertyNames:!0,debug:!1,defaultParameters:!0,destructuring:!0,exponentiation:!1,forOf:!0,freeVariableChecker:!1,generatorComprehension:!1,generators:!0,memberVariables:!1,moduleName:!1,modules:"register",numericLiterals:!0,outputLanguage:"es5",propertyMethods:!0,propertyNameShorthand:!0,referrer:"",require:!1,restParameters:!0,script:!1,sourceMaps:!1,spread:!0,symbols:!1,templateLiterals:!0,typeAssertionModule:null,typeAssertions:!1,types:!1,unicodeEscapeSequences:!0,unicodeExpressions:!0,validate:!1}),i=h,j=Object.create(null),k=Object.create(null),l=Object.create(null),m=Object.create(null),n=["amd","commonjs","instantiate","inline","register"],o=function(){var a=void 0!==arguments[0]?arguments[0]:Object.create(null);this.reset(),Object.defineProperties(this,{modules_:{value:i.modules,writable:!0,enumerable:!1},sourceMaps_:{value:i.sourceMaps,writable:!0,enumerable:!1}}),this.setFromObject(a)};$traceurRuntime.createClass(o,{set experimental(a){var c=this;a=b(a),Object.keys(m).forEach(function(b){c[b]=a})},get experimental(){var a,b=this;return Object.keys(m).every(function(c){var d=b[c];return void 0===a?(a=d,!0):d!==a?(a=null,!1):!0}),a},get atscript(){return this.types&&this.annotations&&this.memberVariables},set atscript(a){this.types=a,this.annotations=a,this.memberVariables=a},get modules(){return this.modules_},set modules(a){if("boolean"!=typeof a||a||(a="register"),-1===n.indexOf(a))throw new Error("Invalid 'modules' option '"+a+"', not in "+n.join(", "));this.modules_=a},get sourceMaps(){return this.sourceMaps_},set sourceMaps(a){if(null===a||"boolean"==typeof a)return void(this.sourceMaps_=a?"file":!1);if("file"!==a&&"inline"!==a&&"memory"!==a)throw new Error("Option sourceMaps should be [false|inline|file|memory], not "+a);this.sourceMaps_=a},reset:function(){var a=arguments[0],b=this,c=void 0===a;Object.keys(l).forEach(function(a){b[a]=c&&l[a]}),this.setDefaults()},setDefaults:function(){this.modules="register",this.moduleName=!1,this.outputLanguage="es5",this.referrer="",this.sourceMaps=!1,this.typeAssertionModule=null},setFromObject:function(a){var b=this;return Object.keys(this).forEach(function(c){c in a&&b.setOption(c,a[c])}),this.modules=a.modules||this.modules,("boolean"==typeof a.sourceMaps||"string"==typeof a.sourceMaps)&&(this.sourceMaps=a.sourceMaps),this},setOption:function(a,b){if(a=d(a),!(a in this))throw Error("Unknown option: "+a);this[a]=b},diff:function(a){var b=this,c=[];return Object.keys(p).forEach(function(d){b[d]!==a[d]&&c.push({key:d,now:traceur.options[d],v01:a[d]})}),c}},{});var p=new o,q={experimental:"Turns on all experimental features",require:"Generate require function argument for node when modules=register",sourceMaps:"Generate source map and ('file') write to .map or ('inline') append data URL"},r=function(){$traceurRuntime.superConstructor(s).apply(this,arguments)},s=r;$traceurRuntime.createClass(r,{parseCommand:function(a){var b=/--([^=]+)(?:=(.+))?/,c=b.exec(a);c&&this.setOptionCoerced(c[1],c[2])},setOptionCoerced:function(a,c){c="undefined"!=typeof c&&null!==c?b(c):!0,this.setOption(a,c)}},{fromString:function(a){return s.fromArgv(a.split(/\s+/))},fromArgv:function(a){var b=new s;return a.forEach(function(a){return b.parseCommand(a)}),b}},o);var t=0,u=1;return f("arrowFunctions",u),f("blockBinding",u),f("classes",u),f("computedPropertyNames",u),f("defaultParameters",u),f("destructuring",u),f("forOf",u),f("generators",u),f("modules","SPECIAL"),f("numericLiterals",u),f("propertyMethods",u),f("propertyNameShorthand",u),f("restParameters",u),f("sourceMaps","SPECIAL"),f("spread",u),f("templateLiterals",u),f("unicodeEscapeSequences",u),f("unicodeExpressions",u),f("annotations",t),f("arrayComprehension",t),f("asyncFunctions",t),f("exponentiation",t),f("generatorComprehension",t),f("require",t),f("symbols",t),f("types",t),f("memberVariables",t),g("commentCallback"),g("debug"),g("freeVariableChecker"),g("script"),g("typeAssertions"),g("validate"),{get optionsV01(){return h},get versionLockedOptions(){return i},get parseOptions(){return j},get transformOptions(){return k},get Options(){return o},get options(){return p},get CommandOptions(){return r},get addOptions(){return c},get toDashCase(){return e}}}),System.registerModule("traceur@0.0.79/src/syntax/TokenType.js",[],function(){"use strict";var a="&",b="&=",c="&&",d="=>",e="@",f="`",g="!",h="|",i="|=",j="break",k="^",l="^=",m="case",n="catch",o="class",p=">",q="}",r=")",s="]",t=":",u=",",v="const",w="continue",x="debugger",y="default",z="delete",A="do",B="...",C="else",D="End of File",E="enum",F="=",G="==",H="===",I="error",J="export",K="extends",L="false",M="finally",N="for",O="function",P=">=",Q="identifier",R="if",S="implements",T="import",U="in",V="instanceof",W="interface",X="<<",Y="<<=",Z="<=",$="let",_="-",ab="-=",bb="--",cb="new",db="no substitution template",eb="!=",fb="!==",gb="null",hb="number literal",ib="<",jb="{",kb="(",lb="[",mb="||",nb="package",ob="%",pb="%=",qb=".",rb="+",sb="+=",tb="++",ub="private",vb="protected",wb="public",xb="?",yb="regular expression literal",zb="return",Ab=">>",Bb=">>=",Cb=";",Db="/",Eb="/=",Fb="*",Gb="*=",Hb="**",Ib="**=",Jb="static",Kb="string literal",Lb="super",Mb="switch",Nb="template head",Ob="template middle",Pb="template tail",Qb="this",Rb="throw",Sb="~",Tb="true",Ub="try",Vb="typeof",Wb=">>>",Xb=">>>=",Yb="var",Zb="void",$b="while",_b="with",ac="yield";return{get AMPERSAND(){return a},get AMPERSAND_EQUAL(){return b},get AND(){return c},get ARROW(){return d},get AT(){return e},get BACK_QUOTE(){return f},get BANG(){return g},get BAR(){return h},get BAR_EQUAL(){return i},get BREAK(){return j},get CARET(){return k},get CARET_EQUAL(){return l},get CASE(){return m},get CATCH(){return n},get CLASS(){return o},get CLOSE_ANGLE(){return p},get CLOSE_CURLY(){return q},get CLOSE_PAREN(){return r},get CLOSE_SQUARE(){return s},get COLON(){return t},get COMMA(){return u},get CONST(){return v},get CONTINUE(){return w},get DEBUGGER(){return x},get DEFAULT(){return y},get DELETE(){return z},get DO(){return A},get DOT_DOT_DOT(){return B},get ELSE(){return C},get END_OF_FILE(){return D},get ENUM(){return E},get EQUAL(){return F},get EQUAL_EQUAL(){return G},get EQUAL_EQUAL_EQUAL(){return H},get ERROR(){return I},get EXPORT(){return J},get EXTENDS(){return K},get FALSE(){return L},get FINALLY(){return M},get FOR(){return N},get FUNCTION(){return O},get GREATER_EQUAL(){return P},get IDENTIFIER(){return Q},get IF(){return R},get IMPLEMENTS(){return S},get IMPORT(){return T},get IN(){return U},get INSTANCEOF(){return V},get INTERFACE(){return W},get LEFT_SHIFT(){return X},get LEFT_SHIFT_EQUAL(){return Y},get LESS_EQUAL(){return Z},get LET(){return $},get MINUS(){return _},get MINUS_EQUAL(){return ab},get MINUS_MINUS(){return bb},get NEW(){return cb},get NO_SUBSTITUTION_TEMPLATE(){return db},get NOT_EQUAL(){return eb},get NOT_EQUAL_EQUAL(){return fb},get NULL(){return gb},get NUMBER(){return hb},get OPEN_ANGLE(){return ib},get OPEN_CURLY(){return jb},get OPEN_PAREN(){return kb},get OPEN_SQUARE(){return lb},get OR(){return mb},get PACKAGE(){return nb},get PERCENT(){return ob},get PERCENT_EQUAL(){return pb},get PERIOD(){return qb},get PLUS(){return rb},get PLUS_EQUAL(){return sb},get PLUS_PLUS(){return tb},get PRIVATE(){return ub},get PROTECTED(){return vb},get PUBLIC(){return wb},get QUESTION(){return xb},get REGULAR_EXPRESSION(){return yb},get RETURN(){return zb},get RIGHT_SHIFT(){return Ab},get RIGHT_SHIFT_EQUAL(){return Bb},get SEMI_COLON(){return Cb},get SLASH(){return Db},get SLASH_EQUAL(){return Eb},get STAR(){return Fb},get STAR_EQUAL(){return Gb},get STAR_STAR(){return Hb},get STAR_STAR_EQUAL(){return Ib},get STATIC(){return Jb},get STRING(){return Kb},get SUPER(){return Lb},get SWITCH(){return Mb},get TEMPLATE_HEAD(){return Nb},get TEMPLATE_MIDDLE(){return Ob},get TEMPLATE_TAIL(){return Pb},get THIS(){return Qb},get THROW(){return Rb},get TILDE(){return Sb},get TRUE(){return Tb},get TRY(){return Ub},get TYPEOF(){return Vb},get UNSIGNED_RIGHT_SHIFT(){return Wb},get UNSIGNED_RIGHT_SHIFT_EQUAL(){return Xb},get VAR(){return Yb},get VOID(){return Zb},get WHILE(){return $b},get WITH(){return _b},get YIELD(){return ac}}}),System.registerModule("traceur@0.0.79/src/syntax/trees/ParseTreeType.js",[],function(){"use strict";var a="ANNOTATION",b="ANON_BLOCK",c="ARGUMENT_LIST",d="ARRAY_COMPREHENSION",e="ARRAY_LITERAL_EXPRESSION",f="ARRAY_PATTERN",g="ARRAY_TYPE",h="ARROW_FUNCTION_EXPRESSION",i="ASSIGNMENT_ELEMENT",j="AWAIT_EXPRESSION",k="BINARY_EXPRESSION",l="BINDING_ELEMENT",m="BINDING_IDENTIFIER",n="BLOCK",o="BREAK_STATEMENT",p="CALL_EXPRESSION",q="CALL_SIGNATURE",r="CASE_CLAUSE",s="CATCH",t="CLASS_DECLARATION",u="CLASS_EXPRESSION",v="COMMA_EXPRESSION",w="COMPREHENSION_FOR",x="COMPREHENSION_IF",y="COMPUTED_PROPERTY_NAME",z="CONDITIONAL_EXPRESSION",A="CONSTRUCT_SIGNATURE",B="CONSTRUCTOR_TYPE",C="CONTINUE_STATEMENT",D="COVER_FORMALS",E="COVER_INITIALIZED_NAME",F="DEBUGGER_STATEMENT",G="DEFAULT_CLAUSE",H="DO_WHILE_STATEMENT",I="EMPTY_STATEMENT",J="EXPORT_DECLARATION",K="EXPORT_DEFAULT",L="EXPORT_SPECIFIER",M="EXPORT_SPECIFIER_SET",N="EXPORT_STAR",O="EXPRESSION_STATEMENT",P="FINALLY",Q="FOR_IN_STATEMENT",R="FOR_OF_STATEMENT",S="FOR_STATEMENT",T="FORMAL_PARAMETER",U="FORMAL_PARAMETER_LIST",V="FUNCTION_BODY",W="FUNCTION_DECLARATION",X="FUNCTION_EXPRESSION",Y="FUNCTION_TYPE",Z="GENERATOR_COMPREHENSION",$="GET_ACCESSOR",_="IDENTIFIER_EXPRESSION",ab="IF_STATEMENT",bb="IMPORT_DECLARATION",cb="IMPORT_SPECIFIER",db="IMPORT_SPECIFIER_SET",eb="IMPORTED_BINDING",fb="INDEX_SIGNATURE",gb="INTERFACE_DECLARATION",hb="LABELLED_STATEMENT",ib="LITERAL_EXPRESSION",jb="LITERAL_PROPERTY_NAME",kb="MEMBER_EXPRESSION",lb="MEMBER_LOOKUP_EXPRESSION",mb="METHOD_SIGNATURE",nb="MODULE",ob="MODULE_DECLARATION",pb="MODULE_SPECIFIER",qb="NAMED_EXPORT",rb="NEW_EXPRESSION",sb="OBJECT_LITERAL_EXPRESSION",tb="OBJECT_PATTERN",ub="OBJECT_PATTERN_FIELD",vb="OBJECT_TYPE",wb="PAREN_EXPRESSION",xb="POSTFIX_EXPRESSION",yb="PREDEFINED_TYPE",zb="PROPERTY_METHOD_ASSIGNMENT",Ab="PROPERTY_NAME_ASSIGNMENT",Bb="PROPERTY_NAME_SHORTHAND",Cb="PROPERTY_SIGNATURE",Db="PROPERTY_VARIABLE_DECLARATION",Eb="REST_PARAMETER",Fb="RETURN_STATEMENT",Gb="SCRIPT",Hb="SET_ACCESSOR",Ib="SPREAD_EXPRESSION",Jb="SPREAD_PATTERN_ELEMENT",Kb="STATE_MACHINE",Lb="SUPER_EXPRESSION",Mb="SWITCH_STATEMENT",Nb="SYNTAX_ERROR_TREE",Ob="TEMPLATE_LITERAL_EXPRESSION",Pb="TEMPLATE_LITERAL_PORTION",Qb="TEMPLATE_SUBSTITUTION",Rb="THIS_EXPRESSION",Sb="THROW_STATEMENT",Tb="TRY_STATEMENT",Ub="TYPE_ARGUMENTS",Vb="TYPE_NAME",Wb="TYPE_PARAMETER",Xb="TYPE_PARAMETERS",Yb="TYPE_REFERENCE",Zb="UNARY_EXPRESSION",$b="UNION_TYPE",_b="VARIABLE_DECLARATION",ac="VARIABLE_DECLARATION_LIST",bc="VARIABLE_STATEMENT",cc="WHILE_STATEMENT",dc="WITH_STATEMENT",ec="YIELD_EXPRESSION";return{get ANNOTATION(){return a},get ANON_BLOCK(){return b},get ARGUMENT_LIST(){return c},get ARRAY_COMPREHENSION(){return d},get ARRAY_LITERAL_EXPRESSION(){return e},get ARRAY_PATTERN(){return f},get ARRAY_TYPE(){return g},get ARROW_FUNCTION_EXPRESSION(){return h},get ASSIGNMENT_ELEMENT(){return i},get AWAIT_EXPRESSION(){return j},get BINARY_EXPRESSION(){return k},get BINDING_ELEMENT(){return l},get BINDING_IDENTIFIER(){return m},get BLOCK(){return n},get BREAK_STATEMENT(){return o},get CALL_EXPRESSION(){return p},get CALL_SIGNATURE(){return q},get CASE_CLAUSE(){return r},get CATCH(){return s},get CLASS_DECLARATION(){return t},get CLASS_EXPRESSION(){return u},get COMMA_EXPRESSION(){return v},get COMPREHENSION_FOR(){return w},get COMPREHENSION_IF(){return x},get COMPUTED_PROPERTY_NAME(){return y},get CONDITIONAL_EXPRESSION(){return z},get CONSTRUCT_SIGNATURE(){return A},get CONSTRUCTOR_TYPE(){return B},get CONTINUE_STATEMENT(){return C},get COVER_FORMALS(){return D},get COVER_INITIALIZED_NAME(){return E},get DEBUGGER_STATEMENT(){return F},get DEFAULT_CLAUSE(){return G},get DO_WHILE_STATEMENT(){return H},get EMPTY_STATEMENT(){return I},get EXPORT_DECLARATION(){return J},get EXPORT_DEFAULT(){return K},get EXPORT_SPECIFIER(){return L},get EXPORT_SPECIFIER_SET(){return M},get EXPORT_STAR(){return N},get EXPRESSION_STATEMENT(){return O},get FINALLY(){return P},get FOR_IN_STATEMENT(){return Q},get FOR_OF_STATEMENT(){return R},get FOR_STATEMENT(){return S},get FORMAL_PARAMETER(){return T},get FORMAL_PARAMETER_LIST(){return U},get FUNCTION_BODY(){return V},get FUNCTION_DECLARATION(){return W},get FUNCTION_EXPRESSION(){return X},get FUNCTION_TYPE(){return Y},get GENERATOR_COMPREHENSION(){return Z},get GET_ACCESSOR(){return $},get IDENTIFIER_EXPRESSION(){return _},get IF_STATEMENT(){return ab},get IMPORT_DECLARATION(){return bb},get IMPORT_SPECIFIER(){return cb},get IMPORT_SPECIFIER_SET(){return db},get IMPORTED_BINDING(){return eb},get INDEX_SIGNATURE(){return fb},get INTERFACE_DECLARATION(){return gb},get LABELLED_STATEMENT(){return hb},get LITERAL_EXPRESSION(){return ib},get LITERAL_PROPERTY_NAME(){return jb},get MEMBER_EXPRESSION(){return kb},get MEMBER_LOOKUP_EXPRESSION(){return lb},get METHOD_SIGNATURE(){return mb},get MODULE(){return nb},get MODULE_DECLARATION(){return ob},get MODULE_SPECIFIER(){return pb},get NAMED_EXPORT(){return qb},get NEW_EXPRESSION(){return rb},get OBJECT_LITERAL_EXPRESSION(){return sb},get OBJECT_PATTERN(){return tb},get OBJECT_PATTERN_FIELD(){return ub},get OBJECT_TYPE(){return vb},get PAREN_EXPRESSION(){return wb},get POSTFIX_EXPRESSION(){return xb},get PREDEFINED_TYPE(){return yb},get PROPERTY_METHOD_ASSIGNMENT(){return zb},get PROPERTY_NAME_ASSIGNMENT(){return Ab},get PROPERTY_NAME_SHORTHAND(){return Bb},get PROPERTY_SIGNATURE(){return Cb},get PROPERTY_VARIABLE_DECLARATION(){return Db},get REST_PARAMETER(){return Eb},get RETURN_STATEMENT(){return Fb},get SCRIPT(){return Gb},get SET_ACCESSOR(){return Hb},get SPREAD_EXPRESSION(){return Ib},get SPREAD_PATTERN_ELEMENT(){return Jb},get STATE_MACHINE(){return Kb},get SUPER_EXPRESSION(){return Lb},get SWITCH_STATEMENT(){return Mb},get SYNTAX_ERROR_TREE(){return Nb},get TEMPLATE_LITERAL_EXPRESSION(){return Ob},get TEMPLATE_LITERAL_PORTION(){return Pb},get TEMPLATE_SUBSTITUTION(){return Qb},get THIS_EXPRESSION(){return Rb},get THROW_STATEMENT(){return Sb},get TRY_STATEMENT(){return Tb},get TYPE_ARGUMENTS(){return Ub},get TYPE_NAME(){return Vb},get TYPE_PARAMETER(){return Wb},get TYPE_PARAMETERS(){return Xb},get TYPE_REFERENCE(){return Yb},get UNARY_EXPRESSION(){return Zb},get UNION_TYPE(){return $b},get VARIABLE_DECLARATION(){return _b},get VARIABLE_DECLARATION_LIST(){return ac},get VARIABLE_STATEMENT(){return bc},get WHILE_STATEMENT(){return cc},get WITH_STATEMENT(){return dc},get YIELD_EXPRESSION(){return ec}}}),System.registerModule("traceur@0.0.79/src/syntax/ParseTreeVisitor.js",[],function(){"use strict";var a=function(){};return $traceurRuntime.createClass(a,{visitAny:function(a){a&&a.visit(this)},visit:function(a){this.visitAny(a)},visitList:function(a){if(a)for(var b=0;b<a.length;b++)this.visitAny(a[b])},visitStateMachine:function(){throw Error("State machines should not live outside of the GeneratorTransformer.")},visitAnnotation:function(a){this.visitAny(a.name),this.visitAny(a.args)},visitAnonBlock:function(a){this.visitList(a.statements)},visitArgumentList:function(a){this.visitList(a.args)},visitArrayComprehension:function(a){this.visitList(a.comprehensionList),this.visitAny(a.expression)},visitArrayLiteralExpression:function(a){this.visitList(a.elements)},visitArrayPattern:function(a){this.visitList(a.elements)},visitArrayType:function(a){this.visitAny(a.elementType)},visitArrowFunctionExpression:function(a){this.visitAny(a.parameterList),this.visitAny(a.body)},visitAssignmentElement:function(a){this.visitAny(a.assignment),this.visitAny(a.initializer)},visitAwaitExpression:function(a){this.visitAny(a.expression)},visitBinaryExpression:function(a){this.visitAny(a.left),this.visitAny(a.right)},visitBindingElement:function(a){this.visitAny(a.binding),this.visitAny(a.initializer)},visitBindingIdentifier:function(){},visitBlock:function(a){this.visitList(a.statements)},visitBreakStatement:function(){},visitCallExpression:function(a){this.visitAny(a.operand),this.visitAny(a.args)},visitCallSignature:function(a){this.visitAny(a.typeParameters),this.visitAny(a.parameterList),this.visitAny(a.returnType)},visitCaseClause:function(a){this.visitAny(a.expression),this.visitList(a.statements)},visitCatch:function(a){this.visitAny(a.binding),this.visitAny(a.catchBody)},visitClassDeclaration:function(a){this.visitAny(a.name),this.visitAny(a.superClass),this.visitList(a.elements),this.visitList(a.annotations),this.visitAny(a.typeParameters)},visitClassExpression:function(a){this.visitAny(a.name),this.visitAny(a.superClass),this.visitList(a.elements),this.visitList(a.annotations),this.visitAny(a.typeParameters)},visitCommaExpression:function(a){this.visitList(a.expressions)},visitComprehensionFor:function(a){this.visitAny(a.left),this.visitAny(a.iterator)},visitComprehensionIf:function(a){this.visitAny(a.expression)},visitComputedPropertyName:function(a){this.visitAny(a.expression)},visitConditionalExpression:function(a){this.visitAny(a.condition),this.visitAny(a.left),this.visitAny(a.right)},visitConstructSignature:function(a){this.visitAny(a.typeParameters),this.visitAny(a.parameterList),this.visitAny(a.returnType)},visitConstructorType:function(a){this.visitAny(a.typeParameters),this.visitAny(a.parameterList),this.visitAny(a.returnType)},visitContinueStatement:function(){},visitCoverFormals:function(a){this.visitList(a.expressions)},visitCoverInitializedName:function(a){this.visitAny(a.initializer)},visitDebuggerStatement:function(){},visitDefaultClause:function(a){this.visitList(a.statements)},visitDoWhileStatement:function(a){this.visitAny(a.body),this.visitAny(a.condition)},visitEmptyStatement:function(){},visitExportDeclaration:function(a){this.visitAny(a.declaration),this.visitList(a.annotations)},visitExportDefault:function(a){this.visitAny(a.expression)},visitExportSpecifier:function(){},visitExportSpecifierSet:function(a){this.visitList(a.specifiers)},visitExportStar:function(){},visitExpressionStatement:function(a){this.visitAny(a.expression)},visitFinally:function(a){this.visitAny(a.block)},visitForInStatement:function(a){this.visitAny(a.initializer),this.visitAny(a.collection),this.visitAny(a.body)},visitForOfStatement:function(a){this.visitAny(a.initializer),this.visitAny(a.collection),this.visitAny(a.body)},visitForStatement:function(a){this.visitAny(a.initializer),this.visitAny(a.condition),this.visitAny(a.increment),this.visitAny(a.body)},visitFormalParameter:function(a){this.visitAny(a.parameter),this.visitAny(a.typeAnnotation),this.visitList(a.annotations)},visitFormalParameterList:function(a){this.visitList(a.parameters)},visitFunctionBody:function(a){this.visitList(a.statements)},visitFunctionDeclaration:function(a){this.visitAny(a.name),this.visitAny(a.parameterList),this.visitAny(a.typeAnnotation),this.visitList(a.annotations),this.visitAny(a.body)},visitFunctionExpression:function(a){this.visitAny(a.name),this.visitAny(a.parameterList),this.visitAny(a.typeAnnotation),this.visitList(a.annotations),this.visitAny(a.body)},visitFunctionType:function(a){this.visitAny(a.typeParameters),this.visitAny(a.parameterList),this.visitAny(a.returnType)},visitGeneratorComprehension:function(a){this.visitList(a.comprehensionList),this.visitAny(a.expression)},visitGetAccessor:function(a){this.visitAny(a.name),this.visitAny(a.typeAnnotation),this.visitList(a.annotations),this.visitAny(a.body)},visitIdentifierExpression:function(){},visitIfStatement:function(a){this.visitAny(a.condition),this.visitAny(a.ifClause),this.visitAny(a.elseClause)},visitImportedBinding:function(a){this.visitAny(a.binding)},visitImportDeclaration:function(a){this.visitAny(a.importClause),this.visitAny(a.moduleSpecifier)},visitImportSpecifier:function(a){this.visitAny(a.binding)},visitImportSpecifierSet:function(a){this.visitList(a.specifiers)},visitIndexSignature:function(a){this.visitAny(a.indexType),this.visitAny(a.typeAnnotation)},visitInterfaceDeclaration:function(a){this.visitAny(a.typeParameters),this.visitAny(a.objectType)},visitLabelledStatement:function(a){this.visitAny(a.statement)},visitLiteralExpression:function(){},visitLiteralPropertyName:function(){},visitMemberExpression:function(a){this.visitAny(a.operand)},visitMemberLookupExpression:function(a){this.visitAny(a.operand),this.visitAny(a.memberExpression)},visitMethodSignature:function(a){this.visitAny(a.name),this.visitAny(a.callSignature)},visitModule:function(a){this.visitList(a.scriptItemList)},visitModuleDeclaration:function(a){this.visitAny(a.binding),this.visitAny(a.expression)},visitModuleSpecifier:function(){},visitNamedExport:function(a){this.visitAny(a.moduleSpecifier),this.visitAny(a.specifierSet)},visitNewExpression:function(a){this.visitAny(a.operand),this.visitAny(a.args)},visitObjectLiteralExpression:function(a){this.visitList(a.propertyNameAndValues)},visitObjectPattern:function(a){this.visitList(a.fields)},visitObjectPatternField:function(a){this.visitAny(a.name),this.visitAny(a.element)},visitObjectType:function(a){this.visitList(a.typeMembers)},visitParenExpression:function(a){this.visitAny(a.expression)},visitPostfixExpression:function(a){this.visitAny(a.operand)},visitPredefinedType:function(){},visitScript:function(a){this.visitList(a.scriptItemList)},visitPropertyMethodAssignment:function(a){this.visitAny(a.name),this.visitAny(a.parameterList),this.visitAny(a.typeAnnotation),this.visitList(a.annotations),this.visitAny(a.body)},visitPropertyNameAssignment:function(a){this.visitAny(a.name),this.visitAny(a.value)},visitPropertyNameShorthand:function(){},visitPropertyVariableDeclaration:function(a){this.visitAny(a.name),this.visitAny(a.typeAnnotation),this.visitList(a.annotations)},visitPropertySignature:function(a){this.visitAny(a.name),this.visitAny(a.typeAnnotation)},visitRestParameter:function(a){this.visitAny(a.identifier),this.visitAny(a.typeAnnotation)},visitReturnStatement:function(a){this.visitAny(a.expression)},visitSetAccessor:function(a){this.visitAny(a.name),this.visitAny(a.parameterList),this.visitList(a.annotations),this.visitAny(a.body)},visitSpreadExpression:function(a){this.visitAny(a.expression)},visitSpreadPatternElement:function(a){this.visitAny(a.lvalue)},visitSuperExpression:function(){},visitSwitchStatement:function(a){this.visitAny(a.expression),this.visitList(a.caseClauses)},visitSyntaxErrorTree:function(){},visitTemplateLiteralExpression:function(a){this.visitAny(a.operand),this.visitList(a.elements)},visitTemplateLiteralPortion:function(){},visitTemplateSubstitution:function(a){this.visitAny(a.expression)},visitThisExpression:function(){},visitThrowStatement:function(a){this.visitAny(a.value)},visitTryStatement:function(a){this.visitAny(a.body),this.visitAny(a.catchBlock),this.visitAny(a.finallyBlock)},visitTypeArguments:function(a){this.visitList(a.args)},visitTypeName:function(a){this.visitAny(a.moduleName)},visitTypeParameter:function(a){this.visitAny(a.extendsType)},visitTypeParameters:function(a){this.visitList(a.parameters)},visitTypeReference:function(a){this.visitAny(a.typeName),this.visitAny(a.args)},visitUnaryExpression:function(a){this.visitAny(a.operand)},visitUnionType:function(a){this.visitList(a.types)},visitVariableDeclaration:function(a){this.visitAny(a.lvalue),this.visitAny(a.typeAnnotation),this.visitAny(a.initializer)},visitVariableDeclarationList:function(a){this.visitList(a.declarations)},visitVariableStatement:function(a){this.visitAny(a.declarations)},visitWhileStatement:function(a){this.visitAny(a.condition),this.visitAny(a.body)},visitWithStatement:function(a){this.visitAny(a.expression),this.visitAny(a.body)},visitYieldExpression:function(a){this.visitAny(a.expression)}},{}),{get ParseTreeVisitor(){return a}}}),System.registerModule("traceur@0.0.79/src/syntax/PredefinedName.js",[],function(){"use strict";var a="$arguments",b="any",c="apply",d="arguments",e="Array",f="as",g="async",h="await",i="bind",j="call",k="configurable",l="constructor",m="create",n="current",o="defineProperty",p="enumerable",q="freeze",r="from",s="Function",t="get",u="has",v="length",w="module",x="new",y="Object",z="Object",A="of",B="preventExtensions",C="prototype",D="push",E="set",F="slice",G="this",H="$traceurRuntime",I="undefined",J="writable";return{get $ARGUMENTS(){return a},get ANY(){return b},get APPLY(){return c},get ARGUMENTS(){return d},get ARRAY(){return e},get AS(){return f},get ASYNC(){return g},get AWAIT(){return h},get BIND(){return i},get CALL(){return j},get CONFIGURABLE(){return k},get CONSTRUCTOR(){return l},get CREATE(){return m},get CURRENT(){return n},get DEFINE_PROPERTY(){return o},get ENUMERABLE(){return p},get FREEZE(){return q},get FROM(){return r},get FUNCTION(){return s},get GET(){return t},get HAS(){return u},get LENGTH(){return v},get MODULE(){return w},get NEW(){return x},get OBJECT(){return y},get OBJECT_NAME(){return z},get OF(){return A},get PREVENT_EXTENSIONS(){return B},get PROTOTYPE(){return C},get PUSH(){return D},get SET(){return E},get SLICE(){return F},get THIS(){return G},get TRACEUR_RUNTIME(){return H},get UNDEFINED(){return I},get WRITABLE(){return J}}}),System.registerModule("traceur@0.0.79/src/semantics/util.js",[],function(){"use strict";function a(a){for(var b=0;b<a.length;b++){if(!a[b].isDirectivePrologue())return!1;if(a[b].isUseStrictDirective())return!0}return!1}function b(a){return a.type===h?b(a.expression):a.type===f&&a.identifierToken.value===j}function c(a){return a.type===h?c(a.expression):a.type===i&&a.operator.type===k&&d(a.operand)}function d(a){return a.type===h?d(a.expression):a.type===g
}var e=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),f=e.IDENTIFIER_EXPRESSION,g=e.LITERAL_EXPRESSION,h=e.PAREN_EXPRESSION,i=e.UNARY_EXPRESSION,j=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").UNDEFINED,k=System.get("traceur@0.0.79/src/syntax/TokenType.js").VOID;return{get hasUseStrict(){return a},get isUndefined(){return b},get isVoidExpression(){return c},get isLiteralExpression(){return d}}}),System.registerModule("traceur@0.0.79/src/semantics/isTreeStrict.js",[],function(){"use strict";function a(b){switch(b.type){case d:case e:case j:return!0;case f:return n(b.statements);case h:case g:case k:return a(b.body);case c:return b.body.type===f?a(b.body):!1;case i:case m:return a(b.body);case l:return n(b.scriptItemList);default:return!1}}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),c=b.ARROW_FUNCTION_EXPRESSION,d=b.CLASS_DECLARATION,e=b.CLASS_EXPRESSION,f=b.FUNCTION_BODY,g=b.FUNCTION_DECLARATION,h=b.FUNCTION_EXPRESSION,i=b.GET_ACCESSOR,j=b.MODULE,k=b.PROPERTY_METHOD_ASSIGNMENT,l=b.SCRIPT,m=b.SET_ACCESSOR,n=System.get("traceur@0.0.79/src/semantics/util.js").hasUseStrict;return{get isTreeStrict(){return a}}}),System.registerModule("traceur@0.0.79/src/semantics/Scope.js",[],function(){"use strict";function a(a,b,c){a.reportError(b.location&&b.location.start,"Duplicate declaration, "+c)}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),c=b.BLOCK,d=b.CATCH,e=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,f=System.get("traceur@0.0.79/src/semantics/isTreeStrict.js").isTreeStrict,g=function(a,b){this.parent=a,this.tree=b,this.variableDeclarations=Object.create(null),this.lexicalDeclarations=Object.create(null),this.strictMode=a&&a.strictMode||f(b)};return $traceurRuntime.createClass(g,{addBinding:function(a,b,c){b===e?this.addVar(a,c):this.addDeclaration(a,b,c)},addVar:function(b,c){var d=b.getStringValue();return this.lexicalDeclarations[d]?void a(c,b,d):(this.variableDeclarations[d]={type:e,tree:b},void(!this.isVarScope&&this.parent&&this.parent.addVar(b,c)))},addDeclaration:function(b,c,d){var e=b.getStringValue();return this.lexicalDeclarations[e]||this.variableDeclarations[e]?void a(d,b,e):void(this.lexicalDeclarations[e]={type:c,tree:b})},renameBinding:function(a,b,c,d){b.getStringValue();c==e?this.lexicalDeclarations[a]&&(delete this.lexicalDeclarations[a],this.addVar(b,d)):this.variableDeclarations[a]&&(delete this.variableDeclarations[a],this.addDeclaration(b,c,d),!this.isVarScope&&this.parent&&this.parent.renameBinding(a,b,c))},get isVarScope(){switch(this.tree.type){case c:case d:return!1}return!0},getVarScope:function(){return this.isVarScope?this:this.parent?this.parent.getVarScope():null},getBinding:function(a){var b=a.getStringValue();return this.getBindingByName(b)},getBindingByName:function(a){var b=this.lexicalDeclarations[a];return b?b:(b=this.variableDeclarations[a],b&&this.isVarScope?b:this.parent?this.parent.getBindingByName(a):null)},getAllBindingNames:function(){var a,b=Object.create(null);for(a in this.variableDeclarations)b[a]=!0;for(a in this.lexicalDeclarations)b[a]=!0;return b},getVariableBindingNames:function(){var a=Object.create(null);for(var b in this.variableDeclarations)a[b]=!0;return a},getLexicalBindingNames:function(){var a=Object.create(null);for(var b in this.lexicalDeclarations)a[b]=!0;return a},hasBindingName:function(a){return this.lexicalDeclarations[a]||this.variableDeclarations[a]},hasLexicalBindingName:function(a){return this.lexicalDeclarations[a]},hasVariableBindingName:function(a){return this.variableDeclarations[a]}},{}),{get Scope(){return g}}}),System.registerModule("traceur@0.0.79/src/semantics/ScopeVisitor.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/runtime/polyfills/Map.js").Map,b=System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor,c=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,d=System.get("traceur@0.0.79/src/semantics/Scope.js").Scope,e=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),f=e.COMPREHENSION_FOR,g=e.VARIABLE_DECLARATION_LIST,h=function(){this.map_=new a,this.scope=null,this.withBlockCounter_=0},i=h;return $traceurRuntime.createClass(h,{getScopeForTree:function(a){return this.map_.get(a)},createScope:function(a){return new d(this.scope,a)},pushScope:function(a){var b=this.createScope(a);return this.map_.set(a,b),this.scope=b},popScope:function(a){if(this.scope!==a)throw new Error("ScopeVisitor scope mismatch");this.scope=a.parent},visitScript:function(a){var b=this.pushScope(a);$traceurRuntime.superGet(this,i.prototype,"visitScript").call(this,a),this.popScope(b)},visitModule:function(a){var b=this.pushScope(a);$traceurRuntime.superGet(this,i.prototype,"visitModule").call(this,a),this.popScope(b)},visitBlock:function(a){var b=this.pushScope(a);$traceurRuntime.superGet(this,i.prototype,"visitBlock").call(this,a),this.popScope(b)},visitCatch:function(a){var b=this.pushScope(a);this.visitAny(a.binding),this.visitList(a.catchBody.statements),this.popScope(b)},visitFunctionBodyForScope:function(a){var b=void 0!==arguments[1]?arguments[1]:a.parameterList,c=this.pushScope(a);this.visitAny(b),this.visitAny(a.body),this.popScope(c)},visitFunctionExpression:function(a){this.visitFunctionBodyForScope(a)},visitFunctionDeclaration:function(a){this.visitAny(a.name),this.visitFunctionBodyForScope(a)},visitArrowFunctionExpression:function(a){this.visitFunctionBodyForScope(a)},visitGetAccessor:function(a){this.visitFunctionBodyForScope(a,null)},visitSetAccessor:function(a){this.visitFunctionBodyForScope(a)},visitPropertyMethodAssignment:function(a){this.visitFunctionBodyForScope(a)},visitClassDeclaration:function(a){this.visitAny(a.superClass);var b=this.pushScope(a);this.visitAny(a.name),this.visitList(a.elements),this.popScope(b)},visitClassExpression:function(a){this.visitAny(a.superClass);var b;a.name&&(b=this.pushScope(a),this.visitAny(a.name)),this.visitList(a.elements),a.name&&this.popScope(b)},visitWithStatement:function(a){this.visitAny(a.expression),this.withBlockCounter_++,this.visitAny(a.body),this.withBlockCounter_--},get inWithBlock(){return this.withBlockCounter_>0},visitLoop_:function(a,b){if(a.initializer.type!==g||a.initializer.declarationType===c)return void b();var d=this.pushScope(a);b(),this.popScope(d)},visitForInStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,i.prototype,"visitForInStatement").call(b,a)})},visitForOfStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,i.prototype,"visitForOfStatement").call(b,a)})},visitForStatement:function(a){var b=this;a.initializer?this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,i.prototype,"visitForStatement").call(b,a)}):$traceurRuntime.superGet(this,i.prototype,"visitForStatement").call(this,a)},visitComprehension_:function(a){for(var b=[],c=0;c<a.comprehensionList.length;c++){var d=null;a.comprehensionList[c].type===f&&(d=this.pushScope(a.comprehensionList[c])),b.push(d),this.visitAny(a.comprehensionList[c])}this.visitAny(a.expression);for(var c=b.length-1;c>=0;c--)b[c]&&this.popScope(b[c])},visitArrayComprehension:function(a){this.visitComprehension_(a)},visitGeneratorComprehension:function(a){this.visitComprehension_(a)},visitPredefinedType:function(){},visitTypeArguments:function(){},visitFunctionType:function(){}},{},b),{get ScopeVisitor(){return h}}}),System.registerModule("traceur@0.0.79/src/semantics/ScopeChainBuilder.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/TokenType.js"),b=a.CONST,c=a.LET,d=a.VAR,e=System.get("traceur@0.0.79/src/semantics/ScopeVisitor.js").ScopeVisitor,f=function(a){$traceurRuntime.superConstructor(g).call(this),this.reporter=a,this.declarationType_=null},g=f;return $traceurRuntime.createClass(f,{visitCatch:function(a){var b=this.pushScope(a);this.declarationType_=c,this.visitAny(a.binding),this.visitList(a.catchBody.statements),this.popScope(b)},visitImportedBinding:function(a){this.declarationType_=b,$traceurRuntime.superGet(this,g.prototype,"visitImportedBinding").call(this,a)},visitVariableDeclarationList:function(a){this.declarationType_=a.declarationType,$traceurRuntime.superGet(this,g.prototype,"visitVariableDeclarationList").call(this,a)},visitBindingIdentifier:function(a){this.declareVariable(a)},visitFunctionExpression:function(a){var c=this.pushScope(a);a.name&&(this.declarationType_=b,this.visitAny(a.name)),this.visitAny(a.parameterList),this.visitAny(a.body),this.popScope(c)},visitFormalParameter:function(a){this.declarationType_=d,$traceurRuntime.superGet(this,g.prototype,"visitFormalParameter").call(this,a)},visitFunctionDeclaration:function(a){if(this.scope)if(this.scope.isVarScope)this.declarationType_=d,this.visitAny(a.name);else{if(!this.scope.strictMode){var b=this.scope.getVarScope();b&&b.addVar(a.name,this.reporter)}this.declarationType_=c,this.visitAny(a.name)}this.visitFunctionBodyForScope(a,a.parameterList,a.body)},visitClassDeclaration:function(a){this.visitAny(a.superClass),this.declarationType_=c,this.visitAny(a.name);var d=this.pushScope(a);this.declarationType_=b,this.visitAny(a.name),this.visitList(a.elements),this.popScope(d)},visitClassExpression:function(a){this.visitAny(a.superClass);var c;a.name&&(c=this.pushScope(a),this.declarationType_=b,this.visitAny(a.name)),this.visitList(a.elements),a.name&&this.popScope(c)},visitComprehensionFor:function(a){this.declarationType_=c,$traceurRuntime.superGet(this,g.prototype,"visitComprehensionFor").call(this,a)},declareVariable:function(a){this.scope.addBinding(a,this.declarationType_,this.reporter)}},{},e),{get ScopeChainBuilder(){return f}}}),System.registerModule("traceur@0.0.79/src/semantics/ConstChecker.js",[],function(){"use strict";function a(a,b){var c=new h(b);c.visitAny(a);var d=new i(c,b);d.visitAny(a)}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js").IDENTIFIER_EXPRESSION,c=System.get("traceur@0.0.79/src/syntax/TokenType.js"),d=c.CONST,e=c.MINUS_MINUS,f=c.PLUS_PLUS,g=System.get("traceur@0.0.79/src/semantics/ScopeVisitor.js").ScopeVisitor,h=System.get("traceur@0.0.79/src/semantics/ScopeChainBuilder.js").ScopeChainBuilder,i=function(a,b){$traceurRuntime.superConstructor(j).call(this),this.scopeBuilder_=a,this.reporter_=b},j=i;return $traceurRuntime.createClass(i,{pushScope:function(a){return this.scope=this.scopeBuilder_.getScopeForTree(a)},visitUnaryExpression:function(a){a.operand.type!==b||a.operator.type!==f&&a.operator.type!==e||this.validateMutation_(a.operand),$traceurRuntime.superGet(this,j.prototype,"visitUnaryExpression").call(this,a)},visitPostfixExpression:function(a){a.operand.type===b&&this.validateMutation_(a.operand),$traceurRuntime.superGet(this,j.prototype,"visitPostfixExpression").call(this,a)},visitBinaryExpression:function(a){a.left.type===b&&a.operator.isAssignmentOperator()&&this.validateMutation_(a.left),$traceurRuntime.superGet(this,j.prototype,"visitBinaryExpression").call(this,a)},validateMutation_:function(a){if(!this.inWithBlock){var b=this.scope.getBinding(a);if(null!==b){var c=b,e=c.type,f=c.tree;e===d&&this.reportError_(a.location,f.getStringValue()+" is read-only")}}},reportError_:function(a,b){this.reporter_.reportError(a.start,b)}},{},g),{get ConstChecker(){return i},get validate(){return a}}}),System.registerModule("traceur@0.0.79/src/syntax/TokenType",[],function(){"use strict";var a="&",b="&=",c="&&",d="=>",e="@",f="`",g="!",h="|",i="|=",j="break",k="^",l="^=",m="case",n="catch",o="class",p=">",q="}",r=")",s="]",t=":",u=",",v="const",w="continue",x="debugger",y="default",z="delete",A="do",B="...",C="else",D="End of File",E="enum",F="=",G="==",H="===",I="error",J="export",K="extends",L="false",M="finally",N="for",O="function",P=">=",Q="identifier",R="if",S="implements",T="import",U="in",V="instanceof",W="interface",X="<<",Y="<<=",Z="<=",$="let",_="-",ab="-=",bb="--",cb="new",db="no substitution template",eb="!=",fb="!==",gb="null",hb="number literal",ib="<",jb="{",kb="(",lb="[",mb="||",nb="package",ob="%",pb="%=",qb=".",rb="+",sb="+=",tb="++",ub="private",vb="protected",wb="public",xb="?",yb="regular expression literal",zb="return",Ab=">>",Bb=">>=",Cb=";",Db="/",Eb="/=",Fb="*",Gb="*=",Hb="**",Ib="**=",Jb="static",Kb="string literal",Lb="super",Mb="switch",Nb="template head",Ob="template middle",Pb="template tail",Qb="this",Rb="throw",Sb="~",Tb="true",Ub="try",Vb="typeof",Wb=">>>",Xb=">>>=",Yb="var",Zb="void",$b="while",_b="with",ac="yield";return{get AMPERSAND(){return a},get AMPERSAND_EQUAL(){return b},get AND(){return c},get ARROW(){return d},get AT(){return e},get BACK_QUOTE(){return f},get BANG(){return g},get BAR(){return h},get BAR_EQUAL(){return i},get BREAK(){return j},get CARET(){return k},get CARET_EQUAL(){return l},get CASE(){return m},get CATCH(){return n},get CLASS(){return o},get CLOSE_ANGLE(){return p},get CLOSE_CURLY(){return q},get CLOSE_PAREN(){return r},get CLOSE_SQUARE(){return s},get COLON(){return t},get COMMA(){return u},get CONST(){return v},get CONTINUE(){return w},get DEBUGGER(){return x},get DEFAULT(){return y},get DELETE(){return z},get DO(){return A},get DOT_DOT_DOT(){return B},get ELSE(){return C},get END_OF_FILE(){return D},get ENUM(){return E},get EQUAL(){return F},get EQUAL_EQUAL(){return G},get EQUAL_EQUAL_EQUAL(){return H},get ERROR(){return I},get EXPORT(){return J},get EXTENDS(){return K},get FALSE(){return L},get FINALLY(){return M},get FOR(){return N},get FUNCTION(){return O},get GREATER_EQUAL(){return P},get IDENTIFIER(){return Q},get IF(){return R},get IMPLEMENTS(){return S},get IMPORT(){return T},get IN(){return U},get INSTANCEOF(){return V},get INTERFACE(){return W},get LEFT_SHIFT(){return X},get LEFT_SHIFT_EQUAL(){return Y},get LESS_EQUAL(){return Z},get LET(){return $},get MINUS(){return _},get MINUS_EQUAL(){return ab},get MINUS_MINUS(){return bb},get NEW(){return cb},get NO_SUBSTITUTION_TEMPLATE(){return db},get NOT_EQUAL(){return eb},get NOT_EQUAL_EQUAL(){return fb},get NULL(){return gb},get NUMBER(){return hb},get OPEN_ANGLE(){return ib},get OPEN_CURLY(){return jb},get OPEN_PAREN(){return kb},get OPEN_SQUARE(){return lb},get OR(){return mb},get PACKAGE(){return nb},get PERCENT(){return ob},get PERCENT_EQUAL(){return pb},get PERIOD(){return qb},get PLUS(){return rb},get PLUS_EQUAL(){return sb},get PLUS_PLUS(){return tb},get PRIVATE(){return ub},get PROTECTED(){return vb},get PUBLIC(){return wb},get QUESTION(){return xb},get REGULAR_EXPRESSION(){return yb},get RETURN(){return zb},get RIGHT_SHIFT(){return Ab},get RIGHT_SHIFT_EQUAL(){return Bb},get SEMI_COLON(){return Cb},get SLASH(){return Db},get SLASH_EQUAL(){return Eb},get STAR(){return Fb},get STAR_EQUAL(){return Gb},get STAR_STAR(){return Hb},get STAR_STAR_EQUAL(){return Ib},get STATIC(){return Jb},get STRING(){return Kb},get SUPER(){return Lb},get SWITCH(){return Mb},get TEMPLATE_HEAD(){return Nb},get TEMPLATE_MIDDLE(){return Ob},get TEMPLATE_TAIL(){return Pb},get THIS(){return Qb},get THROW(){return Rb},get TILDE(){return Sb},get TRUE(){return Tb},get TRY(){return Ub},get TYPEOF(){return Vb},get UNSIGNED_RIGHT_SHIFT(){return Wb},get UNSIGNED_RIGHT_SHIFT_EQUAL(){return Xb},get VAR(){return Yb},get VOID(){return Zb},get WHILE(){return $b},get WITH(){return _b},get YIELD(){return ac}}}),System.registerModule("traceur@0.0.79/src/syntax/trees/ParseTreeType",[],function(){"use strict";var a="ANNOTATION",b="ANON_BLOCK",c="ARGUMENT_LIST",d="ARRAY_COMPREHENSION",e="ARRAY_LITERAL_EXPRESSION",f="ARRAY_PATTERN",g="ARRAY_TYPE",h="ARROW_FUNCTION_EXPRESSION",i="ASSIGNMENT_ELEMENT",j="AWAIT_EXPRESSION",k="BINARY_EXPRESSION",l="BINDING_ELEMENT",m="BINDING_IDENTIFIER",n="BLOCK",o="BREAK_STATEMENT",p="CALL_EXPRESSION",q="CALL_SIGNATURE",r="CASE_CLAUSE",s="CATCH",t="CLASS_DECLARATION",u="CLASS_EXPRESSION",v="COMMA_EXPRESSION",w="COMPREHENSION_FOR",x="COMPREHENSION_IF",y="COMPUTED_PROPERTY_NAME",z="CONDITIONAL_EXPRESSION",A="CONSTRUCT_SIGNATURE",B="CONSTRUCTOR_TYPE",C="CONTINUE_STATEMENT",D="COVER_FORMALS",E="COVER_INITIALIZED_NAME",F="DEBUGGER_STATEMENT",G="DEFAULT_CLAUSE",H="DO_WHILE_STATEMENT",I="EMPTY_STATEMENT",J="EXPORT_DECLARATION",K="EXPORT_DEFAULT",L="EXPORT_SPECIFIER",M="EXPORT_SPECIFIER_SET",N="EXPORT_STAR",O="EXPRESSION_STATEMENT",P="FINALLY",Q="FOR_IN_STATEMENT",R="FOR_OF_STATEMENT",S="FOR_STATEMENT",T="FORMAL_PARAMETER",U="FORMAL_PARAMETER_LIST",V="FUNCTION_BODY",W="FUNCTION_DECLARATION",X="FUNCTION_EXPRESSION",Y="FUNCTION_TYPE",Z="GENERATOR_COMPREHENSION",$="GET_ACCESSOR",_="IDENTIFIER_EXPRESSION",ab="IF_STATEMENT",bb="IMPORT_DECLARATION",cb="IMPORT_SPECIFIER",db="IMPORT_SPECIFIER_SET",eb="IMPORTED_BINDING",fb="INDEX_SIGNATURE",gb="INTERFACE_DECLARATION",hb="LABELLED_STATEMENT",ib="LITERAL_EXPRESSION",jb="LITERAL_PROPERTY_NAME",kb="MEMBER_EXPRESSION",lb="MEMBER_LOOKUP_EXPRESSION",mb="METHOD_SIGNATURE",nb="MODULE",ob="MODULE_DECLARATION",pb="MODULE_SPECIFIER",qb="NAMED_EXPORT",rb="NEW_EXPRESSION",sb="OBJECT_LITERAL_EXPRESSION",tb="OBJECT_PATTERN",ub="OBJECT_PATTERN_FIELD",vb="OBJECT_TYPE",wb="PAREN_EXPRESSION",xb="POSTFIX_EXPRESSION",yb="PREDEFINED_TYPE",zb="PROPERTY_METHOD_ASSIGNMENT",Ab="PROPERTY_NAME_ASSIGNMENT",Bb="PROPERTY_NAME_SHORTHAND",Cb="PROPERTY_SIGNATURE",Db="PROPERTY_VARIABLE_DECLARATION",Eb="REST_PARAMETER",Fb="RETURN_STATEMENT",Gb="SCRIPT",Hb="SET_ACCESSOR",Ib="SPREAD_EXPRESSION",Jb="SPREAD_PATTERN_ELEMENT",Kb="STATE_MACHINE",Lb="SUPER_EXPRESSION",Mb="SWITCH_STATEMENT",Nb="SYNTAX_ERROR_TREE",Ob="TEMPLATE_LITERAL_EXPRESSION",Pb="TEMPLATE_LITERAL_PORTION",Qb="TEMPLATE_SUBSTITUTION",Rb="THIS_EXPRESSION",Sb="THROW_STATEMENT",Tb="TRY_STATEMENT",Ub="TYPE_ARGUMENTS",Vb="TYPE_NAME",Wb="TYPE_PARAMETER",Xb="TYPE_PARAMETERS",Yb="TYPE_REFERENCE",Zb="UNARY_EXPRESSION",$b="UNION_TYPE",_b="VARIABLE_DECLARATION",ac="VARIABLE_DECLARATION_LIST",bc="VARIABLE_STATEMENT",cc="WHILE_STATEMENT",dc="WITH_STATEMENT",ec="YIELD_EXPRESSION";return{get ANNOTATION(){return a},get ANON_BLOCK(){return b},get ARGUMENT_LIST(){return c},get ARRAY_COMPREHENSION(){return d},get ARRAY_LITERAL_EXPRESSION(){return e},get ARRAY_PATTERN(){return f},get ARRAY_TYPE(){return g},get ARROW_FUNCTION_EXPRESSION(){return h},get ASSIGNMENT_ELEMENT(){return i},get AWAIT_EXPRESSION(){return j},get BINARY_EXPRESSION(){return k},get BINDING_ELEMENT(){return l},get BINDING_IDENTIFIER(){return m},get BLOCK(){return n},get BREAK_STATEMENT(){return o},get CALL_EXPRESSION(){return p},get CALL_SIGNATURE(){return q},get CASE_CLAUSE(){return r},get CATCH(){return s},get CLASS_DECLARATION(){return t},get CLASS_EXPRESSION(){return u},get COMMA_EXPRESSION(){return v},get COMPREHENSION_FOR(){return w},get COMPREHENSION_IF(){return x},get COMPUTED_PROPERTY_NAME(){return y},get CONDITIONAL_EXPRESSION(){return z},get CONSTRUCT_SIGNATURE(){return A},get CONSTRUCTOR_TYPE(){return B},get CONTINUE_STATEMENT(){return C},get COVER_FORMALS(){return D},get COVER_INITIALIZED_NAME(){return E},get DEBUGGER_STATEMENT(){return F},get DEFAULT_CLAUSE(){return G},get DO_WHILE_STATEMENT(){return H},get EMPTY_STATEMENT(){return I},get EXPORT_DECLARATION(){return J},get EXPORT_DEFAULT(){return K},get EXPORT_SPECIFIER(){return L},get EXPORT_SPECIFIER_SET(){return M},get EXPORT_STAR(){return N},get EXPRESSION_STATEMENT(){return O},get FINALLY(){return P},get FOR_IN_STATEMENT(){return Q},get FOR_OF_STATEMENT(){return R},get FOR_STATEMENT(){return S},get FORMAL_PARAMETER(){return T},get FORMAL_PARAMETER_LIST(){return U},get FUNCTION_BODY(){return V},get FUNCTION_DECLARATION(){return W},get FUNCTION_EXPRESSION(){return X},get FUNCTION_TYPE(){return Y},get GENERATOR_COMPREHENSION(){return Z},get GET_ACCESSOR(){return $},get IDENTIFIER_EXPRESSION(){return _},get IF_STATEMENT(){return ab},get IMPORT_DECLARATION(){return bb},get IMPORT_SPECIFIER(){return cb},get IMPORT_SPECIFIER_SET(){return db},get IMPORTED_BINDING(){return eb},get INDEX_SIGNATURE(){return fb},get INTERFACE_DECLARATION(){return gb},get LABELLED_STATEMENT(){return hb},get LITERAL_EXPRESSION(){return ib},get LITERAL_PROPERTY_NAME(){return jb},get MEMBER_EXPRESSION(){return kb},get MEMBER_LOOKUP_EXPRESSION(){return lb},get METHOD_SIGNATURE(){return mb},get MODULE(){return nb},get MODULE_DECLARATION(){return ob},get MODULE_SPECIFIER(){return pb},get NAMED_EXPORT(){return qb},get NEW_EXPRESSION(){return rb},get OBJECT_LITERAL_EXPRESSION(){return sb},get OBJECT_PATTERN(){return tb},get OBJECT_PATTERN_FIELD(){return ub},get OBJECT_TYPE(){return vb},get PAREN_EXPRESSION(){return wb},get POSTFIX_EXPRESSION(){return xb},get PREDEFINED_TYPE(){return yb},get PROPERTY_METHOD_ASSIGNMENT(){return zb},get PROPERTY_NAME_ASSIGNMENT(){return Ab},get PROPERTY_NAME_SHORTHAND(){return Bb},get PROPERTY_SIGNATURE(){return Cb},get PROPERTY_VARIABLE_DECLARATION(){return Db},get REST_PARAMETER(){return Eb},get RETURN_STATEMENT(){return Fb},get SCRIPT(){return Gb},get SET_ACCESSOR(){return Hb},get SPREAD_EXPRESSION(){return Ib},get SPREAD_PATTERN_ELEMENT(){return Jb},get STATE_MACHINE(){return Kb},get SUPER_EXPRESSION(){return Lb},get SWITCH_STATEMENT(){return Mb},get SYNTAX_ERROR_TREE(){return Nb},get TEMPLATE_LITERAL_EXPRESSION(){return Ob},get TEMPLATE_LITERAL_PORTION(){return Pb},get TEMPLATE_SUBSTITUTION(){return Qb},get THIS_EXPRESSION(){return Rb},get THROW_STATEMENT(){return Sb},get TRY_STATEMENT(){return Tb},get TYPE_ARGUMENTS(){return Ub},get TYPE_NAME(){return Vb},get TYPE_PARAMETER(){return Wb},get TYPE_PARAMETERS(){return Xb},get TYPE_REFERENCE(){return Yb},get UNARY_EXPRESSION(){return Zb},get UNION_TYPE(){return $b},get VARIABLE_DECLARATION(){return _b},get VARIABLE_DECLARATION_LIST(){return ac},get VARIABLE_STATEMENT(){return bc},get WHILE_STATEMENT(){return cc},get WITH_STATEMENT(){return dc},get YIELD_EXPRESSION(){return ec}}}),System.registerModule("traceur@0.0.79/src/semantics/Scope",[],function(){"use strict";function a(a,b,c){a.reportError(b.location&&b.location.start,"Duplicate declaration, "+c)}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),c=b.BLOCK,d=b.CATCH,e=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,f=System.get("traceur@0.0.79/src/semantics/isTreeStrict.js").isTreeStrict,g=function(a,b){this.parent=a,this.tree=b,this.variableDeclarations=Object.create(null),this.lexicalDeclarations=Object.create(null),this.strictMode=a&&a.strictMode||f(b)};return $traceurRuntime.createClass(g,{addBinding:function(a,b,c){b===e?this.addVar(a,c):this.addDeclaration(a,b,c)},addVar:function(b,c){var d=b.getStringValue();return this.lexicalDeclarations[d]?void a(c,b,d):(this.variableDeclarations[d]={type:e,tree:b},void(!this.isVarScope&&this.parent&&this.parent.addVar(b,c)))},addDeclaration:function(b,c,d){var e=b.getStringValue();return this.lexicalDeclarations[e]||this.variableDeclarations[e]?void a(d,b,e):void(this.lexicalDeclarations[e]={type:c,tree:b})},renameBinding:function(a,b,c,d){b.getStringValue();c==e?this.lexicalDeclarations[a]&&(delete this.lexicalDeclarations[a],this.addVar(b,d)):this.variableDeclarations[a]&&(delete this.variableDeclarations[a],this.addDeclaration(b,c,d),!this.isVarScope&&this.parent&&this.parent.renameBinding(a,b,c))},get isVarScope(){switch(this.tree.type){case c:case d:return!1}return!0},getVarScope:function(){return this.isVarScope?this:this.parent?this.parent.getVarScope():null},getBinding:function(a){var b=a.getStringValue();return this.getBindingByName(b)},getBindingByName:function(a){var b=this.lexicalDeclarations[a];return b?b:(b=this.variableDeclarations[a],b&&this.isVarScope?b:this.parent?this.parent.getBindingByName(a):null)},getAllBindingNames:function(){var a,b=Object.create(null);for(a in this.variableDeclarations)b[a]=!0;for(a in this.lexicalDeclarations)b[a]=!0;return b},getVariableBindingNames:function(){var a=Object.create(null);for(var b in this.variableDeclarations)a[b]=!0;return a},getLexicalBindingNames:function(){var a=Object.create(null);for(var b in this.lexicalDeclarations)a[b]=!0;return a},hasBindingName:function(a){return this.lexicalDeclarations[a]||this.variableDeclarations[a]},hasLexicalBindingName:function(a){return this.lexicalDeclarations[a]},hasVariableBindingName:function(a){return this.variableDeclarations[a]}},{}),{get Scope(){return g}}}),System.registerModule("traceur@0.0.79/src/semantics/ScopeReferences.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/semantics/Scope").Scope,b=function(a,b){$traceurRuntime.superConstructor(c).call(this,a,b),this.freeVars_=Object.create(null)},c=b;return $traceurRuntime.createClass(b,{addReference:function(a,b){this.freeVars_[a]||(this.freeVars_[a]=[]),this.freeVars_[a].push(b)},hasFreeVariable:function(a){return!!this.freeVars_[a]}},{},a),{get ScopeReferences(){return b}}}),System.registerModule("traceur@0.0.79/src/semantics/ScopeChainBuilderWithReferences.js",[],function(){"use strict";function a(a){for(;a;a=a.parent)switch(a.tree.type){case f:case g:case h:case k:case l:return!0}return!1}function b(a){for(;a;a=a.parent)if(a.tree.type===j)return!0;return!1}var c=System.get("traceur@0.0.79/src/semantics/ScopeChainBuilder.js").ScopeChainBuilder,d=System.get("traceur@0.0.79/src/semantics/ScopeReferences.js").ScopeReferences,e=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType"),f=e.FUNCTION_DECLARATION,g=e.FUNCTION_EXPRESSION,h=e.GET_ACCESSOR,i=e.IDENTIFIER_EXPRESSION,j=e.MODULE,k=e.PROPERTY_METHOD_ASSIGNMENT,l=e.SET_ACCESSOR,m=System.get("traceur@0.0.79/src/syntax/TokenType").TYPEOF,n=function(){$traceurRuntime.superConstructor(o).apply(this,arguments)},o=n;return $traceurRuntime.createClass(n,{createScope:function(a){return new d(this.scope,a)},visitIdentifierExpression:function(c){if(!this.inWithBlock){var d=this.scope,e=c.getStringValue();"arguments"===e&&a(d)||"__moduleName"===e&&b(d)||this.referenceFound(c,e)}},visitUnaryExpression:function(a){if(a.operator.type===m&&a.operand.type===i){var b=this.scope,c=b.getBinding(a.operand);c||b.addVar(a.operand,this.reporter)}else $traceurRuntime.superGet(this,o.prototype,"visitUnaryExpression").call(this,a)},referenceFound:function(a,b){this.scope.addReference(b,a)}},{},c),{get ScopeChainBuilderWithReferences(){return n}}}),System.registerModule("traceur@0.0.79/src/semantics/FreeVariableChecker.js",[],function(){"use strict";function a(a,b){var d=void 0!==arguments[2]?arguments[2]:Reflect.global,e=new c(b,d);e.visitAny(a)}var b=System.get("traceur@0.0.79/src/semantics/ScopeChainBuilderWithReferences.js").ScopeChainBuilderWithReferences,c=function(a,b){$traceurRuntime.superConstructor(d).call(this,a),this.global_=b},d=c;return $traceurRuntime.createClass(c,{referenceFound:function(a,b){this.scope.getBinding(a)||b in this.global_||this.reporter.reportError(a.location.start,b+" is not defined")}},{},b),{get validate(){return a}}}),System.registerModule("traceur@0.0.79/src/util/JSON.js",[],function(){"use strict";function a(a){var c=void 0!==arguments[1]?arguments[1]:function(a,b){return b};return b(c("",a),c)}function b(a,c){var d,e;if(Array.isArray(a)){var f=a.length;d=Array(f);for(var g=0;f>g;g++)e=b(c(String(g),a[g]),c),d[g]=void 0===e?null:e;return d}return a instanceof Object?(d={},Object.keys(a).forEach(function(f){e=b(c(f,a[f]),c),void 0!==e&&(d[f]=e)}),d):a}return{get transform(){return a}}}),System.registerModule("traceur@0.0.79/src/syntax/Token.js",[],function(){"use strict";function a(a){switch(a){case c:case d:case e:case f:case g:case h:case i:case j:case k:case l:case m:case n:case o:return!0}return!1}var b=System.get("traceur@0.0.79/src/syntax/TokenType.js"),c=b.AMPERSAND_EQUAL,d=b.BAR_EQUAL,e=b.CARET_EQUAL,f=b.EQUAL,g=b.LEFT_SHIFT_EQUAL,h=b.MINUS_EQUAL,i=b.PERCENT_EQUAL,j=b.PLUS_EQUAL,k=b.RIGHT_SHIFT_EQUAL,l=b.SLASH_EQUAL,m=b.STAR_EQUAL,n=b.STAR_STAR_EQUAL,o=b.UNSIGNED_RIGHT_SHIFT_EQUAL,p=function(a,b){this.type=a,this.location=b};return $traceurRuntime.createClass(p,{toString:function(){return this.type},isAssignmentOperator:function(){return a(this.type)},isKeyword:function(){return!1},isStrictKeyword:function(){return!1}},{}),{get Token(){return p},get isAssignmentOperator(){return a}}}),System.registerModule("traceur@0.0.79/src/syntax/trees/ParseTree.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),b=System.get("traceur@0.0.79/src/syntax/TokenType.js"),c=b.IDENTIFIER,d=b.STAR,e=b.STRING,f=b.VAR,g=System.get("traceur@0.0.79/src/syntax/Token.js").Token,h=System.get("traceur@0.0.79/src/util/JSON.js"),i=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").ASYNC,j=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),k=j.ARRAY_COMPREHENSION,l=j.ARRAY_LITERAL_EXPRESSION,m=j.ARRAY_PATTERN,n=j.ARROW_FUNCTION_EXPRESSION,o=j.AWAIT_EXPRESSION,p=j.BINARY_EXPRESSION,q=j.BINDING_IDENTIFIER,r=j.BLOCK,s=j.BREAK_STATEMENT,t=j.CALL_EXPRESSION,u=j.CLASS_DECLARATION,v=j.CLASS_EXPRESSION,w=j.COMMA_EXPRESSION,x=j.CONDITIONAL_EXPRESSION,y=j.CONTINUE_STATEMENT,z=j.DEBUGGER_STATEMENT,A=j.DO_WHILE_STATEMENT,B=j.EMPTY_STATEMENT,C=j.EXPORT_DECLARATION,D=j.EXPRESSION_STATEMENT,E=j.FORMAL_PARAMETER,F=j.FOR_IN_STATEMENT,G=j.FOR_OF_STATEMENT,H=j.FOR_STATEMENT,I=j.FUNCTION_DECLARATION,J=j.FUNCTION_EXPRESSION,K=j.GENERATOR_COMPREHENSION,L=j.IDENTIFIER_EXPRESSION,M=j.IF_STATEMENT,N=j.IMPORTED_BINDING,O=j.IMPORT_DECLARATION,P=j.INTERFACE_DECLARATION,Q=j.LABELLED_STATEMENT,R=j.LITERAL_EXPRESSION,S=j.MEMBER_EXPRESSION,T=j.MEMBER_LOOKUP_EXPRESSION,U=j.MODULE_DECLARATION,V=j.NEW_EXPRESSION,W=j.OBJECT_LITERAL_EXPRESSION,X=j.OBJECT_PATTERN,Y=j.PAREN_EXPRESSION,Z=j.POSTFIX_EXPRESSION,$=j.PREDEFINED_TYPE,_=j.PROPERTY_NAME_SHORTHAND,ab=j.REST_PARAMETER,bb=j.RETURN_STATEMENT,cb=j.SPREAD_EXPRESSION,db=j.SPREAD_PATTERN_ELEMENT,eb=j.SUPER_EXPRESSION,fb=j.SWITCH_STATEMENT,gb=j.TEMPLATE_LITERAL_EXPRESSION,hb=j.THIS_EXPRESSION,ib=j.THROW_STATEMENT,jb=j.TRY_STATEMENT,kb=j.TYPE_REFERENCE,lb=j.UNARY_EXPRESSION,mb=j.VARIABLE_DECLARATION,nb=j.VARIABLE_STATEMENT,ob=j.WHILE_STATEMENT,pb=j.WITH_STATEMENT,qb=j.YIELD_EXPRESSION,rb=function(a,b){throw new Error("Don't use for now. 'super' is currently very slow.")},sb=rb;return $traceurRuntime.createClass(rb,{isPattern:function(){switch(this.type){case m:case X:return!0;default:return!1}},isLeftHandSideExpression:function(){switch(this.type){case hb:case v:case eb:case L:case R:case l:case W:case V:case S:case T:case t:case J:case gb:return!0;case Y:return this.expression.isLeftHandSideExpression();default:return!1}},isAssignmentExpression:function(){switch(this.type){case k:case l:case n:case o:case p:case t:case v:case x:case J:case K:case L:case R:case S:case T:case V:case W:case Y:case Z:case gb:case eb:case hb:case lb:case qb:return!0;default:return!1}},isMemberExpression:function(){switch(this.type){case hb:case v:case eb:case L:case R:case l:case W:case Y:case gb:case J:case T:case S:case t:return!0;case V:return null!=this.args}return!1},isExpression:function(){return this.isAssignmentExpression()||this.type==w},isAssignmentOrSpread:function(){return this.isAssignmentExpression()||this.type==cb},isRestParameter:function(){return this.type==ab||this.type==E&&this.parameter.isRestParameter()},isSpreadPatternElement:function(){return this.type==db},isStatementListItem:function(){return this.isStatement()||this.isDeclaration()},isStatement:function(){switch(this.type){case r:case nb:case B:case D:case M:case y:case s:case bb:case pb:case Q:case ib:case jb:case z:return!0}return this.isBreakableStatement()},isDeclaration:function(){switch(this.type){case I:case u:return!0}return this.isLexicalDeclaration()},isLexicalDeclaration:function(){switch(this.type){case nb:return this.declarations.declarationType!==f}return!1},isBreakableStatement:function(){switch(this.type){case fb:return!0}return this.isIterationStatement()},isIterationStatement:function(){switch(this.type){case A:case F:case G:case H:case ob:return!0}return!1},isScriptElement:function(){switch(this.type){case u:case C:case I:case O:case P:case U:case mb:return!0}return this.isStatement()},isGenerator:function(){return null!==this.functionKind&&this.functionKind.type===d
},isAsyncFunction:function(){return null!==this.functionKind&&this.functionKind.type===c&&this.functionKind.value===i},isType:function(){switch(this.type){case $:case kb:return!0}return!1},getDirectivePrologueStringToken_:function(){var a=this;return a.type===D&&(a=a.expression)&&a.type===R&&(a=a.literalToken)?a.type!==e?null:a:null},isDirectivePrologue:function(){return null!==this.getDirectivePrologueStringToken_()},isUseStrictDirective:function(){var a=this.getDirectivePrologueStringToken_();if(!a)return!1;var b=a.value;return'"use strict"'===b||"'use strict'"===b},toJSON:function(){return h.transform(this,sb.replacer)},stringify:function(){var a=void 0!==arguments[0]?arguments[0]:2;return JSON.stringify(this,sb.replacer,a)},getStringValue:function(){switch(this.type){case L:case q:return this.identifierToken.toString();case N:return this.binding.getStringValue();case _:return this.name.toString()}throw new Error("Not yet implemented")}},{stripLocation:function(a,b){return"location"===a?void 0:b},replacer:function(a,b){if(b instanceof sb||b instanceof g){var c={type:b.type};return Object.keys(b).forEach(function(a){"location"!==a&&(c[a]=b[a])}),c}return b}}),{get ParseTreeType(){return a},get ParseTree(){return rb}}}),System.registerModule("traceur@0.0.79/src/syntax/trees/ParseTrees.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTree.js").ParseTree,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),c=b.ANNOTATION,d=function(a,b,c){this.location=a,this.name=b,this.args=c};$traceurRuntime.createClass(d,{transform:function(a){return a.transformAnnotation(this)},visit:function(a){a.visitAnnotation(this)},get type(){return c}},{},a);var e=b.ANON_BLOCK,f=function(a,b){this.location=a,this.statements=b};$traceurRuntime.createClass(f,{transform:function(a){return a.transformAnonBlock(this)},visit:function(a){a.visitAnonBlock(this)},get type(){return e}},{},a);var g=b.ARGUMENT_LIST,h=function(a,b){this.location=a,this.args=b};$traceurRuntime.createClass(h,{transform:function(a){return a.transformArgumentList(this)},visit:function(a){a.visitArgumentList(this)},get type(){return g}},{},a);var i=b.ARRAY_COMPREHENSION,j=function(a,b,c){this.location=a,this.comprehensionList=b,this.expression=c};$traceurRuntime.createClass(j,{transform:function(a){return a.transformArrayComprehension(this)},visit:function(a){a.visitArrayComprehension(this)},get type(){return i}},{},a);var k=b.ARRAY_LITERAL_EXPRESSION,l=function(a,b){this.location=a,this.elements=b};$traceurRuntime.createClass(l,{transform:function(a){return a.transformArrayLiteralExpression(this)},visit:function(a){a.visitArrayLiteralExpression(this)},get type(){return k}},{},a);var m=b.ARRAY_PATTERN,n=function(a,b){this.location=a,this.elements=b};$traceurRuntime.createClass(n,{transform:function(a){return a.transformArrayPattern(this)},visit:function(a){a.visitArrayPattern(this)},get type(){return m}},{},a);var o=b.ARRAY_TYPE,p=function(a,b){this.location=a,this.elementType=b};$traceurRuntime.createClass(p,{transform:function(a){return a.transformArrayType(this)},visit:function(a){a.visitArrayType(this)},get type(){return o}},{},a);var q=b.ARROW_FUNCTION_EXPRESSION,r=function(a,b,c,d){this.location=a,this.functionKind=b,this.parameterList=c,this.body=d};$traceurRuntime.createClass(r,{transform:function(a){return a.transformArrowFunctionExpression(this)},visit:function(a){a.visitArrowFunctionExpression(this)},get type(){return q}},{},a);var s=b.ASSIGNMENT_ELEMENT,t=function(a,b,c){this.location=a,this.assignment=b,this.initializer=c};$traceurRuntime.createClass(t,{transform:function(a){return a.transformAssignmentElement(this)},visit:function(a){a.visitAssignmentElement(this)},get type(){return s}},{},a);var u=b.AWAIT_EXPRESSION,v=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(v,{transform:function(a){return a.transformAwaitExpression(this)},visit:function(a){a.visitAwaitExpression(this)},get type(){return u}},{},a);var w=b.BINARY_EXPRESSION,x=function(a,b,c,d){this.location=a,this.left=b,this.operator=c,this.right=d};$traceurRuntime.createClass(x,{transform:function(a){return a.transformBinaryExpression(this)},visit:function(a){a.visitBinaryExpression(this)},get type(){return w}},{},a);var y=b.BINDING_ELEMENT,z=function(a,b,c){this.location=a,this.binding=b,this.initializer=c};$traceurRuntime.createClass(z,{transform:function(a){return a.transformBindingElement(this)},visit:function(a){a.visitBindingElement(this)},get type(){return y}},{},a);var A=b.BINDING_IDENTIFIER,B=function(a,b){this.location=a,this.identifierToken=b};$traceurRuntime.createClass(B,{transform:function(a){return a.transformBindingIdentifier(this)},visit:function(a){a.visitBindingIdentifier(this)},get type(){return A}},{},a);var C=b.BLOCK,D=function(a,b){this.location=a,this.statements=b};$traceurRuntime.createClass(D,{transform:function(a){return a.transformBlock(this)},visit:function(a){a.visitBlock(this)},get type(){return C}},{},a);var E=b.BREAK_STATEMENT,F=function(a,b){this.location=a,this.name=b};$traceurRuntime.createClass(F,{transform:function(a){return a.transformBreakStatement(this)},visit:function(a){a.visitBreakStatement(this)},get type(){return E}},{},a);var G=b.CALL_EXPRESSION,H=function(a,b,c){this.location=a,this.operand=b,this.args=c};$traceurRuntime.createClass(H,{transform:function(a){return a.transformCallExpression(this)},visit:function(a){a.visitCallExpression(this)},get type(){return G}},{},a);var I=b.CALL_SIGNATURE,J=function(a,b,c,d){this.location=a,this.typeParameters=b,this.parameterList=c,this.returnType=d};$traceurRuntime.createClass(J,{transform:function(a){return a.transformCallSignature(this)},visit:function(a){a.visitCallSignature(this)},get type(){return I}},{},a);var K=b.CASE_CLAUSE,L=function(a,b,c){this.location=a,this.expression=b,this.statements=c};$traceurRuntime.createClass(L,{transform:function(a){return a.transformCaseClause(this)},visit:function(a){a.visitCaseClause(this)},get type(){return K}},{},a);var M=b.CATCH,N=function(a,b,c){this.location=a,this.binding=b,this.catchBody=c};$traceurRuntime.createClass(N,{transform:function(a){return a.transformCatch(this)},visit:function(a){a.visitCatch(this)},get type(){return M}},{},a);var O=b.CLASS_DECLARATION,P=function(a,b,c,d,e,f){this.location=a,this.name=b,this.superClass=c,this.elements=d,this.annotations=e,this.typeParameters=f};$traceurRuntime.createClass(P,{transform:function(a){return a.transformClassDeclaration(this)},visit:function(a){a.visitClassDeclaration(this)},get type(){return O}},{},a);var Q=b.CLASS_EXPRESSION,R=function(a,b,c,d,e,f){this.location=a,this.name=b,this.superClass=c,this.elements=d,this.annotations=e,this.typeParameters=f};$traceurRuntime.createClass(R,{transform:function(a){return a.transformClassExpression(this)},visit:function(a){a.visitClassExpression(this)},get type(){return Q}},{},a);var S=b.COMMA_EXPRESSION,T=function(a,b){this.location=a,this.expressions=b};$traceurRuntime.createClass(T,{transform:function(a){return a.transformCommaExpression(this)},visit:function(a){a.visitCommaExpression(this)},get type(){return S}},{},a);var U=b.COMPREHENSION_FOR,V=function(a,b,c){this.location=a,this.left=b,this.iterator=c};$traceurRuntime.createClass(V,{transform:function(a){return a.transformComprehensionFor(this)},visit:function(a){a.visitComprehensionFor(this)},get type(){return U}},{},a);var W=b.COMPREHENSION_IF,X=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(X,{transform:function(a){return a.transformComprehensionIf(this)},visit:function(a){a.visitComprehensionIf(this)},get type(){return W}},{},a);var Y=b.COMPUTED_PROPERTY_NAME,Z=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(Z,{transform:function(a){return a.transformComputedPropertyName(this)},visit:function(a){a.visitComputedPropertyName(this)},get type(){return Y}},{},a);var $=b.CONDITIONAL_EXPRESSION,_=function(a,b,c,d){this.location=a,this.condition=b,this.left=c,this.right=d};$traceurRuntime.createClass(_,{transform:function(a){return a.transformConditionalExpression(this)},visit:function(a){a.visitConditionalExpression(this)},get type(){return $}},{},a);var ab=b.CONSTRUCT_SIGNATURE,bb=function(a,b,c,d){this.location=a,this.typeParameters=b,this.parameterList=c,this.returnType=d};$traceurRuntime.createClass(bb,{transform:function(a){return a.transformConstructSignature(this)},visit:function(a){a.visitConstructSignature(this)},get type(){return ab}},{},a);var cb=b.CONSTRUCTOR_TYPE,db=function(a,b,c,d){this.location=a,this.typeParameters=b,this.parameterList=c,this.returnType=d};$traceurRuntime.createClass(db,{transform:function(a){return a.transformConstructorType(this)},visit:function(a){a.visitConstructorType(this)},get type(){return cb}},{},a);var eb=b.CONTINUE_STATEMENT,fb=function(a,b){this.location=a,this.name=b};$traceurRuntime.createClass(fb,{transform:function(a){return a.transformContinueStatement(this)},visit:function(a){a.visitContinueStatement(this)},get type(){return eb}},{},a);var gb=b.COVER_FORMALS,hb=function(a,b){this.location=a,this.expressions=b};$traceurRuntime.createClass(hb,{transform:function(a){return a.transformCoverFormals(this)},visit:function(a){a.visitCoverFormals(this)},get type(){return gb}},{},a);var ib=b.COVER_INITIALIZED_NAME,jb=function(a,b,c,d){this.location=a,this.name=b,this.equalToken=c,this.initializer=d};$traceurRuntime.createClass(jb,{transform:function(a){return a.transformCoverInitializedName(this)},visit:function(a){a.visitCoverInitializedName(this)},get type(){return ib}},{},a);var kb=b.DEBUGGER_STATEMENT,lb=function(a){this.location=a};$traceurRuntime.createClass(lb,{transform:function(a){return a.transformDebuggerStatement(this)},visit:function(a){a.visitDebuggerStatement(this)},get type(){return kb}},{},a);var mb=b.DEFAULT_CLAUSE,nb=function(a,b){this.location=a,this.statements=b};$traceurRuntime.createClass(nb,{transform:function(a){return a.transformDefaultClause(this)},visit:function(a){a.visitDefaultClause(this)},get type(){return mb}},{},a);var ob=b.DO_WHILE_STATEMENT,pb=function(a,b,c){this.location=a,this.body=b,this.condition=c};$traceurRuntime.createClass(pb,{transform:function(a){return a.transformDoWhileStatement(this)},visit:function(a){a.visitDoWhileStatement(this)},get type(){return ob}},{},a);var qb=b.EMPTY_STATEMENT,rb=function(a){this.location=a};$traceurRuntime.createClass(rb,{transform:function(a){return a.transformEmptyStatement(this)},visit:function(a){a.visitEmptyStatement(this)},get type(){return qb}},{},a);var sb=b.EXPORT_DECLARATION,tb=function(a,b,c){this.location=a,this.declaration=b,this.annotations=c};$traceurRuntime.createClass(tb,{transform:function(a){return a.transformExportDeclaration(this)},visit:function(a){a.visitExportDeclaration(this)},get type(){return sb}},{},a);var ub=b.EXPORT_DEFAULT,vb=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(vb,{transform:function(a){return a.transformExportDefault(this)},visit:function(a){a.visitExportDefault(this)},get type(){return ub}},{},a);var wb=b.EXPORT_SPECIFIER,xb=function(a,b,c){this.location=a,this.lhs=b,this.rhs=c};$traceurRuntime.createClass(xb,{transform:function(a){return a.transformExportSpecifier(this)},visit:function(a){a.visitExportSpecifier(this)},get type(){return wb}},{},a);var yb=b.EXPORT_SPECIFIER_SET,zb=function(a,b){this.location=a,this.specifiers=b};$traceurRuntime.createClass(zb,{transform:function(a){return a.transformExportSpecifierSet(this)},visit:function(a){a.visitExportSpecifierSet(this)},get type(){return yb}},{},a);var Ab=b.EXPORT_STAR,Bb=function(a){this.location=a};$traceurRuntime.createClass(Bb,{transform:function(a){return a.transformExportStar(this)},visit:function(a){a.visitExportStar(this)},get type(){return Ab}},{},a);var Cb=b.EXPRESSION_STATEMENT,Db=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(Db,{transform:function(a){return a.transformExpressionStatement(this)},visit:function(a){a.visitExpressionStatement(this)},get type(){return Cb}},{},a);var Eb=b.FINALLY,Fb=function(a,b){this.location=a,this.block=b};$traceurRuntime.createClass(Fb,{transform:function(a){return a.transformFinally(this)},visit:function(a){a.visitFinally(this)},get type(){return Eb}},{},a);var Gb=b.FOR_IN_STATEMENT,Hb=function(a,b,c,d){this.location=a,this.initializer=b,this.collection=c,this.body=d};$traceurRuntime.createClass(Hb,{transform:function(a){return a.transformForInStatement(this)},visit:function(a){a.visitForInStatement(this)},get type(){return Gb}},{},a);var Ib=b.FOR_OF_STATEMENT,Jb=function(a,b,c,d){this.location=a,this.initializer=b,this.collection=c,this.body=d};$traceurRuntime.createClass(Jb,{transform:function(a){return a.transformForOfStatement(this)},visit:function(a){a.visitForOfStatement(this)},get type(){return Ib}},{},a);var Kb=b.FOR_STATEMENT,Lb=function(a,b,c,d,e){this.location=a,this.initializer=b,this.condition=c,this.increment=d,this.body=e};$traceurRuntime.createClass(Lb,{transform:function(a){return a.transformForStatement(this)},visit:function(a){a.visitForStatement(this)},get type(){return Kb}},{},a);var Mb=b.FORMAL_PARAMETER,Nb=function(a,b,c,d){this.location=a,this.parameter=b,this.typeAnnotation=c,this.annotations=d};$traceurRuntime.createClass(Nb,{transform:function(a){return a.transformFormalParameter(this)},visit:function(a){a.visitFormalParameter(this)},get type(){return Mb}},{},a);var Ob=b.FORMAL_PARAMETER_LIST,Pb=function(a,b){this.location=a,this.parameters=b};$traceurRuntime.createClass(Pb,{transform:function(a){return a.transformFormalParameterList(this)},visit:function(a){a.visitFormalParameterList(this)},get type(){return Ob}},{},a);var Qb=b.FUNCTION_BODY,Rb=function(a,b){this.location=a,this.statements=b};$traceurRuntime.createClass(Rb,{transform:function(a){return a.transformFunctionBody(this)},visit:function(a){a.visitFunctionBody(this)},get type(){return Qb}},{},a);var Sb=b.FUNCTION_DECLARATION,Tb=function(a,b,c,d,e,f,g){this.location=a,this.name=b,this.functionKind=c,this.parameterList=d,this.typeAnnotation=e,this.annotations=f,this.body=g};$traceurRuntime.createClass(Tb,{transform:function(a){return a.transformFunctionDeclaration(this)},visit:function(a){a.visitFunctionDeclaration(this)},get type(){return Sb}},{},a);var Ub=b.FUNCTION_EXPRESSION,Vb=function(a,b,c,d,e,f,g){this.location=a,this.name=b,this.functionKind=c,this.parameterList=d,this.typeAnnotation=e,this.annotations=f,this.body=g};$traceurRuntime.createClass(Vb,{transform:function(a){return a.transformFunctionExpression(this)},visit:function(a){a.visitFunctionExpression(this)},get type(){return Ub}},{},a);var Wb=b.FUNCTION_TYPE,Xb=function(a,b,c,d){this.location=a,this.typeParameters=b,this.parameterList=c,this.returnType=d};$traceurRuntime.createClass(Xb,{transform:function(a){return a.transformFunctionType(this)},visit:function(a){a.visitFunctionType(this)},get type(){return Wb}},{},a);var Yb=b.GENERATOR_COMPREHENSION,Zb=function(a,b,c){this.location=a,this.comprehensionList=b,this.expression=c};$traceurRuntime.createClass(Zb,{transform:function(a){return a.transformGeneratorComprehension(this)},visit:function(a){a.visitGeneratorComprehension(this)},get type(){return Yb}},{},a);var $b=b.GET_ACCESSOR,_b=function(a,b,c,d,e,f){this.location=a,this.isStatic=b,this.name=c,this.typeAnnotation=d,this.annotations=e,this.body=f};$traceurRuntime.createClass(_b,{transform:function(a){return a.transformGetAccessor(this)},visit:function(a){a.visitGetAccessor(this)},get type(){return $b}},{},a);var ac=b.IDENTIFIER_EXPRESSION,bc=function(a,b){this.location=a,this.identifierToken=b};$traceurRuntime.createClass(bc,{transform:function(a){return a.transformIdentifierExpression(this)},visit:function(a){a.visitIdentifierExpression(this)},get type(){return ac}},{},a);var cc=b.IF_STATEMENT,dc=function(a,b,c,d){this.location=a,this.condition=b,this.ifClause=c,this.elseClause=d};$traceurRuntime.createClass(dc,{transform:function(a){return a.transformIfStatement(this)},visit:function(a){a.visitIfStatement(this)},get type(){return cc}},{},a);var ec=b.IMPORTED_BINDING,fc=function(a,b){this.location=a,this.binding=b};$traceurRuntime.createClass(fc,{transform:function(a){return a.transformImportedBinding(this)},visit:function(a){a.visitImportedBinding(this)},get type(){return ec}},{},a);var gc=b.IMPORT_DECLARATION,hc=function(a,b,c){this.location=a,this.importClause=b,this.moduleSpecifier=c};$traceurRuntime.createClass(hc,{transform:function(a){return a.transformImportDeclaration(this)},visit:function(a){a.visitImportDeclaration(this)},get type(){return gc}},{},a);var ic=b.IMPORT_SPECIFIER,jc=function(a,b,c){this.location=a,this.binding=b,this.name=c};$traceurRuntime.createClass(jc,{transform:function(a){return a.transformImportSpecifier(this)},visit:function(a){a.visitImportSpecifier(this)},get type(){return ic}},{},a);var kc=b.IMPORT_SPECIFIER_SET,lc=function(a,b){this.location=a,this.specifiers=b};$traceurRuntime.createClass(lc,{transform:function(a){return a.transformImportSpecifierSet(this)},visit:function(a){a.visitImportSpecifierSet(this)},get type(){return kc}},{},a);var mc=b.INDEX_SIGNATURE,nc=function(a,b,c,d){this.location=a,this.name=b,this.indexType=c,this.typeAnnotation=d};$traceurRuntime.createClass(nc,{transform:function(a){return a.transformIndexSignature(this)},visit:function(a){a.visitIndexSignature(this)},get type(){return mc}},{},a);var oc=b.INTERFACE_DECLARATION,pc=function(a,b,c,d,e){this.location=a,this.name=b,this.typeParameters=c,this.extendsClause=d,this.objectType=e};$traceurRuntime.createClass(pc,{transform:function(a){return a.transformInterfaceDeclaration(this)},visit:function(a){a.visitInterfaceDeclaration(this)},get type(){return oc}},{},a);var qc=b.LABELLED_STATEMENT,rc=function(a,b,c){this.location=a,this.name=b,this.statement=c};$traceurRuntime.createClass(rc,{transform:function(a){return a.transformLabelledStatement(this)},visit:function(a){a.visitLabelledStatement(this)},get type(){return qc}},{},a);var sc=b.LITERAL_EXPRESSION,tc=function(a,b){this.location=a,this.literalToken=b};$traceurRuntime.createClass(tc,{transform:function(a){return a.transformLiteralExpression(this)},visit:function(a){a.visitLiteralExpression(this)},get type(){return sc}},{},a);var uc=b.LITERAL_PROPERTY_NAME,vc=function(a,b){this.location=a,this.literalToken=b};$traceurRuntime.createClass(vc,{transform:function(a){return a.transformLiteralPropertyName(this)},visit:function(a){a.visitLiteralPropertyName(this)},get type(){return uc}},{},a);var wc=b.MEMBER_EXPRESSION,xc=function(a,b,c){this.location=a,this.operand=b,this.memberName=c};$traceurRuntime.createClass(xc,{transform:function(a){return a.transformMemberExpression(this)},visit:function(a){a.visitMemberExpression(this)},get type(){return wc}},{},a);var yc=b.MEMBER_LOOKUP_EXPRESSION,zc=function(a,b,c){this.location=a,this.operand=b,this.memberExpression=c};$traceurRuntime.createClass(zc,{transform:function(a){return a.transformMemberLookupExpression(this)},visit:function(a){a.visitMemberLookupExpression(this)},get type(){return yc}},{},a);var Ac=b.METHOD_SIGNATURE,Bc=function(a,b,c,d){this.location=a,this.name=b,this.optional=c,this.callSignature=d};$traceurRuntime.createClass(Bc,{transform:function(a){return a.transformMethodSignature(this)},visit:function(a){a.visitMethodSignature(this)},get type(){return Ac}},{},a);var Cc=b.MODULE,Dc=function(a,b,c){this.location=a,this.scriptItemList=b,this.moduleName=c};$traceurRuntime.createClass(Dc,{transform:function(a){return a.transformModule(this)},visit:function(a){a.visitModule(this)},get type(){return Cc}},{},a);var Ec=b.MODULE_DECLARATION,Fc=function(a,b,c){this.location=a,this.binding=b,this.expression=c};$traceurRuntime.createClass(Fc,{transform:function(a){return a.transformModuleDeclaration(this)},visit:function(a){a.visitModuleDeclaration(this)},get type(){return Ec}},{},a);var Gc=b.MODULE_SPECIFIER,Hc=function(a,b){this.location=a,this.token=b};$traceurRuntime.createClass(Hc,{transform:function(a){return a.transformModuleSpecifier(this)},visit:function(a){a.visitModuleSpecifier(this)},get type(){return Gc}},{},a);var Ic=b.NAMED_EXPORT,Jc=function(a,b,c){this.location=a,this.moduleSpecifier=b,this.specifierSet=c};$traceurRuntime.createClass(Jc,{transform:function(a){return a.transformNamedExport(this)},visit:function(a){a.visitNamedExport(this)},get type(){return Ic}},{},a);var Kc=b.NEW_EXPRESSION,Lc=function(a,b,c){this.location=a,this.operand=b,this.args=c};$traceurRuntime.createClass(Lc,{transform:function(a){return a.transformNewExpression(this)},visit:function(a){a.visitNewExpression(this)},get type(){return Kc}},{},a);var Mc=b.OBJECT_LITERAL_EXPRESSION,Nc=function(a,b){this.location=a,this.propertyNameAndValues=b};$traceurRuntime.createClass(Nc,{transform:function(a){return a.transformObjectLiteralExpression(this)},visit:function(a){a.visitObjectLiteralExpression(this)},get type(){return Mc}},{},a);var Oc=b.OBJECT_PATTERN,Pc=function(a,b){this.location=a,this.fields=b};$traceurRuntime.createClass(Pc,{transform:function(a){return a.transformObjectPattern(this)},visit:function(a){a.visitObjectPattern(this)},get type(){return Oc}},{},a);var Qc=b.OBJECT_PATTERN_FIELD,Rc=function(a,b,c){this.location=a,this.name=b,this.element=c};$traceurRuntime.createClass(Rc,{transform:function(a){return a.transformObjectPatternField(this)},visit:function(a){a.visitObjectPatternField(this)},get type(){return Qc}},{},a);var Sc=b.OBJECT_TYPE,Tc=function(a,b){this.location=a,this.typeMembers=b};$traceurRuntime.createClass(Tc,{transform:function(a){return a.transformObjectType(this)},visit:function(a){a.visitObjectType(this)},get type(){return Sc}},{},a);var Uc=b.PAREN_EXPRESSION,Vc=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(Vc,{transform:function(a){return a.transformParenExpression(this)},visit:function(a){a.visitParenExpression(this)},get type(){return Uc}},{},a);var Wc=b.POSTFIX_EXPRESSION,Xc=function(a,b,c){this.location=a,this.operand=b,this.operator=c};$traceurRuntime.createClass(Xc,{transform:function(a){return a.transformPostfixExpression(this)},visit:function(a){a.visitPostfixExpression(this)},get type(){return Wc}},{},a);var Yc=b.PREDEFINED_TYPE,Zc=function(a,b){this.location=a,this.typeToken=b};$traceurRuntime.createClass(Zc,{transform:function(a){return a.transformPredefinedType(this)},visit:function(a){a.visitPredefinedType(this)},get type(){return Yc}},{},a);var $c=b.SCRIPT,_c=function(a,b,c){this.location=a,this.scriptItemList=b,this.moduleName=c};$traceurRuntime.createClass(_c,{transform:function(a){return a.transformScript(this)},visit:function(a){a.visitScript(this)},get type(){return $c}},{},a);var ad=b.PROPERTY_METHOD_ASSIGNMENT,bd=function(a,b,c,d,e,f,g,h){this.location=a,this.isStatic=b,this.functionKind=c,this.name=d,this.parameterList=e,this.typeAnnotation=f,this.annotations=g,this.body=h};$traceurRuntime.createClass(bd,{transform:function(a){return a.transformPropertyMethodAssignment(this)},visit:function(a){a.visitPropertyMethodAssignment(this)},get type(){return ad}},{},a);var cd=b.PROPERTY_NAME_ASSIGNMENT,dd=function(a,b,c){this.location=a,this.name=b,this.value=c};$traceurRuntime.createClass(dd,{transform:function(a){return a.transformPropertyNameAssignment(this)},visit:function(a){a.visitPropertyNameAssignment(this)},get type(){return cd}},{},a);var ed=b.PROPERTY_NAME_SHORTHAND,fd=function(a,b){this.location=a,this.name=b};$traceurRuntime.createClass(fd,{transform:function(a){return a.transformPropertyNameShorthand(this)},visit:function(a){a.visitPropertyNameShorthand(this)},get type(){return ed}},{},a);var gd=b.PROPERTY_VARIABLE_DECLARATION,hd=function(a,b,c,d,e){this.location=a,this.isStatic=b,this.name=c,this.typeAnnotation=d,this.annotations=e};$traceurRuntime.createClass(hd,{transform:function(a){return a.transformPropertyVariableDeclaration(this)},visit:function(a){a.visitPropertyVariableDeclaration(this)},get type(){return gd}},{},a);var id=b.PROPERTY_SIGNATURE,jd=function(a,b,c,d){this.location=a,this.name=b,this.optional=c,this.typeAnnotation=d};$traceurRuntime.createClass(jd,{transform:function(a){return a.transformPropertySignature(this)},visit:function(a){a.visitPropertySignature(this)},get type(){return id}},{},a);var kd=b.REST_PARAMETER,ld=function(a,b,c){this.location=a,this.identifier=b,this.typeAnnotation=c};$traceurRuntime.createClass(ld,{transform:function(a){return a.transformRestParameter(this)},visit:function(a){a.visitRestParameter(this)},get type(){return kd}},{},a);var md=b.RETURN_STATEMENT,nd=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(nd,{transform:function(a){return a.transformReturnStatement(this)},visit:function(a){a.visitReturnStatement(this)},get type(){return md}},{},a);var od=b.SET_ACCESSOR,pd=function(a,b,c,d,e,f){this.location=a,this.isStatic=b,this.name=c,this.parameterList=d,this.annotations=e,this.body=f};$traceurRuntime.createClass(pd,{transform:function(a){return a.transformSetAccessor(this)},visit:function(a){a.visitSetAccessor(this)},get type(){return od}},{},a);var qd=b.SPREAD_EXPRESSION,rd=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(rd,{transform:function(a){return a.transformSpreadExpression(this)},visit:function(a){a.visitSpreadExpression(this)},get type(){return qd}},{},a);var sd=b.SPREAD_PATTERN_ELEMENT,td=function(a,b){this.location=a,this.lvalue=b};$traceurRuntime.createClass(td,{transform:function(a){return a.transformSpreadPatternElement(this)},visit:function(a){a.visitSpreadPatternElement(this)},get type(){return sd}},{},a);var ud=b.SUPER_EXPRESSION,vd=function(a){this.location=a};$traceurRuntime.createClass(vd,{transform:function(a){return a.transformSuperExpression(this)},visit:function(a){a.visitSuperExpression(this)},get type(){return ud}},{},a);var wd=b.SWITCH_STATEMENT,xd=function(a,b,c){this.location=a,this.expression=b,this.caseClauses=c};$traceurRuntime.createClass(xd,{transform:function(a){return a.transformSwitchStatement(this)},visit:function(a){a.visitSwitchStatement(this)},get type(){return wd}},{},a);var yd=b.SYNTAX_ERROR_TREE,zd=function(a,b,c){this.location=a,this.nextToken=b,this.message=c};$traceurRuntime.createClass(zd,{transform:function(a){return a.transformSyntaxErrorTree(this)},visit:function(a){a.visitSyntaxErrorTree(this)},get type(){return yd}},{},a);var Ad=b.TEMPLATE_LITERAL_EXPRESSION,Bd=function(a,b,c){this.location=a,this.operand=b,this.elements=c};$traceurRuntime.createClass(Bd,{transform:function(a){return a.transformTemplateLiteralExpression(this)},visit:function(a){a.visitTemplateLiteralExpression(this)},get type(){return Ad}},{},a);var Cd=b.TEMPLATE_LITERAL_PORTION,Dd=function(a,b){this.location=a,this.value=b};$traceurRuntime.createClass(Dd,{transform:function(a){return a.transformTemplateLiteralPortion(this)},visit:function(a){a.visitTemplateLiteralPortion(this)},get type(){return Cd}},{},a);var Ed=b.TEMPLATE_SUBSTITUTION,Fd=function(a,b){this.location=a,this.expression=b};$traceurRuntime.createClass(Fd,{transform:function(a){return a.transformTemplateSubstitution(this)},visit:function(a){a.visitTemplateSubstitution(this)},get type(){return Ed}},{},a);var Gd=b.THIS_EXPRESSION,Hd=function(a){this.location=a};$traceurRuntime.createClass(Hd,{transform:function(a){return a.transformThisExpression(this)},visit:function(a){a.visitThisExpression(this)},get type(){return Gd}},{},a);var Id=b.THROW_STATEMENT,Jd=function(a,b){this.location=a,this.value=b};$traceurRuntime.createClass(Jd,{transform:function(a){return a.transformThrowStatement(this)},visit:function(a){a.visitThrowStatement(this)},get type(){return Id}},{},a);var Kd=b.TRY_STATEMENT,Ld=function(a,b,c,d){this.location=a,this.body=b,this.catchBlock=c,this.finallyBlock=d};$traceurRuntime.createClass(Ld,{transform:function(a){return a.transformTryStatement(this)},visit:function(a){a.visitTryStatement(this)},get type(){return Kd}},{},a);var Md=b.TYPE_ARGUMENTS,Nd=function(a,b){this.location=a,this.args=b};$traceurRuntime.createClass(Nd,{transform:function(a){return a.transformTypeArguments(this)},visit:function(a){a.visitTypeArguments(this)},get type(){return Md}},{},a);var Od=b.TYPE_NAME,Pd=function(a,b,c){this.location=a,this.moduleName=b,this.name=c};$traceurRuntime.createClass(Pd,{transform:function(a){return a.transformTypeName(this)},visit:function(a){a.visitTypeName(this)},get type(){return Od}},{},a);var Qd=b.TYPE_PARAMETER,Rd=function(a,b,c){this.location=a,this.identifierToken=b,this.extendsType=c};$traceurRuntime.createClass(Rd,{transform:function(a){return a.transformTypeParameter(this)},visit:function(a){a.visitTypeParameter(this)},get type(){return Qd}},{},a);var Sd=b.TYPE_PARAMETERS,Td=function(a,b){this.location=a,this.parameters=b};$traceurRuntime.createClass(Td,{transform:function(a){return a.transformTypeParameters(this)},visit:function(a){a.visitTypeParameters(this)},get type(){return Sd}},{},a);var Ud=b.TYPE_REFERENCE,Vd=function(a,b,c){this.location=a,this.typeName=b,this.args=c};$traceurRuntime.createClass(Vd,{transform:function(a){return a.transformTypeReference(this)},visit:function(a){a.visitTypeReference(this)},get type(){return Ud}},{},a);var Wd=b.UNARY_EXPRESSION,Xd=function(a,b,c){this.location=a,this.operator=b,this.operand=c};$traceurRuntime.createClass(Xd,{transform:function(a){return a.transformUnaryExpression(this)},visit:function(a){a.visitUnaryExpression(this)},get type(){return Wd}},{},a);var Yd=b.UNION_TYPE,Zd=function(a,b){this.location=a,this.types=b};$traceurRuntime.createClass(Zd,{transform:function(a){return a.transformUnionType(this)},visit:function(a){a.visitUnionType(this)},get type(){return Yd}},{},a);var $d=b.VARIABLE_DECLARATION,_d=function(a,b,c,d){this.location=a,this.lvalue=b,this.typeAnnotation=c,this.initializer=d};$traceurRuntime.createClass(_d,{transform:function(a){return a.transformVariableDeclaration(this)},visit:function(a){a.visitVariableDeclaration(this)},get type(){return $d}},{},a);var ae=b.VARIABLE_DECLARATION_LIST,be=function(a,b,c){this.location=a,this.declarationType=b,this.declarations=c};$traceurRuntime.createClass(be,{transform:function(a){return a.transformVariableDeclarationList(this)},visit:function(a){a.visitVariableDeclarationList(this)},get type(){return ae}},{},a);var ce=b.VARIABLE_STATEMENT,de=function(a,b){this.location=a,this.declarations=b};$traceurRuntime.createClass(de,{transform:function(a){return a.transformVariableStatement(this)},visit:function(a){a.visitVariableStatement(this)},get type(){return ce}},{},a);var ee=b.WHILE_STATEMENT,fe=function(a,b,c){this.location=a,this.condition=b,this.body=c};$traceurRuntime.createClass(fe,{transform:function(a){return a.transformWhileStatement(this)},visit:function(a){a.visitWhileStatement(this)},get type(){return ee}},{},a);var ge=b.WITH_STATEMENT,he=function(a,b,c){this.location=a,this.expression=b,this.body=c};$traceurRuntime.createClass(he,{transform:function(a){return a.transformWithStatement(this)},visit:function(a){a.visitWithStatement(this)},get type(){return ge}},{},a);var ie=b.YIELD_EXPRESSION,je=function(a,b,c){this.location=a,this.expression=b,this.isYieldFor=c};return $traceurRuntime.createClass(je,{transform:function(a){return a.transformYieldExpression(this)},visit:function(a){a.visitYieldExpression(this)},get type(){return ie}},{},a),{get Annotation(){return d},get AnonBlock(){return f},get ArgumentList(){return h},get ArrayComprehension(){return j},get ArrayLiteralExpression(){return l},get ArrayPattern(){return n},get ArrayType(){return p},get ArrowFunctionExpression(){return r},get AssignmentElement(){return t},get AwaitExpression(){return v},get BinaryExpression(){return x},get BindingElement(){return z},get BindingIdentifier(){return B},get Block(){return D},get BreakStatement(){return F},get CallExpression(){return H},get CallSignature(){return J},get CaseClause(){return L
},get Catch(){return N},get ClassDeclaration(){return P},get ClassExpression(){return R},get CommaExpression(){return T},get ComprehensionFor(){return V},get ComprehensionIf(){return X},get ComputedPropertyName(){return Z},get ConditionalExpression(){return _},get ConstructSignature(){return bb},get ConstructorType(){return db},get ContinueStatement(){return fb},get CoverFormals(){return hb},get CoverInitializedName(){return jb},get DebuggerStatement(){return lb},get DefaultClause(){return nb},get DoWhileStatement(){return pb},get EmptyStatement(){return rb},get ExportDeclaration(){return tb},get ExportDefault(){return vb},get ExportSpecifier(){return xb},get ExportSpecifierSet(){return zb},get ExportStar(){return Bb},get ExpressionStatement(){return Db},get Finally(){return Fb},get ForInStatement(){return Hb},get ForOfStatement(){return Jb},get ForStatement(){return Lb},get FormalParameter(){return Nb},get FormalParameterList(){return Pb},get FunctionBody(){return Rb},get FunctionDeclaration(){return Tb},get FunctionExpression(){return Vb},get FunctionType(){return Xb},get GeneratorComprehension(){return Zb},get GetAccessor(){return _b},get IdentifierExpression(){return bc},get IfStatement(){return dc},get ImportedBinding(){return fc},get ImportDeclaration(){return hc},get ImportSpecifier(){return jc},get ImportSpecifierSet(){return lc},get IndexSignature(){return nc},get InterfaceDeclaration(){return pc},get LabelledStatement(){return rc},get LiteralExpression(){return tc},get LiteralPropertyName(){return vc},get MemberExpression(){return xc},get MemberLookupExpression(){return zc},get MethodSignature(){return Bc},get Module(){return Dc},get ModuleDeclaration(){return Fc},get ModuleSpecifier(){return Hc},get NamedExport(){return Jc},get NewExpression(){return Lc},get ObjectLiteralExpression(){return Nc},get ObjectPattern(){return Pc},get ObjectPatternField(){return Rc},get ObjectType(){return Tc},get ParenExpression(){return Vc},get PostfixExpression(){return Xc},get PredefinedType(){return Zc},get Script(){return _c},get PropertyMethodAssignment(){return bd},get PropertyNameAssignment(){return dd},get PropertyNameShorthand(){return fd},get PropertyVariableDeclaration(){return hd},get PropertySignature(){return jd},get RestParameter(){return ld},get ReturnStatement(){return nd},get SetAccessor(){return pd},get SpreadExpression(){return rd},get SpreadPatternElement(){return td},get SuperExpression(){return vd},get SwitchStatement(){return xd},get SyntaxErrorTree(){return zd},get TemplateLiteralExpression(){return Bd},get TemplateLiteralPortion(){return Dd},get TemplateSubstitution(){return Fd},get ThisExpression(){return Hd},get ThrowStatement(){return Jd},get TryStatement(){return Ld},get TypeArguments(){return Nd},get TypeName(){return Pd},get TypeParameter(){return Rd},get TypeParameters(){return Td},get TypeReference(){return Vd},get UnaryExpression(){return Xd},get UnionType(){return Zd},get VariableDeclaration(){return _d},get VariableDeclarationList(){return be},get VariableStatement(){return de},get WhileStatement(){return fe},get WithStatement(){return he},get YieldExpression(){return je}}}),System.registerModule("traceur@0.0.79/src/util/assert.js",[],function(){"use strict";function a(a){if(!a&&b.debug)throw Error("Assertion failed")}var b=System.get("traceur@0.0.79/src/Options.js").options;return{get assert(){return a}}}),System.registerModule("traceur@0.0.79/src/syntax/IdentifierToken.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/Token.js").Token,b=System.get("traceur@0.0.79/src/syntax/TokenType.js").IDENTIFIER,c=function(a,b){this.location=a,this.value=b};return $traceurRuntime.createClass(c,{toString:function(){return this.value},get type(){return b}},{},a),{get IdentifierToken(){return c}}}),System.registerModule("traceur@0.0.79/src/syntax/LiteralToken.js",[],function(){"use strict";var a,b=System.get("traceur@0.0.79/src/syntax/Token.js").Token,c=System.get("traceur@0.0.79/src/syntax/TokenType.js"),d=c.NULL,e=c.NUMBER,f=c.STRING,g=function(a){this.value=a,this.index=0};$traceurRuntime.createClass(g,(a={},Object.defineProperty(a,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(a,"next",{value:function(){return++this.index>=this.value.length-1?{value:void 0,done:!0}:{value:this.value[this.index],done:!1}},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(a,"parse",{value:function(){if(-1===this.value.indexOf("\\"))return this.value.slice(1,-1);for(var a,b="",c=this[$traceurRuntime.toProperty(Symbol.iterator)]();!(a=c.next()).done;){var d=a.value;b+="\\"===d?this.parseEscapeSequence():d}return b},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(a,"parseEscapeSequence",{value:function(){var a=this.next().value;switch(a){case"\n":case"\r":case"\u2028":case"\u2029":return"";case"0":return"\x00";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return" ";case"v":return" ";case"x":return String.fromCharCode(parseInt(this.next().value+this.next().value,16));case"u":var b=this.next().value;if("{"===b){for(var c="";"}"!==(b=this.next().value);)c+=b;var d=parseInt(c,16);if(65535>=d)return String.fromCharCode(d);var e=Math.floor((d-65536)/1024)+55296,f=(d-65536)%1024+56320;return String.fromCharCode(e,f)}return String.fromCharCode(parseInt(b+this.next().value+this.next().value+this.next().value,16));default:if(Number(a)<8)throw new Error("Octal literals are not supported");return a}},configurable:!0,enumerable:!0,writable:!0}),a),{});var h=function(a,b,c){this.type=a,this.location=c,this.value=b};return $traceurRuntime.createClass(h,{toString:function(){return this.value},get processedValue(){switch(this.type){case d:return null;case e:var a=this.value;if(48===a.charCodeAt(0))switch(a.charCodeAt(1)){case 66:case 98:return parseInt(this.value.slice(2),2);case 79:case 111:return parseInt(this.value.slice(2),8)}return Number(this.value);case f:var b=new g(this.value);return b.parse();default:throw new Error("Not implemented")}}},{},b),{get LiteralToken(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js",[],function(){"use strict";function a(a){return new Ib(a,null)}function b(a){return new wb(null,a)}function c(a){return new xb(Ob,JSON.stringify(a),null)}function d(a){return new Ib(a?Pb:Lb,null)}function e(){return new xb(Mb,"null",null)}function f(a){return new xb(Nb,String(a),null)}function g(){return new mc(null,[])}function h(a){return new Tb(null,a)}function i(){return h([])}function j(a){return new Ub(null,a)}function k(){return j([])}function l(b,c){return new Vb(null,b,a(Kb),c)}function m(a,b,c){return new Vb(null,a,b,c)}function n(a){if("string"==typeof a)a=b(a);else{if(a.type===Ab.BINDING_IDENTIFIER)return a;if(a.type===Ab.IDENTIFIER_EXPRESSION)return new Wb(a.location,a.identifierToken)}return new Wb(null,a)}function o(a){var b=n(a);return new rc(b.location,b)}function p(){return new gc(null)}function q(){return r([])}function r(a){return new Xb(null,a)}function s(a){return new nc(null,a)}function t(a,b){return Rb("FUNCTION_BODY"===a.type),x(eb(N(g(),a)),b)}function u(a){return Rb("FUNCTION_BODY"===a.type),v(eb(N(g(),a)))}function v(a){var b=void 0!==arguments[1]?arguments[1]:i();return new Zb(null,a,b)}function w(){var a=void 0!==arguments[0]?arguments[0]:null;return new Yb(null,a)}function x(a,b){return v(X(a,Cb),h([b]))}function y(a,b){return new $b(null,a,b)}function z(a,b){return a=n(a),new _b(null,a,b)}function A(a,b,c){return new ac(null,a,b,c,[])}function B(a){return new bc(null,a)}function C(a,b,c){return new cc(null,a,b,c)}function D(){var a=void 0!==arguments[0]?arguments[0]:null;return new dc(null,a)}function E(a){return new ec(null,a)}function F(a,b){return new fc(null,a,b)}function G(a,b){return I(l(a,b))}function H(a){var b=arguments[1];return I(v(a,b))}function I(a){return new hc(null,a)}function J(a){return new ic(null,a)}function K(a,b,c){return new kc(null,a,b,c)}function L(a,b,c){return new jc(null,a,b,c)}function M(a,b,c,d){return new lc(null,a,b,c,d)}function N(a,b){return Rb("FUNCTION_BODY"===b.type),new oc(null,null,!1,a,null,[],b)}function O(a){return"string"==typeof a?a=b(a):a instanceof Wb&&(a=a.identifierToken),new pc(null,a)}function P(){return O(Hb)}function Q(a,b){var c=void 0!==arguments[2]?arguments[2]:null;return new qc(null,a,b,c)}function R(a){return new sc(null,c(a))}function S(a){return new sc(null,d(a))}function T(){return S(!0)}function U(){return S(!1)}function V(){return new sc(null,e())}function W(a){return new sc(null,f(a))}function X(a,c){("string"==typeof a||a instanceof wb)&&(a=O(a)),"string"==typeof c&&(c=b(c)),c instanceof xb&&(c=new sc(null,c));for(var d=c instanceof sc?new vc(null,a,c):new uc(null,a,c),e=2;e<arguments.length;e++)d=X(d,arguments[e]);return d}function Y(a,b){return new vc(null,a,b)}function Z(){return new Ec(null)}function $(a,b){return new wc(null,a,b)}function _(a){return v(X(Gb,Fb),h([a]))}function ab(a,b){var c=[a];return b&&c.push(b),v(X(Gb,Db),h(c))}function bb(a){var b=Object.keys(a).map(function(b){var c=a[b];return c instanceof zb||(c=S(!!c)),hb(b,c)});return db(b)}function cb(a,b,c){return"string"==typeof b&&(b=R(b)),v(X(Gb,Eb),h([a,b,bb(c)]))}function db(a){return new xc(null,a)}function eb(a){return new yc(null,a)}function fb(a,b){return new zc(null,a,b)}function gb(a){return new Ac(null,a)}function hb(a,b){return"string"==typeof a&&(a=ib(a)),new Bc(null,a,b)}function ib(a){return new tc(null,b(a))}function jb(a){return new Cc(null,a)}function kb(a,b){return new Dc(null,a,b)}function lb(a){return new Fc(null,a)}function mb(a,b){var c=void 0!==arguments[2]?arguments[2]:null;return new Gc(null,a,b,c)}function nb(a,b){return new Hc(null,a,b)}function ob(){return I(R("use strict"))}function pb(a,b,c){if(b instanceof Array){var d=b;return new Jc(null,a,d)}var e=b;return pb(a,[qb(e,c)])}function qb(a,b){return a instanceof zb&&(a.type===Ab.BINDING_IDENTIFIER||a.type===Ab.OBJECT_PATTERN||a.type===Ab.ARRAY_PATTERN)||(a=n(a)),new Ic(null,a,null,b)}function rb(a,b,c){if(a instanceof Jc)return new Kc(null,a);var d=a,e=pb(d,b,c);return rb(e)}function sb(){return eb(nb(a(Qb),W(0)))}function tb(a,b){return new Lc(null,a,b)}function ub(a,b){return new Mc(null,a,b)}function vb(a){return G(X("$ctx","state"),W(a))}{var wb=System.get("traceur@0.0.79/src/syntax/IdentifierToken.js").IdentifierToken,xb=System.get("traceur@0.0.79/src/syntax/LiteralToken.js").LiteralToken,yb=System.get("traceur@0.0.79/src/syntax/trees/ParseTree.js"),zb=yb.ParseTree,Ab=yb.ParseTreeType,Bb=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),Cb=Bb.CALL,Db=Bb.CREATE,Eb=Bb.DEFINE_PROPERTY,Fb=Bb.FREEZE,Gb=Bb.OBJECT,Hb=Bb.UNDEFINED,Ib=System.get("traceur@0.0.79/src/syntax/Token.js").Token,Jb=System.get("traceur@0.0.79/src/syntax/TokenType.js"),Kb=Jb.EQUAL,Lb=Jb.FALSE,Mb=Jb.NULL,Nb=Jb.NUMBER,Ob=Jb.STRING,Pb=Jb.TRUE,Qb=Jb.VOID,Rb=System.get("traceur@0.0.79/src/util/assert.js").assert,Sb=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),Tb=Sb.ArgumentList,Ub=Sb.ArrayLiteralExpression,Vb=Sb.BinaryExpression,Wb=Sb.BindingIdentifier,Xb=Sb.Block,Yb=Sb.BreakStatement,Zb=Sb.CallExpression,$b=Sb.CaseClause,_b=Sb.Catch,ac=Sb.ClassDeclaration,bc=Sb.CommaExpression,cc=Sb.ConditionalExpression,dc=Sb.ContinueStatement,ec=Sb.DefaultClause,fc=Sb.DoWhileStatement,gc=Sb.EmptyStatement,hc=Sb.ExpressionStatement,ic=Sb.Finally,jc=Sb.ForInStatement,kc=Sb.ForOfStatement,lc=Sb.ForStatement,mc=Sb.FormalParameterList,nc=Sb.FunctionBody,oc=Sb.FunctionExpression,pc=Sb.IdentifierExpression,qc=Sb.IfStatement,rc=Sb.ImportedBinding,sc=Sb.LiteralExpression,tc=Sb.LiteralPropertyName,uc=Sb.MemberExpression,vc=Sb.MemberLookupExpression,wc=Sb.NewExpression,xc=Sb.ObjectLiteralExpression,yc=Sb.ParenExpression,zc=Sb.PostfixExpression,Ac=Sb.Script,Bc=Sb.PropertyNameAssignment,Cc=(Sb.RestParameter,Sb.ReturnStatement),Dc=(Sb.SpreadExpression,Sb.SwitchStatement),Ec=Sb.ThisExpression,Fc=Sb.ThrowStatement,Gc=Sb.TryStatement,Hc=Sb.UnaryExpression,Ic=Sb.VariableDeclaration,Jc=Sb.VariableDeclarationList,Kc=Sb.VariableStatement,Lc=Sb.WhileStatement,Mc=Sb.WithStatement;Array.prototype.slice.call.bind(Array.prototype.slice),Array.prototype.map.call.bind(Array.prototype.map)}return{get createOperatorToken(){return a},get createIdentifierToken(){return b},get createStringLiteralToken(){return c},get createBooleanLiteralToken(){return d},get createNullLiteralToken(){return e},get createNumberLiteralToken(){return f},get createEmptyParameterList(){return g},get createArgumentList(){return h},get createEmptyArgumentList(){return i},get createArrayLiteralExpression(){return j},get createEmptyArrayLiteralExpression(){return k},get createAssignmentExpression(){return l},get createBinaryExpression(){return m},get createBindingIdentifier(){return n},get createImportedBinding(){return o},get createEmptyStatement(){return p},get createEmptyBlock(){return q},get createBlock(){return r},get createFunctionBody(){return s},get createScopedExpression(){return t},get createImmediatelyInvokedFunctionExpression(){return u},get createCallExpression(){return v},get createBreakStatement(){return w},get createCaseClause(){return y},get createCatch(){return z},get createClassDeclaration(){return A},get createCommaExpression(){return B},get createConditionalExpression(){return C},get createContinueStatement(){return D},get createDefaultClause(){return E},get createDoWhileStatement(){return F},get createAssignmentStatement(){return G},get createCallStatement(){return H},get createExpressionStatement(){return I},get createFinally(){return J},get createForOfStatement(){return K},get createForInStatement(){return L},get createForStatement(){return M},get createFunctionExpression(){return N},get createIdentifierExpression(){return O},get createUndefinedExpression(){return P},get createIfStatement(){return Q},get createStringLiteral(){return R},get createBooleanLiteral(){return S},get createTrueLiteral(){return T},get createFalseLiteral(){return U},get createNullLiteral(){return V},get createNumberLiteral(){return W},get createMemberExpression(){return X},get createMemberLookupExpression(){return Y},get createThisExpression(){return Z},get createNewExpression(){return $},get createObjectFreeze(){return _},get createObjectCreate(){return ab},get createObjectLiteral(){return bb},get createDefineProperty(){return cb},get createObjectLiteralExpression(){return db},get createParenExpression(){return eb},get createPostfixExpression(){return fb},get createScript(){return gb},get createPropertyNameAssignment(){return hb},get createReturnStatement(){return jb},get createSwitchStatement(){return kb},get createThrowStatement(){return lb},get createTryStatement(){return mb},get createUnaryExpression(){return nb},get createUseStrictDirective(){return ob},get createVariableDeclarationList(){return pb},get createVariableDeclaration(){return qb},get createVariableStatement(){return rb},get createVoid0(){return sb},get createWhileStatement(){return tb},get createWithStatement(){return ub},get createAssignStateStatement(){return vb}}}),System.registerModule("traceur@0.0.79/src/codegeneration/FindVisitor.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor,b=function(){var a=arguments[0];this.found_=!1,this.shouldContinue_=!0,this.keepOnGoing_=a};return $traceurRuntime.createClass(b,{get found(){return this.found_},set found(a){a&&(this.found_=!0,this.keepOnGoing_||(this.shouldContinue_=!1))},visitAny:function(a){this.shouldContinue_&&a&&a.visit(this)},visitList:function(a){if(a)for(var b=0;this.shouldContinue_&&b<a.length;b++)this.visitAny(a[b])}},{},a),{get FindVisitor(){return b}}}),System.registerModule("traceur@0.0.79/src/syntax/Keywords.js",[],function(){"use strict";function a(a){return e[a]}function b(b){return a(b)===g}var c=["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","finally","for","function","if","import","in","instanceof","let","new","return","super","switch","this","throw","try","typeof","var","void","while","with","enum","extends","null","true","false"],d=["implements","interface","package","private","protected","public","static","yield"],e=Object.create(null),f=1,g=2;return c.forEach(function(a){e[a]=f}),d.forEach(function(a){e[a]=g}),{get NORMAL_KEYWORD(){return f},get STRICT_KEYWORD(){return g},get getKeywordType(){return a},get isStrictKeyword(){return b}}}),System.registerModule("traceur@0.0.79/src/staticsemantics/StrictParams.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor,b=System.get("traceur@0.0.79/src/syntax/Keywords.js").isStrictKeyword,c=function(a){$traceurRuntime.superConstructor(d).call(this),this.errorReporter=a},d=c;return $traceurRuntime.createClass(c,{visitBindingIdentifier:function(a){var c=a.identifierToken.toString();b(c)&&this.errorReporter.reportError(a.location.start,c+" is a reserved identifier")}},{visit:function(a,b){new d(b).visitAny(a)}},a),{get StrictParams(){return c}}}),System.registerModule("traceur@0.0.79/src/util/SourceRange.js",[],function(){"use strict";var a=function(a,b){this.start=a,this.end=b};return $traceurRuntime.createClass(a,{toString:function(){var a=this.start.source.contents;return a.slice(this.start.offset,this.end.offset)}},{}),{get SourceRange(){return a}}}),System.registerModule("traceur@0.0.79/src/util/ErrorReporter.js",[],function(){"use strict";function a(a,b){var c=arguments[2],d=0;return b=b.replace(/%./g,function(a){switch(a){case"%s":return c&&c[d++];case"%%":return"%"}return a}),a&&(b=a+": "+b),b}var b=function(){this.hadError_=!1};return $traceurRuntime.createClass(b,{reportError:function(a,b){this.hadError_=!0,this.reportMessageInternal(a,b)},reportMessageInternal:function(a,b){a&&(b=a+": "+b),console.error(b)},hadError:function(){return this.hadError_},clearError:function(){this.hadError_=!1}},{}),b.format=a,{get ErrorReporter(){return b},get format(){return a}}}),System.registerModule("traceur@0.0.79/src/util/SyntaxErrorReporter.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/util/ErrorReporter.js"),b=a.ErrorReporter,c=a.format,d=function(){$traceurRuntime.superConstructor(e).apply(this,arguments)},e=d;return $traceurRuntime.createClass(d,{reportMessageInternal:function(a,b){var d=c(a,b);throw new SyntaxError(d)}},{},b),{get SyntaxErrorReporter(){return d}}}),System.registerModule("traceur@0.0.79/src/syntax/KeywordToken.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/Keywords.js").STRICT_KEYWORD,b=System.get("traceur@0.0.79/src/syntax/Token.js").Token,c=function(b,c,d){this.type=b,this.location=d,this.isStrictKeyword_=c===a};return $traceurRuntime.createClass(c,{isKeyword:function(){return!0},isStrictKeyword:function(){return this.isStrictKeyword_}},{},b),{get KeywordToken(){return c}}}),System.registerModule("traceur@0.0.79/src/syntax/unicode-tables.js",[],function(){"use strict";var a=[170,170,181,181,186,186,192,214,216,246,248,442,443,443,444,447,448,451,452,659,660,660,661,687,688,705,710,721,736,740,748,748,750,750,880,883,884,884,886,887,890,890,891,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1599,1600,1600,1601,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2417,2418,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3653,3654,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4348,4349,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6210,6211,6211,6212,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7287,7288,7293,7401,7404,7406,7409,7413,7414,7424,7467,7468,7530,7531,7543,7544,7544,7545,7578,7579,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8472,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8494,8494,8495,8500,8501,8504,8505,8505,8508,8511,8517,8521,8526,8526,8544,8578,8579,8580,8581,8584,11264,11310,11312,11358,11360,11387,11388,11389,11390,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12293,12294,12294,12295,12295,12321,12329,12337,12341,12344,12346,12347,12347,12348,12348,12353,12438,12443,12444,12445,12446,12447,12447,12449,12538,12540,12542,12543,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,40980,40981,40981,40982,42124,42192,42231,42232,42237,42240,42507,42508,42508,42512,42527,42538,42539,42560,42605,42606,42606,42623,42623,42624,42647,42656,42725,42726,42735,42775,42783,42786,42863,42864,42864,42865,42887,42888,42888,42891,42894,42896,42899,42912,42922,43e3,43001,43002,43002,43003,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43631,43632,43632,43633,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43740,43741,43741,43744,43754,43762,43762,43763,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65391,65392,65392,65393,65437,65438,65439,65440,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66334,66352,66368,66369,66369,66370,66377,66378,66378,66432,66461,66464,66499,66504,66511,66513,66517,66560,66639,66640,66717,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68147,68192,68220,68352,68405,68416,68437,68448,68466,68608,68680,69635,69687,69763,69807,69840,69864,69891,69926,70019,70066,70081,70084,71296,71338,73728,74606,74752,74850,77824,78894,92160,92728,93952,94020,94032,94032,94099,94111,110592,110593,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,194560,195101],b=[183,183,768,879,903,903,1155,1159,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1552,1562,1611,1631,1632,1641,1648,1648,1750,1756,1759,1764,1767,1768,1770,1773,1776,1785,1809,1809,1840,1866,1958,1968,1984,1993,2027,2035,2070,2073,2075,2083,2085,2087,2089,2093,2137,2139,2276,2302,2304,2306,2307,2307,2362,2362,2363,2363,2364,2364,2366,2368,2369,2376,2377,2380,2381,2381,2382,2383,2385,2391,2402,2403,2406,2415,2433,2433,2434,2435,2492,2492,2494,2496,2497,2500,2503,2504,2507,2508,2509,2509,2519,2519,2530,2531,2534,2543,2561,2562,2563,2563,2620,2620,2622,2624,2625,2626,2631,2632,2635,2637,2641,2641,2662,2671,2672,2673,2677,2677,2689,2690,2691,2691,2748,2748,2750,2752,2753,2757,2759,2760,2761,2761,2763,2764,2765,2765,2786,2787,2790,2799,2817,2817,2818,2819,2876,2876,2878,2878,2879,2879,2880,2880,2881,2884,2887,2888,2891,2892,2893,2893,2902,2902,2903,2903,2914,2915,2918,2927,2946,2946,3006,3007,3008,3008,3009,3010,3014,3016,3018,3020,3021,3021,3031,3031,3046,3055,3073,3075,3134,3136,3137,3140,3142,3144,3146,3149,3157,3158,3170,3171,3174,3183,3202,3203,3260,3260,3262,3262,3263,3263,3264,3268,3270,3270,3271,3272,3274,3275,3276,3277,3285,3286,3298,3299,3302,3311,3330,3331,3390,3392,3393,3396,3398,3400,3402,3404,3405,3405,3415,3415,3426,3427,3430,3439,3458,3459,3530,3530,3535,3537,3538,3540,3542,3542,3544,3551,3570,3571,3633,3633,3636,3642,3655,3662,3664,3673,3761,3761,3764,3769,3771,3772,3784,3789,3792,3801,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3903,3953,3966,3967,3967,3968,3972,3974,3975,3981,3991,3993,4028,4038,4038,4139,4140,4141,4144,4145,4145,4146,4151,4152,4152,4153,4154,4155,4156,4157,4158,4160,4169,4182,4183,4184,4185,4190,4192,4194,4196,4199,4205,4209,4212,4226,4226,4227,4228,4229,4230,4231,4236,4237,4237,4239,4239,4240,4249,4250,4252,4253,4253,4957,4959,4969,4977,5906,5908,5938,5940,5970,5971,6002,6003,6068,6069,6070,6070,6071,6077,6078,6085,6086,6086,6087,6088,6089,6099,6109,6109,6112,6121,6155,6157,6160,6169,6313,6313,6432,6434,6435,6438,6439,6440,6441,6443,6448,6449,6450,6450,6451,6456,6457,6459,6470,6479,6576,6592,6600,6601,6608,6617,6618,6618,6679,6680,6681,6683,6741,6741,6742,6742,6743,6743,6744,6750,6752,6752,6753,6753,6754,6754,6755,6756,6757,6764,6765,6770,6771,6780,6783,6783,6784,6793,6800,6809,6912,6915,6916,6916,6964,6964,6965,6965,6966,6970,6971,6971,6972,6972,6973,6977,6978,6978,6979,6980,6992,7001,7019,7027,7040,7041,7042,7042,7073,7073,7074,7077,7078,7079,7080,7081,7082,7082,7083,7083,7084,7085,7088,7097,7142,7142,7143,7143,7144,7145,7146,7148,7149,7149,7150,7150,7151,7153,7154,7155,7204,7211,7212,7219,7220,7221,7222,7223,7232,7241,7248,7257,7376,7378,7380,7392,7393,7393,7394,7400,7405,7405,7410,7411,7412,7412,7616,7654,7676,7679,8255,8256,8276,8276,8400,8412,8417,8417,8421,8432,11503,11505,11647,11647,11744,11775,12330,12333,12334,12335,12441,12442,42528,42537,42607,42607,42612,42621,42655,42655,42736,42737,43010,43010,43014,43014,43019,43019,43043,43044,43045,43046,43047,43047,43136,43137,43188,43203,43204,43204,43216,43225,43232,43249,43264,43273,43302,43309,43335,43345,43346,43347,43392,43394,43395,43395,43443,43443,43444,43445,43446,43449,43450,43451,43452,43452,43453,43456,43472,43481,43561,43566,43567,43568,43569,43570,43571,43572,43573,43574,43587,43587,43596,43596,43597,43597,43600,43609,43643,43643,43696,43696,43698,43700,43703,43704,43710,43711,43713,43713,43755,43755,43756,43757,43758,43759,43765,43765,43766,43766,44003,44004,44005,44005,44006,44007,44008,44008,44009,44010,44012,44012,44013,44013,44016,44025,64286,64286,65024,65039,65056,65062,65075,65076,65101,65103,65296,65305,65343,65343,66045,66045,66720,66729,68097,68099,68101,68102,68108,68111,68152,68154,68159,68159,69632,69632,69633,69633,69634,69634,69688,69702,69734,69743,69760,69761,69762,69762,69808,69810,69811,69814,69815,69816,69817,69818,69872,69881,69888,69890,69927,69931,69932,69932,69933,69940,69942,69951,70016,70017,70018,70018,70067,70069,70070,70078,70079,70080,70096,70105,71339,71339,71340,71340,71341,71341,71342,71343,71344,71349,71350,71350,71351,71351,71360,71369,94033,94078,94095,94098,119141,119142,119143,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,120782,120831,917760,917999];return{get idStartTable(){return a},get idContinueTable(){return b}}}),System.registerModule("traceur@0.0.79/src/syntax/Scanner.js",[],function(){"use strict";function a(a){if(128>a)return yc[a];switch(a){case 160:case 65279:case 8232:case 8233:return!0}return!1}function b(a){switch(a){case 10:case 13:case 8232:case 8233:return!0}return!1}function c(a){return a>=48&&57>=a}function d(a){return 128>a&&Ac[a]}function e(a){return 48===a||49===a}function f(a){return a>=48&&55>=a}function g(a){return 128>a?Bc[a]:i(ob,a)}function h(a){return 128>a?Cc[a]:i(ob,a)||i(nb,a)||8204===a||8205===a}function i(a,b){for(var c=0;c<a.length;){if(b<a[c++])return!1;if(b<=a[c++])return!0}return!1}function j(a){switch(a){case 47:return!1;case 91:case 92:return!0}return!b(a)}function k(a){return j(a)&&42!==a}function l(a){return Kc.getSourcePosition(a)}function m(a){return Kc.getSourceRange(a,Dc)}function n(){return Gc?Gc.location.start.offset:Dc}function o(){var a=Dc-Gc.toString().length;if((Gc.type!=mc||47!==Jc)&&!p())return new jb(hc,S(a),m(a));if(47!==Jc)return gb("Expected '/' in regular expression literal"),new jb(hc,S(a),m(a));for(eb();h(Jc);)eb();return new jb(hc,S(a),m(a))}function p(){if(!k(Jc))return gb("Expected regular expression first char"),!1;for(;!db()&&j(Jc);)if(!q())return!1;return!0}function q(){switch(Jc){case 92:return r();case 91:return s();default:return eb(),!0}}function r(){return eb(),b(Jc)||db()?(gb("New line not allowed in regular expression literal"),!1):(eb(),!0)}function s(){for(eb();!db()&&t();)if(!u())return!1;return 93!==Jc?(gb("']' expected"),!1):(eb(),!0)}function t(){return 93!==Jc&&!b(Jc)}function u(){return 92===Jc?r():(eb(),!0)}function v(){for(;!db();)switch(Jc){case 96:return;case 92:V();break;case 36:var a=Ec.charCodeAt(Dc+1);if(123===a)return;default:eb()}}function w(a){return db()?(gb("Unterminated template literal"),Hc=O(Hb,a)):y(Tb,sc)}function x(){return db()?(gb("Expected '}' after expression in template literal"),O(Hb,Dc)):Gc.type!==Bb?(gb("Expected '}' after expression in template literal"),O(Lb,Dc)):y(uc,tc)}function y(a,b){var c=Dc;if(v(),db())return gb("Unterminated template literal"),O(Lb,c);var d=S(c);switch(Jc){case 96:return eb(),Hc=new jb(a,d,m(c-1));case 36:return eb(),eb(),Hc=new jb(b,d,m(c-1))}}function z(){var a=B();return Gc=Ic||K(),Ic=null,Hc=a,a}function A(){for(var a=B(),c=Hc.location.end.offset,d=a.location.start.offset,e=c;d>e;e++){var f=Ec.charCodeAt(e);if(b(f))return null;if(47===f){if(f=Ec.charCodeAt(++e),47===f)return null;e=Ec.indexOf("*/",e)+2}}return a}function B(){return Gc||(Gc=K())}function C(){return Gc||(Gc=K()),Ic||(Ic=K()),Ic
}function D(){for(;!db()&&E();)eb()}function E(){return a(Jc)}function F(){for(;G(););}function G(){D();var a=Jc;if(47===a)switch(a=Ec.charCodeAt(Dc+1)){case 47:return I(),!0;case 42:return J(),!0}return!1}function H(a,b){Nc.commentCallback&&Mc.handleComment(Kc.getSourceRange(a,b))}function I(){var a=Dc;for(Dc+=2;!db()&&!b(Ec.charCodeAt(Dc++)););fb(),H(a,Dc)}function J(){var a=Dc,b=Ec.indexOf("*/",Dc+2);Dc=-1!==b?b+2:Fc,fb(),H(a,Dc)}function K(){F();var a=Dc;if(db())return O(Hb,a);var b=Jc;switch(eb(),b){case 123:return O(Yb,a);case 125:return O(Bb,a);case 40:return O(Zb,a);case 41:return O(Cb,a);case 91:return O($b,a);case 93:return O(Db,a);case 46:switch(Jc){case 46:if(46===Ec.charCodeAt(Dc+1))return eb(),eb(),O(Gb,a);break;default:if(c(Jc))return L(a)}return O(cc,a);case 59:return O(kc,a);case 44:return O(Fb,a);case 126:return O(vc,a);case 63:return O(gc,a);case 58:return O(Eb,a);case 60:switch(Jc){case 60:return eb(),61===Jc?(eb(),O(Ob,a)):O(Nb,a);case 61:return eb(),O(Pb,a);default:return O(Xb,a)}case 62:switch(Jc){case 62:switch(eb(),Jc){case 61:return eb(),O(jc,a);case 62:return eb(),61===Jc?(eb(),O(xc,a)):O(wc,a);default:return O(ic,a)}case 61:return eb(),O(Mb,a);default:return O(Ab,a)}case 61:return 61===Jc?(eb(),61===Jc?(eb(),O(Kb,a)):O(Jb,a)):62===Jc&&Nc.arrowFunctions?(eb(),O(tb,a)):O(Ib,a);case 33:return 61===Jc?(eb(),61===Jc?(eb(),O(Vb,a)):O(Ub,a)):O(vb,a);case 42:return 61===Jc?(eb(),O(oc,a)):42===Jc&&Nc.exponentiation?(eb(),61===Jc?(eb(),O(qc,a)):O(pc,a)):O(nc,a);case 37:return 61===Jc?(eb(),O(bc,a)):O(ac,a);case 94:return 61===Jc?(eb(),O(zb,a)):O(yb,a);case 47:return 61===Jc?(eb(),O(mc,a)):O(lc,a);case 43:switch(Jc){case 43:return eb(),O(fc,a);case 61:return eb(),O(ec,a);default:return O(dc,a)}case 45:switch(Jc){case 45:return eb(),O(Sb,a);case 61:return eb(),O(Rb,a);default:return O(Qb,a)}case 38:switch(Jc){case 38:return eb(),O(sb,a);case 61:return eb(),O(rb,a);default:return O(qb,a)}case 124:switch(Jc){case 124:return eb(),O(_b,a);case 61:return eb(),O(xb,a);default:return O(wb,a)}case 96:return w(a);case 64:return O(ub,a);case 48:return N(a);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return M(a);case 34:case 39:return R(a,b);default:return Q(a,b)}}function L(a){return _(),$(a)}function M(a){return _(),Z(a)}function N(a){switch(Jc){case 46:return Z(a);case 88:case 120:return eb(),d(Jc)||gb("Hex Integer Literal must contain at least one digit"),ab(),new jb(Wb,S(a),m(a));case 66:case 98:if(!Nc.numericLiterals)break;return eb(),e(Jc)||gb("Binary Integer Literal must contain at least one digit"),bb(),new jb(Wb,S(a),m(a));case 79:case 111:if(!Nc.numericLiterals)break;return eb(),f(Jc)||gb("Octal Integer Literal must contain at least one digit"),cb(),new jb(Wb,S(a),m(a));case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return M(a)}return new jb(Wb,S(a),m(a))}function O(a,b){return new kb(a,m(b))}function P(){var a=Dc;return 117===Jc&&(eb(),X()&&X()&&X()&&X())?parseInt(S(a+1),16):(gb("Invalid unicode escape sequence in identifier",a-1),0)}function Q(a,b){var c;if(92===b&&(b=P(),c=[b]),!g(b))return gb("Character code '"+b+"' is not a valid identifier start char",a),O(Lb,a);for(;;)if(b=Jc,h(b))eb();else{if(92!==b)break;if(eb(),b=P(),c||(c=[]),c.push(b),!h(b))return O(Lb,a)}var d=Ec.slice(a,Dc),e=lb(d);if(e)return new ib(d,e,m(a));if(c){var f=0;d=d.replace(/\\u..../g,function(){return String.fromCharCode(c[f++])})}return new hb(m(a),d)}function R(a,b){for(;T(b);)if(!U())return new jb(rc,S(a),m(a));return Jc!==b?gb("Unterminated String Literal",a):eb(),new jb(rc,S(a),m(a))}function S(a){return Ec.substring(a,Dc)}function T(a){return!db()&&Jc!==a&&!b(Jc)}function U(){return 92===Jc?V():(eb(),!0)}function V(){if(eb(),db())return gb("Unterminated string literal escape sequence"),!1;if(b(Jc))return Y(),!0;var a=Jc;switch(eb(),a){case 39:case 34:case 92:case 98:case 102:case 110:case 114:case 116:case 118:case 48:return!0;case 120:return X()&&X();case 117:return W();default:return!0}}function W(){if(123===Jc&&Nc.unicodeEscapeSequences){eb();var a=Dc;if(!d(Jc))return gb("Hex digit expected"),!1;if(ab(),125!==Jc)return gb("Hex digit expected"),!1;var b=S(a,Dc);return parseInt(b,16)>1114111?(gb("The code point in a Unicode escape sequence cannot exceed 10FFFF"),!1):(eb(),!0)}return X()&&X()&&X()&&X()}function X(){return d(Jc)?(eb(),!0):(gb("Hex digit expected"),!1)}function Y(){var a=Jc;eb(),13===a&&10===Jc&&eb()}function Z(a){return 46===Jc&&(eb(),_()),$(a)}function $(a){switch(Jc){case 101:case 69:switch(eb(),Jc){case 43:case 45:eb()}c(Jc)||gb("Exponent part must contain at least one digit"),_()}return new jb(Wb,S(a),m(a))}function _(){for(;c(Jc);)eb()}function ab(){for(;d(Jc);)eb()}function bb(){for(;e(Jc);)eb()}function cb(){for(;f(Jc);)eb()}function db(){return Dc===Fc}function eb(){Dc++,fb()}function fb(){Jc=Ec.charCodeAt(Dc)}function gb(a){var b=void 0!==arguments[1]?arguments[1]:Dc,c=l(b);Lc.reportError(c,a)}for(var hb=System.get("traceur@0.0.79/src/syntax/IdentifierToken.js").IdentifierToken,ib=System.get("traceur@0.0.79/src/syntax/KeywordToken.js").KeywordToken,jb=System.get("traceur@0.0.79/src/syntax/LiteralToken.js").LiteralToken,kb=System.get("traceur@0.0.79/src/syntax/Token.js").Token,lb=System.get("traceur@0.0.79/src/syntax/Keywords.js").getKeywordType,mb=System.get("traceur@0.0.79/src/syntax/unicode-tables.js"),nb=mb.idContinueTable,ob=mb.idStartTable,pb=System.get("traceur@0.0.79/src/syntax/TokenType.js"),qb=pb.AMPERSAND,rb=pb.AMPERSAND_EQUAL,sb=pb.AND,tb=pb.ARROW,ub=pb.AT,vb=pb.BANG,wb=pb.BAR,xb=pb.BAR_EQUAL,yb=pb.CARET,zb=pb.CARET_EQUAL,Ab=pb.CLOSE_ANGLE,Bb=pb.CLOSE_CURLY,Cb=pb.CLOSE_PAREN,Db=pb.CLOSE_SQUARE,Eb=pb.COLON,Fb=pb.COMMA,Gb=pb.DOT_DOT_DOT,Hb=pb.END_OF_FILE,Ib=pb.EQUAL,Jb=pb.EQUAL_EQUAL,Kb=pb.EQUAL_EQUAL_EQUAL,Lb=pb.ERROR,Mb=pb.GREATER_EQUAL,Nb=pb.LEFT_SHIFT,Ob=pb.LEFT_SHIFT_EQUAL,Pb=pb.LESS_EQUAL,Qb=pb.MINUS,Rb=pb.MINUS_EQUAL,Sb=pb.MINUS_MINUS,Tb=pb.NO_SUBSTITUTION_TEMPLATE,Ub=pb.NOT_EQUAL,Vb=pb.NOT_EQUAL_EQUAL,Wb=pb.NUMBER,Xb=pb.OPEN_ANGLE,Yb=pb.OPEN_CURLY,Zb=pb.OPEN_PAREN,$b=pb.OPEN_SQUARE,_b=pb.OR,ac=pb.PERCENT,bc=pb.PERCENT_EQUAL,cc=pb.PERIOD,dc=pb.PLUS,ec=pb.PLUS_EQUAL,fc=pb.PLUS_PLUS,gc=pb.QUESTION,hc=pb.REGULAR_EXPRESSION,ic=pb.RIGHT_SHIFT,jc=pb.RIGHT_SHIFT_EQUAL,kc=pb.SEMI_COLON,lc=pb.SLASH,mc=pb.SLASH_EQUAL,nc=pb.STAR,oc=pb.STAR_EQUAL,pc=pb.STAR_STAR,qc=pb.STAR_STAR_EQUAL,rc=pb.STRING,sc=pb.TEMPLATE_HEAD,tc=pb.TEMPLATE_MIDDLE,uc=pb.TEMPLATE_TAIL,vc=pb.TILDE,wc=pb.UNSIGNED_RIGHT_SHIFT,xc=pb.UNSIGNED_RIGHT_SHIFT_EQUAL,yc=[],zc=0;128>zc;zc++)yc[zc]=zc>=9&&13>=zc||32===zc;for(var yc=[],zc=0;128>zc;zc++)yc[zc]=zc>=9&&13>=zc||32===zc;for(var Ac=[],zc=0;128>zc;zc++)Ac[zc]=zc>=48&&57>=zc||zc>=65&&70>=zc||zc>=97&&102>=zc;for(var Bc=[],zc=0;128>zc;zc++)Bc[zc]=36===zc||zc>=65&&90>=zc||95===zc||zc>=97&&122>=zc;for(var Cc=[],zc=0;128>zc;zc++)Cc[zc]=g(zc)||c(zc);var Dc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Oc=function(a,b,c,d){Lc=a,Kc=b.lineNumberTable,Ec=b.contents,Fc=b.contents.length,this.index=0,Mc=c,Nc=d};return $traceurRuntime.createClass(Oc,{get lastToken(){return Hc},getPosition:function(){return l(n())},nextRegularExpressionLiteralToken:function(){return Hc=o(),Gc=K(),Hc},nextTemplateLiteralToken:function(){var a=x();return Gc=K(),a},nextCloseAngle:function(){switch(Gc.type){case Mb:case ic:case jc:case wc:case xc:return this.index-=Gc.type.length-1,Hc=O(Ab,Dc),Gc=K(),Hc}return z()},nextToken:function(){return z()},peekToken:function(a){return a?C():B()},peekTokenNoLineTerminator:function(){return A()},isAtEnd:function(){return db()},set index(a){Dc=a,Hc=null,Gc=null,Ic=null,fb()},get index(){return Dc}},{}),{get isWhitespace(){return a},get isLineTerminator(){return b},get isIdentifierPart(){return h},get Scanner(){return Oc}}}),System.registerModule("traceur@0.0.79/src/syntax/Parser.js",[],function(){"use strict";function a(a){return a.some(function(a){return a.initializer})}var b=System.get("traceur@0.0.79/src/codegeneration/FindVisitor.js").FindVisitor,c=System.get("traceur@0.0.79/src/syntax/IdentifierToken.js").IdentifierToken,d=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),e=d.ARRAY_LITERAL_EXPRESSION,f=d.BINDING_IDENTIFIER,g=d.CALL_EXPRESSION,h=d.COMPUTED_PROPERTY_NAME,i=d.COVER_FORMALS,j=d.FORMAL_PARAMETER_LIST,k=d.IDENTIFIER_EXPRESSION,l=d.LITERAL_PROPERTY_NAME,m=d.OBJECT_LITERAL_EXPRESSION,n=d.REST_PARAMETER,o=d.SYNTAX_ERROR_TREE,p=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),q=p.AS,r=p.ASYNC,s=p.AWAIT,t=p.FROM,u=p.GET,v=p.OF,w=p.SET,x=System.get("traceur@0.0.79/src/util/SyntaxErrorReporter.js").SyntaxErrorReporter,y=System.get("traceur@0.0.79/src/syntax/Scanner.js").Scanner,z=System.get("traceur@0.0.79/src/util/SourceRange.js").SourceRange,A=System.get("traceur@0.0.79/src/staticsemantics/StrictParams.js").StrictParams,B=System.get("traceur@0.0.79/src/syntax/Token.js"),C=B.Token,D=B.isAssignmentOperator,E=System.get("traceur@0.0.79/src/syntax/Keywords.js").getKeywordType,F=System.get("traceur@0.0.79/src/Options.js").options,G=System.get("traceur@0.0.79/src/syntax/TokenType.js"),H=G.AMPERSAND,I=G.AND,J=G.ARROW,K=G.AT,L=G.BANG,M=G.BAR,N=G.BREAK,O=G.CARET,P=G.CASE,Q=G.CATCH,R=G.CLASS,S=G.CLOSE_ANGLE,T=G.CLOSE_CURLY,U=G.CLOSE_PAREN,V=G.CLOSE_SQUARE,W=G.COLON,X=G.COMMA,Y=G.CONST,Z=G.CONTINUE,$=G.DEBUGGER,_=G.DEFAULT,ab=G.DELETE,bb=G.DO,cb=G.DOT_DOT_DOT,db=G.ELSE,eb=G.END_OF_FILE,fb=G.EQUAL,gb=G.EQUAL_EQUAL,hb=G.EQUAL_EQUAL_EQUAL,ib=G.ERROR,jb=G.EXPORT,kb=G.EXTENDS,lb=G.FALSE,mb=G.FINALLY,nb=G.FOR,ob=G.FUNCTION,pb=G.GREATER_EQUAL,qb=G.IDENTIFIER,rb=G.IF,sb=G.IMPLEMENTS,tb=G.IMPORT,ub=G.IN,vb=G.INSTANCEOF,wb=G.INTERFACE,xb=G.LEFT_SHIFT,yb=G.LESS_EQUAL,zb=G.LET,Ab=G.MINUS,Bb=G.MINUS_MINUS,Cb=G.NEW,Db=G.NO_SUBSTITUTION_TEMPLATE,Eb=G.NOT_EQUAL,Fb=G.NOT_EQUAL_EQUAL,Gb=G.NULL,Hb=G.NUMBER,Ib=G.OPEN_ANGLE,Jb=G.OPEN_CURLY,Kb=G.OPEN_PAREN,Lb=G.OPEN_SQUARE,Mb=G.OR,Nb=G.PACKAGE,Ob=G.PERCENT,Pb=G.PERIOD,Qb=G.PLUS,Rb=G.PLUS_PLUS,Sb=G.PRIVATE,Tb=G.PROTECTED,Ub=G.PUBLIC,Vb=G.QUESTION,Wb=G.RETURN,Xb=G.RIGHT_SHIFT,Yb=G.SEMI_COLON,Zb=G.SLASH,$b=G.SLASH_EQUAL,_b=G.STAR,ac=G.STAR_STAR,bc=G.STATIC,cc=G.STRING,dc=G.SUPER,ec=G.SWITCH,fc=G.TEMPLATE_HEAD,gc=G.TEMPLATE_TAIL,hc=G.THIS,ic=G.THROW,jc=G.TILDE,kc=G.TRUE,lc=G.TRY,mc=G.TYPEOF,nc=G.UNSIGNED_RIGHT_SHIFT,oc=G.VAR,pc=G.VOID,qc=G.WHILE,rc=G.WITH,sc=G.YIELD,tc=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),uc=tc.ArgumentList,vc=tc.ArrayComprehension,wc=tc.ArrayLiteralExpression,xc=tc.ArrayPattern,yc=tc.ArrayType,zc=tc.ArrowFunctionExpression,Ac=tc.AssignmentElement,Bc=tc.AwaitExpression,Cc=tc.BinaryExpression,Dc=tc.BindingElement,Ec=tc.BindingIdentifier,Fc=tc.Block,Gc=tc.BreakStatement,Hc=tc.CallExpression,Ic=tc.CallSignature,Jc=tc.CaseClause,Kc=tc.Catch,Lc=tc.ClassDeclaration,Mc=tc.ClassExpression,Nc=tc.CommaExpression,Oc=tc.ComprehensionFor,Pc=tc.ComprehensionIf,Qc=tc.ComputedPropertyName,Rc=tc.ConditionalExpression,Sc=tc.ConstructSignature,Tc=tc.ConstructorType,Uc=tc.ContinueStatement,Vc=tc.CoverFormals,Wc=tc.CoverInitializedName,Xc=tc.DebuggerStatement,Yc=tc.Annotation,Zc=tc.DefaultClause,$c=tc.DoWhileStatement,_c=tc.EmptyStatement,ad=tc.ExportDeclaration,bd=tc.ExportDefault,cd=tc.ExportSpecifier,dd=tc.ExportSpecifierSet,ed=tc.ExportStar,fd=tc.ExpressionStatement,gd=tc.Finally,hd=tc.ForInStatement,id=tc.ForOfStatement,jd=tc.ForStatement,kd=tc.FormalParameter,ld=tc.FormalParameterList,md=tc.FunctionBody,nd=tc.FunctionDeclaration,od=tc.FunctionExpression,pd=tc.FunctionType,qd=tc.GeneratorComprehension,rd=tc.GetAccessor,sd=tc.IdentifierExpression,td=tc.IfStatement,ud=tc.ImportDeclaration,vd=tc.ImportSpecifier,wd=tc.ImportSpecifierSet,xd=tc.ImportedBinding,yd=tc.IndexSignature,zd=tc.InterfaceDeclaration,Ad=tc.LabelledStatement,Bd=tc.LiteralExpression,Cd=tc.LiteralPropertyName,Dd=tc.MemberExpression,Ed=tc.MemberLookupExpression,Fd=tc.MethodSignature,Gd=tc.Module,Hd=tc.ModuleDeclaration,Id=tc.ModuleSpecifier,Jd=tc.NamedExport,Kd=tc.NewExpression,Ld=tc.ObjectLiteralExpression,Md=tc.ObjectPattern,Nd=tc.ObjectPatternField,Od=tc.ObjectType,Pd=tc.ParenExpression,Qd=tc.PostfixExpression,Rd=tc.PredefinedType,Sd=tc.PropertyMethodAssignment,Td=tc.PropertyNameAssignment,Ud=tc.PropertyNameShorthand,Vd=tc.PropertySignature,Wd=tc.PropertyVariableDeclaration,Xd=tc.RestParameter,Yd=tc.ReturnStatement,Zd=tc.Script,$d=tc.SetAccessor,_d=tc.SpreadExpression,ae=tc.SpreadPatternElement,be=tc.SuperExpression,ce=tc.SwitchStatement,de=tc.SyntaxErrorTree,ee=tc.TemplateLiteralExpression,fe=tc.TemplateLiteralPortion,ge=tc.TemplateSubstitution,he=tc.ThisExpression,ie=tc.ThrowStatement,je=tc.TryStatement,ke=tc.TypeArguments,le=tc.TypeName,me=tc.TypeParameter,ne=tc.TypeParameters,oe=tc.TypeReference,pe=tc.UnaryExpression,qe=tc.UnionType,re=tc.VariableDeclaration,se=tc.VariableDeclarationList,te=tc.VariableStatement,ue=tc.WhileStatement,ve=tc.WithStatement,we=tc.YieldExpression,xe={NO_IN:"NO_IN",NORMAL:"NORMAL"},ye={REQUIRED:"REQUIRED",OPTIONAL:"OPTIONAL"},ze={ALLOWED:"ALLOWED",REQUIRED:"REQUIRED"},Ae=function(){$traceurRuntime.superConstructor(Be).call(this),this.errorToken=null},Be=Ae;$traceurRuntime.createClass(Ae,{visitCoverInitializedName:function(a){this.errorToken=a.equalToken,this.found=!0}},{},b);var Ce=function(a){var b=void 0!==arguments[1]?arguments[1]:new x,c=void 0!==arguments[2]?arguments[2]:F;this.errorReporter_=b,this.scanner_=new y(b,a,this,c),this.options_=c,this.allowYield=!1,this.allowAwait=!1,this.coverInitializedNameCount_=0,this.strictMode_=!1,this.annotations_=[]};return $traceurRuntime.createClass(Ce,{parseScript:function(){this.strictMode_=!1;var a=this.getTreeStartLocation_(),b=this.parseStatementList_(!0);return this.eat_(eb),new Zd(this.getTreeLocation_(a),b)},parseStatementList_:function(a){for(var b,c=[];(b=this.peekType_())!==T&&b!==eb;){var d=this.parseStatementListItem_(b);a&&(d.isDirectivePrologue()?d.isUseStrictDirective()&&(this.strictMode_=!0,a=!1):a=!1),c.push(d)}return c},parseStatementListItem_:function(a){return this.parseStatementWithType_(a)},parseModule:function(){var a=this.getTreeStartLocation_(),b=this.parseModuleItemList_();return this.eat_(eb),new Gd(this.getTreeLocation_(a),b,null)},parseModuleItemList_:function(){this.strictMode_=!0;for(var a,b=[];(a=this.peekType_())!==eb;){var c=this.parseModuleItem_(a);b.push(c)}return b},parseModuleItem_:function(a){switch(a){case tb:return this.parseImportDeclaration_();case jb:return this.parseExportDeclaration_();case K:if(this.options_.annotations)return this.parseAnnotatedDeclarations_(!0)}return this.parseStatementListItem_(a)},parseModuleSpecifier_:function(){var a=this.getTreeStartLocation_(),b=this.eat_(cc);return new Id(this.getTreeLocation_(a),b)},parseImportDeclaration_:function(){var a=this.getTreeStartLocation_();if(this.eat_(tb),this.peek_(_b)){this.eat_(_b),this.eatId_(q);var b=this.parseImportedBinding_();this.eatId_(t);var c=this.parseModuleSpecifier_();return this.eatPossibleImplicitSemiColon_(),new Hd(this.getTreeLocation_(a),b,c)}var d=null;this.peekImportClause_(this.peekType_())&&(d=this.parseImportClause_(),this.eatId_(t));var c=this.parseModuleSpecifier_();return this.eatPossibleImplicitSemiColon_(),new ud(this.getTreeLocation_(a),d,c)},peekImportClause_:function(a){return a===Jb||this.peekBindingIdentifier_(a)},parseImportClause_:function(){var a=this.getTreeStartLocation_();if(this.eatIf_(Jb)){for(var b=[];!this.peek_(T)&&!this.isAtEnd()&&(b.push(this.parseImportSpecifier_()),this.eatIf_(X)););return this.eat_(T),new wd(this.getTreeLocation_(a),b)}return this.parseImportedBinding_()},parseImportedBinding_:function(){var a=this.getTreeStartLocation_(),b=this.parseBindingIdentifier_();return new xd(this.getTreeLocation_(a),b)},parseImportSpecifier_:function(){var a,b=this.getTreeStartLocation_(),c=this.peekToken_(),d=c.isKeyword(),e=this.eatIdName_();return d||this.peekPredefinedString_(q)?(this.eatId_(q),a=this.parseImportedBinding_()):(a=new xd(e.location,new Ec(e.location,e)),e=null),new vd(this.getTreeLocation_(b),a,e)},parseExportDeclaration_:function(){var a=this.getTreeStartLocation_();this.eat_(jb);var b,c=this.popAnnotations_(),d=this.peekType_();switch(d){case Y:case zb:case oc:b=this.parseVariableStatement_();break;case ob:b=this.parseFunctionDeclaration_();break;case R:b=this.parseClassDeclaration_();break;case _:b=this.parseExportDefault_();break;case Jb:case _b:b=this.parseNamedExport_();break;case qb:if(this.options_.asyncFunctions&&this.peekPredefinedString_(r)){var e=this.eatId_();b=this.parseAsyncFunctionDeclaration_(e);break}default:return this.parseUnexpectedToken_(d)}return new ad(this.getTreeLocation_(a),b,c)},parseExportDefault_:function(){var a=this.getTreeStartLocation_();this.eat_(_);var b;switch(this.peekType_()){case ob:var c=this.parseFunctionExpression_();c.name&&(c=new nd(c.location,c.name,c.functionKind,c.parameterList,c.typeAnnotation,c.annotations,c.body)),b=c;break;case R:if(this.options_.classes){var c=this.parseClassExpression_();c.name&&(c=new Lc(c.location,c.name,c.superClass,c.elements,c.annotations)),b=c;break}default:b=this.parseAssignmentExpression(),this.eatPossibleImplicitSemiColon_()}return new bd(this.getTreeLocation_(a),b)},parseNamedExport_:function(){var a,b=this.getTreeStartLocation_(),c=null;return this.peek_(Jb)?(a=this.parseExportSpecifierSet_(),this.peekPredefinedString_(t)?(this.eatId_(t),c=this.parseModuleSpecifier_()):this.validateExportSpecifierSet_(a)):(this.eat_(_b),a=new ed(this.getTreeLocation_(b)),this.eatId_(t),c=this.parseModuleSpecifier_()),this.eatPossibleImplicitSemiColon_(),new Jd(this.getTreeLocation_(b),c,a)},parseExportSpecifierSet_:function(){var a=this.getTreeStartLocation_();this.eat_(Jb);for(var b=[this.parseExportSpecifier_()];this.eatIf_(X)&&!this.peek_(T);)b.push(this.parseExportSpecifier_());return this.eat_(T),new dd(this.getTreeLocation_(a),b)},parseExportSpecifier_:function(){var a=this.getTreeStartLocation_(),b=this.eatIdName_(),c=null;return this.peekPredefinedString_(q)&&(this.eatId_(),c=this.eatIdName_()),new cd(this.getTreeLocation_(a),b,c)},validateExportSpecifierSet_:function(a){for(var b=0;b<a.specifiers.length;b++){var c=a.specifiers[b];E(c.lhs.value)&&this.reportError_(c.lhs.location,"Unexpected token "+c.lhs.value)}},peekId_:function(a){return a===qb?!0:this.strictMode_?!1:this.peekToken_().isStrictKeyword()},peekIdName_:function(a){return a.type===qb||a.isKeyword()},parseClassShared_:function(a){var b=this.getTreeStartLocation_(),c=this.strictMode_;this.strictMode_=!0,this.eat_(R);var d=null,e=null,f=[];(a==Lc||!this.peek_(kb)&&!this.peek_(Jb))&&(d=this.parseBindingIdentifier_(),this.options_.types&&(e=this.parseTypeParametersOpt_()),f=this.popAnnotations_());var g=null;this.eatIf_(kb)&&(g=this.parseLeftHandSideExpression_()),this.eat_(Jb);var h=this.parseClassElements_();return this.eat_(T),this.strictMode_=c,new a(this.getTreeLocation_(b),d,g,h,f,e)},parseClassDeclaration_:function(){return this.parseClassShared_(Lc)},parseClassExpression_:function(){return this.parseClassShared_(Mc)},parseClassElements_:function(){for(var a=[];;){var b=this.peekType_();if(b===Yb)this.nextToken_();else{if(!this.peekClassElement_(this.peekType_()))break;a.push(this.parseClassElement_())}}return a},peekClassElement_:function(a){return this.peekPropertyName_(a)||a===_b&&this.options_.generators||a===K&&this.options_.annotations},parsePropertyName_:function(){return this.peek_(Lb)?this.parseComputedPropertyName_():this.parseLiteralPropertyName_()},parseLiteralPropertyName_:function(){var a=this.getTreeStartLocation_(),b=this.nextToken_();return new Cd(this.getTreeLocation_(a),b)},parseComputedPropertyName_:function(){var a=this.getTreeStartLocation_();this.eat_(Lb);var b=this.parseAssignmentExpression();return this.eat_(V),new Qc(this.getTreeLocation_(a),b)},parseStatement:function(){return this.parseModuleItem_(this.peekType_())},parseStatements:function(){return this.parseModuleItemList_()},parseStatement_:function(){return this.parseStatementWithType_(this.peekType_())},parseStatementWithType_:function(a){switch(a){case Wb:return this.parseReturnStatement_();case Y:case zb:if(!this.options_.blockBinding)break;case oc:return this.parseVariableStatement_();case rb:return this.parseIfStatement_();case nb:return this.parseForStatement_();case N:return this.parseBreakStatement_();case ec:return this.parseSwitchStatement_();case ic:return this.parseThrowStatement_();case qc:return this.parseWhileStatement_();case ob:return this.parseFunctionDeclaration_();case K:if(this.options_.annotations)return this.parseAnnotatedDeclarations_(!1);break;case R:if(this.options_.classes)return this.parseClassDeclaration_();break;case Z:return this.parseContinueStatement_();case $:return this.parseDebuggerStatement_();case bb:return this.parseDoWhileStatement_();case Jb:return this.parseBlock_();case Yb:return this.parseEmptyStatement_();case lc:return this.parseTryStatement_();case rc:return this.parseWithStatement_();case wb:if(this.options_.types)return this.parseInterfaceDeclaration_()}return this.parseFallThroughStatement_()},parseFunctionDeclaration_:function(){return this.parseFunction_(nd)},parseFunctionExpression_:function(){return this.parseFunction_(od)},parseAsyncFunctionDeclaration_:function(a){return this.parseAsyncFunction_(a,nd)},parseAsyncFunctionExpression_:function(a){return this.parseAsyncFunction_(a,od)},parseAsyncFunction_:function(a,b){var c=a.location.start;return this.eat_(ob),this.parseFunction2_(c,a,b)},parseFunction_:function(a){var b=this.getTreeStartLocation_();this.eat_(ob);var c=null;return this.options_.generators&&this.peek_(_b)&&(c=this.eat_(_b)),this.parseFunction2_(b,c,a)},parseFunction2_:function(a,b,c){var d=null,e=[];(c===nd||this.peekBindingIdentifier_(this.peekType_()))&&(d=this.parseBindingIdentifier_(),e=this.popAnnotations_()),this.eat_(Kb);var f=this.parseFormalParameters_();this.eat_(U);var g=this.parseTypeAnnotationOpt_(),h=this.parseFunctionBody_(b,f);return new c(this.getTreeLocation_(a),d,b,f,g,e,h)},peekRest_:function(a){return a===cb&&this.options_.restParameters},parseFormalParameters_:function(){var a=this.getTreeStartLocation_(),b=[];this.pushAnnotations_();var c=this.peekType_();if(this.peekRest_(c))b.push(this.parseFormalRestParameter_());else for(this.peekFormalParameter_(this.peekType_())&&b.push(this.parseFormalParameter_());this.eatIf_(X);){if(this.pushAnnotations_(),this.peekRest_(this.peekType_())){b.push(this.parseFormalRestParameter_());break}b.push(this.parseFormalParameter_())}return new ld(this.getTreeLocation_(a),b)},peekFormalParameter_:function(a){return this.peekBindingElement_(a)},parseFormalParameter_:function(){var a=arguments[0],b=this.getTreeStartLocation_(),c=this.parseBindingElementBinding_(),d=this.parseTypeAnnotationOpt_(),e=this.parseBindingElementInitializer_(a);return new kd(this.getTreeLocation_(b),new Dc(this.getTreeLocation_(b),c,e),d,this.popAnnotations_())},parseFormalRestParameter_:function(){var a=this.getTreeStartLocation_(),b=this.parseRestParameter_(),c=this.parseTypeAnnotationOpt_();return new kd(this.getTreeLocation_(a),b,c,this.popAnnotations_())},parseRestParameter_:function(){var a=this.getTreeStartLocation_();this.eat_(cb);var b=this.parseBindingIdentifier_(),c=this.parseTypeAnnotationOpt_();return new Xd(this.getTreeLocation_(a),b,c)},parseFunctionBody_:function(a,b){var c=this.getTreeStartLocation_();this.eat_(Jb);var d=this.allowYield,e=this.allowAwait,f=this.strictMode_;this.allowYield=a&&a.type===_b,this.allowAwait=a&&a.type===qb&&a.value===r;var g=this.parseStatementList_(!f);return!f&&this.strictMode_&&b&&A.visit(b,this.errorReporter_),this.strictMode_=f,this.allowYield=d,this.allowAwait=e,this.eat_(T),new md(this.getTreeLocation_(c),g)},parseSpreadExpression_:function(){if(!this.options_.spread)return this.parseUnexpectedToken_(cb);var a=this.getTreeStartLocation_();this.eat_(cb);var b=this.parseAssignmentExpression();return new _d(this.getTreeLocation_(a),b)},parseBlock_:function(){var a=this.getTreeStartLocation_();this.eat_(Jb);var b=this.parseStatementList_(!1);return this.eat_(T),new Fc(this.getTreeLocation_(a),b)},parseVariableStatement_:function(){var a=this.getTreeStartLocation_(),b=this.parseVariableDeclarationList_();return this.checkInitializers_(b),this.eatPossibleImplicitSemiColon_(),new te(this.getTreeLocation_(a),b)},parseVariableDeclarationList_:function(){var a=void 0!==arguments[0]?arguments[0]:xe.NORMAL,b=void 0!==arguments[1]?arguments[1]:ye.REQUIRED,c=this.peekType_();switch(c){case Y:case zb:!this.options_.blockBinding;case oc:this.nextToken_();break;default:throw Error("unreachable")}var d=this.getTreeStartLocation_(),e=[];for(e.push(this.parseVariableDeclaration_(c,a,b));this.eatIf_(X);)e.push(this.parseVariableDeclaration_(c,a,b));return new se(this.getTreeLocation_(d),c,e)},parseVariableDeclaration_:function(a,b){var c,d,e=void 0!==arguments[2]?arguments[2]:ye.REQUIRED,f=e!==ye.OPTIONAL,g=this.getTreeStartLocation_();this.peekPattern_(this.peekType_())?(c=this.parseBindingPattern_(),d=null):(c=this.parseBindingIdentifier_(),d=this.parseTypeAnnotationOpt_());var e=null;return this.peek_(fb)?e=this.parseInitializer_(b):c.isPattern()&&f&&this.reportError_("destructuring must have an initializer"),new re(this.getTreeLocation_(g),c,d,e)},parseInitializer_:function(a){return this.eat_(fb),this.parseAssignmentExpression(a)},parseInitializerOpt_:function(a){return this.eatIf_(fb)?this.parseAssignmentExpression(a):null},parseEmptyStatement_:function(){var a=this.getTreeStartLocation_();return this.eat_(Yb),new _c(this.getTreeLocation_(a))},parseFallThroughStatement_:function(){var a,b=this.getTreeStartLocation_();if(this.options_.asyncFunctions&&this.peekPredefinedString_(r)&&this.peek_(ob,1)){var c=this.eatId_(),d=this.peekTokenNoLineTerminator_();if(null!==d)return this.parseAsyncFunctionDeclaration_(c);a=new sd(this.getTreeLocation_(b),c)}else a=this.parseExpression();if(a.type===k&&this.eatIf_(W)){var e=a.identifierToken,f=this.parseStatement_();return new Ad(this.getTreeLocation_(b),e,f)}return this.eatPossibleImplicitSemiColon_(),new fd(this.getTreeLocation_(b),a)},parseIfStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(rb),this.eat_(Kb);var b=this.parseExpression();this.eat_(U);var c=this.parseStatement_(),d=null;return this.eatIf_(db)&&(d=this.parseStatement_()),new td(this.getTreeLocation_(a),b,c,d)},parseDoWhileStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(bb);var b=this.parseStatement_();this.eat_(qc),this.eat_(Kb);var c=this.parseExpression();return this.eat_(U),this.eatPossibleImplicitSemiColon_(),new $c(this.getTreeLocation_(a),b,c)},parseWhileStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(qc),this.eat_(Kb);var b=this.parseExpression();this.eat_(U);var c=this.parseStatement_();return new ue(this.getTreeLocation_(a),b,c)},parseForStatement_:function(){var b=this.getTreeStartLocation_();this.eat_(nb),this.eat_(Kb);var c=this.peekType_();if(this.peekVariableDeclarationList_(c)){var d=this.parseVariableDeclarationList_(xe.NO_IN,ye.OPTIONAL),e=d.declarations;return e.length>1||a(e)?this.parseForStatement2_(b,d):(c=this.peekType_(),c===ub?this.parseForInStatement_(b,d):this.peekOf_(c)?this.parseForOfStatement_(b,d):(this.checkInitializers_(d),this.parseForStatement2_(b,d)))}if(c===Yb)return this.parseForStatement2_(b,null);var f=this.coverInitializedNameCount_,g=this.parseExpressionAllowPattern_(xe.NO_IN);return c=this.peekType_(),g.isLeftHandSideExpression()&&(c===ub||this.peekOf_(c))?(g=this.transformLeftHandSideExpression_(g),this.peekOf_(c)?this.parseForOfStatement_(b,g):this.parseForInStatement_(b,g)):(this.ensureNoCoverInitializedNames_(g,f),this.parseForStatement2_(b,g))},peekOf_:function(a){return a===qb&&this.options_.forOf&&this.peekToken_().value===v},parseForOfStatement_:function(a,b){this.eatId_();var c=this.parseExpression();this.eat_(U);var d=this.parseStatement_();return new id(this.getTreeLocation_(a),b,c,d)},checkInitializers_:function(a){if(this.options_.blockBinding&&a.declarationType==Y)for(var b=a.declarationType,c=0;c<a.declarations.length&&this.checkInitializer_(b,a.declarations[c]);c++);},checkInitializer_:function(a,b){return this.options_.blockBinding&&a==Y&&null==b.initializer?(this.reportError_("const variables must have an initializer"),!1):!0},peekVariableDeclarationList_:function(a){switch(a){case oc:return!0;case Y:case zb:return this.options_.blockBinding;default:return!1}},parseForStatement2_:function(a,b){this.eat_(Yb);var c=null;this.peek_(Yb)||(c=this.parseExpression()),this.eat_(Yb);var d=null;this.peek_(U)||(d=this.parseExpression()),this.eat_(U);var e=this.parseStatement_();return new jd(this.getTreeLocation_(a),b,c,d,e)},parseForInStatement_:function(a,b){this.eat_(ub);var c=this.parseExpression();this.eat_(U);var d=this.parseStatement_();return new hd(this.getTreeLocation_(a),b,c,d)},parseContinueStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(Z);var b=null;return this.peekImplicitSemiColon_(this.peekType_())||(b=this.eatIdOpt_()),this.eatPossibleImplicitSemiColon_(),new Uc(this.getTreeLocation_(a),b)},parseBreakStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(N);var b=null;return this.peekImplicitSemiColon_(this.peekType_())||(b=this.eatIdOpt_()),this.eatPossibleImplicitSemiColon_(),new Gc(this.getTreeLocation_(a),b)},parseReturnStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(Wb);var b=null;return this.peekImplicitSemiColon_(this.peekType_())||(b=this.parseExpression()),this.eatPossibleImplicitSemiColon_(),new Yd(this.getTreeLocation_(a),b)},parseYieldExpression_:function(){var a=this.getTreeStartLocation_();this.eat_(sc);var b=null,c=!1;return this.peekImplicitSemiColon_(this.peekType_())||(c=this.eatIf_(_b),b=this.parseAssignmentExpression()),new we(this.getTreeLocation_(a),b,c)},parseWithStatement_:function(){this.strictMode_&&this.reportError_("Strict mode code may not include a with statement");var a=this.getTreeStartLocation_();this.eat_(rc),this.eat_(Kb);var b=this.parseExpression();this.eat_(U);var c=this.parseStatement_();return new ve(this.getTreeLocation_(a),b,c)},parseSwitchStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(ec),this.eat_(Kb);var b=this.parseExpression();this.eat_(U),this.eat_(Jb);var c=this.parseCaseClauses_();return this.eat_(T),new ce(this.getTreeLocation_(a),b,c)},parseCaseClauses_:function(){for(var a=!1,b=[];;){var c=this.getTreeStartLocation_();switch(this.peekType_()){case P:this.nextToken_();var d=this.parseExpression();this.eat_(W);var e=this.parseCaseStatementsOpt_();b.push(new Jc(this.getTreeLocation_(c),d,e));break;case _:a?this.reportError_("Switch statements may have at most one default clause"):a=!0,this.nextToken_(),this.eat_(W),b.push(new Zc(this.getTreeLocation_(c),this.parseCaseStatementsOpt_()));break;default:return b}}},parseCaseStatementsOpt_:function(){for(var a,b=[];;){switch(a=this.peekType_()){case P:case _:case T:case eb:return b}b.push(this.parseStatementWithType_(a))}},parseThrowStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(ic);var b=null;return this.peekImplicitSemiColon_(this.peekType_())||(b=this.parseExpression()),this.eatPossibleImplicitSemiColon_(),new ie(this.getTreeLocation_(a),b)},parseTryStatement_:function(){var a=this.getTreeStartLocation_();this.eat_(lc);var b=this.parseBlock_(),c=null;this.peek_(Q)&&(c=this.parseCatch_());var d=null;return this.peek_(mb)&&(d=this.parseFinallyBlock_()),null==c&&null==d&&this.reportError_("'catch' or 'finally' expected."),new je(this.getTreeLocation_(a),b,c,d)},parseCatch_:function(){var a,b=this.getTreeStartLocation_();this.eat_(Q),this.eat_(Kb);var c;c=this.peekPattern_(this.peekType_())?this.parseBindingPattern_():this.parseBindingIdentifier_(),this.eat_(U);var d=this.parseBlock_();return a=new Kc(this.getTreeLocation_(b),c,d)},parseFinallyBlock_:function(){var a=this.getTreeStartLocation_();this.eat_(mb);var b=this.parseBlock_();return new gd(this.getTreeLocation_(a),b)
},parseDebuggerStatement_:function(){var a=this.getTreeStartLocation_();return this.eat_($),this.eatPossibleImplicitSemiColon_(),new Xc(this.getTreeLocation_(a))},parsePrimaryExpression_:function(){switch(this.peekType_()){case R:return this.options_.classes?this.parseClassExpression_():this.parseSyntaxError_("Unexpected reserved word");case hc:return this.parseThisExpression_();case qb:var a=this.parseIdentifierExpression_();if(this.options_.asyncFunctions&&a.identifierToken.value===r){var b=this.peekTokenNoLineTerminator_();if(b&&b.type===ob){var c=a.identifierToken;return this.parseAsyncFunctionExpression_(c)}}return a;case Hb:case cc:case kc:case lb:case Gb:return this.parseLiteralExpression_();case Lb:return this.parseArrayLiteral_();case Jb:return this.parseObjectLiteral_();case Kb:return this.parsePrimaryExpressionStartingWithParen_();case Zb:case $b:return this.parseRegularExpressionLiteral_();case Db:case fc:return this.parseTemplateLiteral_(null);case sb:case wb:case Nb:case Sb:case Tb:case Ub:case bc:case sc:if(!this.strictMode_)return this.parseIdentifierExpression_();this.reportReservedIdentifier_(this.nextToken_());case eb:return this.parseSyntaxError_("Unexpected end of input");default:return this.parseUnexpectedToken_(this.peekToken_())}},parseSuperExpression_:function(){var a=this.getTreeStartLocation_();return this.eat_(dc),new be(this.getTreeLocation_(a))},parseThisExpression_:function(){var a=this.getTreeStartLocation_();return this.eat_(hc),new he(this.getTreeLocation_(a))},peekBindingIdentifier_:function(a){return this.peekId_(a)},parseBindingIdentifier_:function(){var a=this.getTreeStartLocation_(),b=this.eatId_();return new Ec(this.getTreeLocation_(a),b)},parseIdentifierExpression_:function(){var a=this.getTreeStartLocation_(),b=this.eatId_();return new sd(this.getTreeLocation_(a),b)},parseIdentifierNameExpression_:function(){var a=this.getTreeStartLocation_(),b=this.eatIdName_();return new sd(this.getTreeLocation_(a),b)},parseLiteralExpression_:function(){var a=this.getTreeStartLocation_(),b=this.nextLiteralToken_();return new Bd(this.getTreeLocation_(a),b)},nextLiteralToken_:function(){return this.nextToken_()},parseRegularExpressionLiteral_:function(){var a=this.getTreeStartLocation_(),b=this.nextRegularExpressionLiteralToken_();return new Bd(this.getTreeLocation_(a),b)},peekSpread_:function(a){return a===cb&&this.options_.spread},parseArrayLiteral_:function(){var a,b=this.getTreeStartLocation_(),c=[];this.eat_(Lb);var d=this.peekType_();if(d===nb&&this.options_.arrayComprehension)return this.parseArrayComprehension_(b);for(;;){if(d=this.peekType_(),d===X)a=null;else if(this.peekSpread_(d))a=this.parseSpreadExpression_();else{if(!this.peekAssignmentExpression_(d))break;a=this.parseAssignmentExpression()}c.push(a),d=this.peekType_(),d!==V&&this.eat_(X)}return this.eat_(V),new wc(this.getTreeLocation_(b),c)},parseArrayComprehension_:function(a){var b=this.parseComprehensionList_(),c=this.parseAssignmentExpression();return this.eat_(V),new vc(this.getTreeLocation_(a),b,c)},parseComprehensionList_:function(){for(var a=[this.parseComprehensionFor_()];;){var b=this.peekType_();switch(b){case nb:a.push(this.parseComprehensionFor_());break;case rb:a.push(this.parseComprehensionIf_());break;default:return a}}},parseComprehensionFor_:function(){var a=this.getTreeStartLocation_();this.eat_(nb),this.eat_(Kb);var b=this.parseForBinding_();this.eatId_(v);var c=this.parseExpression();return this.eat_(U),new Oc(this.getTreeLocation_(a),b,c)},parseComprehensionIf_:function(){var a=this.getTreeStartLocation_();this.eat_(rb),this.eat_(Kb);var b=this.parseExpression();return this.eat_(U),new Pc(this.getTreeLocation_(a),b)},parseObjectLiteral_:function(){var a=this.getTreeStartLocation_(),b=[];for(this.eat_(Jb);this.peekPropertyDefinition_(this.peekType_());){var c=this.parsePropertyDefinition();if(b.push(c),!this.eatIf_(X))break}return this.eat_(T),new Ld(this.getTreeLocation_(a),b)},parsePropertyDefinition:function(){var a=this.getTreeStartLocation_(),b=null,d=!1;if(this.options_.generators&&this.options_.propertyMethods&&this.peek_(_b))return this.parseGeneratorMethod_(a,d,[]);var e=this.peekToken_(),f=this.parsePropertyName_();if(this.options_.propertyMethods&&this.peek_(Kb))return this.parseMethod_(a,d,b,f,[]);if(this.eatIf_(W)){var g=this.parseAssignmentExpression();return new Td(this.getTreeLocation_(a),f,g)}var i=this.peekType_();if(f.type===l){var j=f.literalToken;if(j.value===u&&this.peekPropertyName_(i))return this.parseGetAccessor_(a,d,[]);if(j.value===w&&this.peekPropertyName_(i))return this.parseSetAccessor_(a,d,[]);if(this.options_.asyncFunctions&&j.value===r&&this.peekPropertyName_(i)){var k=j,f=this.parsePropertyName_();return this.parseMethod_(a,d,k,f,[])}if(this.options_.propertyNameShorthand&&j.type===qb||!this.strictMode_&&j.type===sc){if(this.peek_(fb)){e=this.nextToken_();var m=this.coverInitializedNameCount_,n=this.parseAssignmentExpression();return this.ensureNoCoverInitializedNames_(n,m),this.coverInitializedNameCount_++,new Wc(this.getTreeLocation_(a),j,e,n)}return j.type===sc&&(j=new c(j.location,sc)),new Ud(this.getTreeLocation_(a),j)}this.strictMode_&&j.isStrictKeyword()&&this.reportReservedIdentifier_(j)}return f.type===h&&(e=this.peekToken_()),this.parseUnexpectedToken_(e)},parseClassElement_:function(){var a=this.getTreeStartLocation_(),b=this.parseAnnotations_(),c=this.peekType_(),d=!1,e=null;switch(c){case bc:var f=this.nextToken_();switch(c=this.peekType_()){case Kb:var g=new Cd(a,f);return this.parseMethod_(a,d,e,g,b);default:return d=!0,c===_b&&this.options_.generators?this.parseGeneratorMethod_(a,!0,b):this.parseClassElement2_(a,d,b)}break;case _b:return this.parseGeneratorMethod_(a,d,b);default:return this.parseClassElement2_(a,d,b)}},parseGeneratorMethod_:function(a,b,c){var d=this.eat_(_b),e=this.parsePropertyName_();return this.parseMethod_(a,b,d,e,c)},parseMethod_:function(a,b,c,d,e){this.eat_(Kb);var f=this.parseFormalParameters_();this.eat_(U);var g=this.parseTypeAnnotationOpt_(),h=this.parseFunctionBody_(c,f);return new Sd(this.getTreeLocation_(a),b,c,d,f,g,e,h)},parsePropertyVariableDeclaration_:function(a,b,c,d){var e=this.parseTypeAnnotationOpt_();return this.eat_(Yb),new Wd(this.getTreeLocation_(a),b,c,e,d)},parseClassElement2_:function(a,b,c){var d=null,e=this.parsePropertyName_(),f=this.peekType_();if(e.type===l&&e.literalToken.value===u&&this.peekPropertyName_(f))return this.parseGetAccessor_(a,b,c);if(e.type===l&&e.literalToken.value===w&&this.peekPropertyName_(f))return this.parseSetAccessor_(a,b,c);if(this.options_.asyncFunctions&&e.type===l&&e.literalToken.value===r&&this.peekPropertyName_(f)){var g=e.literalToken,e=this.parsePropertyName_();return this.parseMethod_(a,b,g,e,c)}return this.options_.memberVariables&&f!==Kb?this.parsePropertyVariableDeclaration_(a,b,e,c):this.parseMethod_(a,b,d,e,c)},parseGetAccessor_:function(a,b,c){var d=null,e=this.parsePropertyName_();this.eat_(Kb),this.eat_(U);var f=this.parseTypeAnnotationOpt_(),g=this.parseFunctionBody_(d,null);return new rd(this.getTreeLocation_(a),b,e,f,c,g)},parseSetAccessor_:function(a,b,c){var d=null,e=this.parsePropertyName_();this.eat_(Kb);var f=this.parsePropertySetParameterList_();this.eat_(U);var g=this.parseFunctionBody_(d,f);return new $d(this.getTreeLocation_(a),b,e,f,c,g)},peekPropertyDefinition_:function(a){return this.peekPropertyName_(a)||a==_b&&this.options_.propertyMethods&&this.options_.generators},peekPropertyName_:function(a){switch(a){case qb:case cc:case Hb:return!0;case Lb:return this.options_.computedPropertyNames;default:return this.peekToken_().isKeyword()}},peekPredefinedString_:function(a){var b=this.peekToken_();return b.type===qb&&b.value===a},parsePropertySetParameterList_:function(){var a,b=this.getTreeStartLocation_();this.pushAnnotations_(),a=this.peekPattern_(this.peekType_())?this.parseBindingPattern_():this.parseBindingIdentifier_();var c=this.parseTypeAnnotationOpt_(),d=new kd(this.getTreeLocation_(b),new Dc(this.getTreeLocation_(b),a,null),c,this.popAnnotations_());return new ld(d.location,[d])},parsePrimaryExpressionStartingWithParen_:function(){var a=this.getTreeStartLocation_();return this.eat_(Kb),this.peek_(nb)&&this.options_.generatorComprehension?this.parseGeneratorComprehension_(a):this.parseCoverFormals_(a)},parseSyntaxError_:function(a){var b=this.getTreeStartLocation_();this.reportError_(a);var c=this.nextToken_();return new de(this.getTreeLocation_(b),c,a)},parseUnexpectedToken_:function(a){return this.parseSyntaxError_("Unexpected token "+a)},peekExpression_:function(a){switch(a){case Db:case fc:return this.options_.templateLiterals;case L:case R:case ab:case lb:case ob:case qb:case Ab:case Bb:case Cb:case Gb:case Hb:case Jb:case Kb:case Lb:case Qb:case Rb:case Zb:case $b:case cc:case dc:case hc:case jc:case kc:case mc:case pc:case sc:return!0;default:return!1}},parseExpression:function(){var a=void 0!==arguments[0]?arguments[0]:xe.IN,b=this.coverInitializedNameCount_,c=this.parseExpressionAllowPattern_(a);return this.ensureNoCoverInitializedNames_(c,b),c},parseExpressionAllowPattern_:function(a){var b=this.getTreeStartLocation_(),c=this.parseAssignmentExpression(a);if(this.peek_(X)){for(var d=[c];this.eatIf_(X);)d.push(this.parseAssignmentExpression(a));return new Nc(this.getTreeLocation_(b),d)}return c},peekAssignmentExpression_:function(a){return this.peekExpression_(a)},parseAssignmentExpression:function(){var a=void 0!==arguments[0]?arguments[0]:xe.NORMAL;if(this.allowYield&&this.peek_(sc))return this.parseYieldExpression_();var b=this.getTreeStartLocation_(),c=!1;if(this.options_.asyncFunctions&&this.peekPredefinedString_(r)){var d=this.peekToken_(),e=this.peekToken_(1);c=e.type===Kb&&d.location.end.line===e.location.start.line}var f=this.parseConditional_(a),h=this.peekType_();if(this.options_.asyncFunctions&&f.type===k&&f.identifierToken.value===r&&h===qb&&null!==this.peekTokenNoLineTerminator_()){var j=this.parseBindingIdentifier_(),d=f.IdentifierToken;return this.parseArrowFunction_(b,j,d)}if(h===J){if(f.type===i||f.type===k)return this.parseArrowFunction_(b,f,null);if(c&&f.type===g){var l=this.peekTokenNoLineTerminator_();if(null!==l){var d=f.operand.identifierToken;return this.parseArrowFunction_(b,f.args,d)}}}if(f=this.coverFormalsToParenExpression_(f),this.peekAssignmentOperator_(h)){h===fb&&(f=this.transformLeftHandSideExpression_(f)),f.isLeftHandSideExpression()||f.isPattern()||this.reportError_("Left hand side of assignment must be new, call, member, function, primary expressions or destructuring pattern");var m=this.nextToken_(),n=this.parseAssignmentExpression(a);return new Cc(this.getTreeLocation_(b),f,m,n)}return f},transformLeftHandSideExpression_:function(a){switch(a.type){case e:case m:return this.scanner_.index=a.location.start.offset,this.parseAssignmentPattern_()}return a},peekAssignmentOperator_:function(a){return D(a)},parseConditional_:function(a){var b=this.getTreeStartLocation_(),c=this.parseLogicalOR_(a);if(this.eatIf_(Vb)){c=this.toPrimaryExpression_(c);var d=this.parseAssignmentExpression();this.eat_(W);var e=this.parseAssignmentExpression(a);return new Rc(this.getTreeLocation_(b),c,d,e)}return c},newBinaryExpression_:function(a,b,c,d){return b=this.toPrimaryExpression_(b),d=this.toPrimaryExpression_(d),new Cc(this.getTreeLocation_(a),b,c,d)},parseLogicalOR_:function(a){for(var b,c=this.getTreeStartLocation_(),d=this.parseLogicalAND_(a);b=this.eatOpt_(Mb);){var e=this.parseLogicalAND_(a);d=this.newBinaryExpression_(c,d,b,e)}return d},parseLogicalAND_:function(a){for(var b,c=this.getTreeStartLocation_(),d=this.parseBitwiseOR_(a);b=this.eatOpt_(I);){var e=this.parseBitwiseOR_(a);d=this.newBinaryExpression_(c,d,b,e)}return d},parseBitwiseOR_:function(a){for(var b,c=this.getTreeStartLocation_(),d=this.parseBitwiseXOR_(a);b=this.eatOpt_(M);){var e=this.parseBitwiseXOR_(a);d=this.newBinaryExpression_(c,d,b,e)}return d},parseBitwiseXOR_:function(a){for(var b,c=this.getTreeStartLocation_(),d=this.parseBitwiseAND_(a);b=this.eatOpt_(O);){var e=this.parseBitwiseAND_(a);d=this.newBinaryExpression_(c,d,b,e)}return d},parseBitwiseAND_:function(a){for(var b,c=this.getTreeStartLocation_(),d=this.parseEquality_(a);b=this.eatOpt_(H);){var e=this.parseEquality_(a);d=this.newBinaryExpression_(c,d,b,e)}return d},parseEquality_:function(a){for(var b=this.getTreeStartLocation_(),c=this.parseRelational_(a);this.peekEqualityOperator_(this.peekType_());){var d=this.nextToken_(),e=this.parseRelational_(a);c=this.newBinaryExpression_(b,c,d,e)}return c},peekEqualityOperator_:function(a){switch(a){case gb:case Eb:case hb:case Fb:return!0}return!1},parseRelational_:function(a){for(var b=this.getTreeStartLocation_(),c=this.parseShiftExpression_();this.peekRelationalOperator_(a);){var d=this.nextToken_(),e=this.parseShiftExpression_();c=this.newBinaryExpression_(b,c,d,e)}return c},peekRelationalOperator_:function(a){switch(this.peekType_()){case Ib:case S:case pb:case yb:case vb:return!0;case ub:return a==xe.NORMAL;default:return!1}},parseShiftExpression_:function(){for(var a=this.getTreeStartLocation_(),b=this.parseAdditiveExpression_();this.peekShiftOperator_(this.peekType_());){var c=this.nextToken_(),d=this.parseAdditiveExpression_();b=this.newBinaryExpression_(a,b,c,d)}return b},peekShiftOperator_:function(a){switch(a){case xb:case Xb:case nc:return!0;default:return!1}},parseAdditiveExpression_:function(){for(var a=this.getTreeStartLocation_(),b=this.parseMultiplicativeExpression_();this.peekAdditiveOperator_(this.peekType_());){var c=this.nextToken_(),d=this.parseMultiplicativeExpression_();b=this.newBinaryExpression_(a,b,c,d)}return b},peekAdditiveOperator_:function(a){switch(a){case Qb:case Ab:return!0;default:return!1}},parseMultiplicativeExpression_:function(){for(var a=this.getTreeStartLocation_(),b=this.parseExponentiationExpression_();this.peekMultiplicativeOperator_(this.peekType_());){var c=this.nextToken_(),d=this.parseExponentiationExpression_();b=this.newBinaryExpression_(a,b,c,d)}return b},parseExponentiationExpression_:function(){for(var a=this.getTreeStartLocation_(),b=this.parseUnaryExpression_();this.peekExponentiationExpression_(this.peekType_());){var c=this.nextToken_(),d=this.parseExponentiationExpression_();b=this.newBinaryExpression_(a,b,c,d)}return b},peekMultiplicativeOperator_:function(a){switch(a){case _b:case Zb:case Ob:return!0;default:return!1}},peekExponentiationExpression_:function(a){return a===ac},parseUnaryExpression_:function(){var a=this.getTreeStartLocation_();if(this.allowAwait&&this.peekPredefinedString_(s)){this.eatId_();var b=this.parseUnaryExpression_();return b=this.toPrimaryExpression_(b),new Bc(this.getTreeLocation_(a),b)}if(this.peekUnaryOperator_(this.peekType_())){var c=this.nextToken_(),b=this.parseUnaryExpression_();return b=this.toPrimaryExpression_(b),new pe(this.getTreeLocation_(a),c,b)}return this.parsePostfixExpression_()},peekUnaryOperator_:function(a){switch(a){case ab:case pc:case mc:case Rb:case Bb:case Qb:case Ab:case jc:case L:return!0;default:return!1}},parsePostfixExpression_:function(){for(var a=this.getTreeStartLocation_(),b=this.parseLeftHandSideExpression_();this.peekPostfixOperator_(this.peekType_());){b=this.toPrimaryExpression_(b);var c=this.nextToken_();b=new Qd(this.getTreeLocation_(a),b,c)}return b},peekPostfixOperator_:function(a){switch(a){case Rb:case Bb:var b=this.peekTokenNoLineTerminator_();return null!==b}return!1},parseLeftHandSideExpression_:function(){var a=this.getTreeStartLocation_(),b=this.parseNewExpression_();if(!(b instanceof Kd)||null!=b.args)a:for(;;)switch(this.peekType_()){case Kb:b=this.toPrimaryExpression_(b),b=this.parseCallExpression_(a,b);break;case Lb:b=this.toPrimaryExpression_(b),b=this.parseMemberLookupExpression_(a,b);break;case Pb:b=this.toPrimaryExpression_(b),b=this.parseMemberExpression_(a,b);break;case Db:case fc:if(!this.options_.templateLiterals)break a;b=this.toPrimaryExpression_(b),b=this.parseTemplateLiteral_(b);break;default:break a}return b},parseMemberExpressionNoNew_:function(){var a,b=this.getTreeStartLocation_();a=this.peekType_()===ob?this.parseFunctionExpression_():this.parsePrimaryExpression_();a:for(;;)switch(this.peekType_()){case Lb:a=this.toPrimaryExpression_(a),a=this.parseMemberLookupExpression_(b,a);break;case Pb:a=this.toPrimaryExpression_(a),a=this.parseMemberExpression_(b,a);break;case Db:case fc:if(!this.options_.templateLiterals)break a;a=this.toPrimaryExpression_(a),a=this.parseTemplateLiteral_(a);break;default:break a}return a},parseMemberExpression_:function(a,b){this.nextToken_();var c=this.eatIdName_();return new Dd(this.getTreeLocation_(a),b,c)},parseMemberLookupExpression_:function(a,b){this.nextToken_();var c=this.parseExpression();return this.eat_(V),new Ed(this.getTreeLocation_(a),b,c)},parseCallExpression_:function(a,b){var c=this.parseArguments_();return new Hc(this.getTreeLocation_(a),b,c)},parseNewExpression_:function(){var a;switch(this.peekType_()){case Cb:var b=this.getTreeStartLocation_();this.eat_(Cb),a=this.peek_(dc)?this.parseSuperExpression_():this.toPrimaryExpression_(this.parseNewExpression_());var c=null;return this.peek_(Kb)&&(c=this.parseArguments_()),new Kd(this.getTreeLocation_(b),a,c);case dc:a=this.parseSuperExpression_();var d=this.peekType_();switch(d){case Lb:return this.parseMemberLookupExpression_(b,a);case Pb:return this.parseMemberExpression_(b,a);case Kb:return this.parseCallExpression_(b,a);default:return this.parseUnexpectedToken_(d)}break;default:return this.parseMemberExpressionNoNew_()}},parseArguments_:function(){var a=this.getTreeStartLocation_(),b=[];if(this.eat_(Kb),!this.peek_(U))for(b.push(this.parseArgument_());this.eatIf_(X);)b.push(this.parseArgument_());return this.eat_(U),new uc(this.getTreeLocation_(a),b)},parseArgument_:function(){return this.peekSpread_(this.peekType_())?this.parseSpreadExpression_():this.parseAssignmentExpression()},parseArrowFunction_:function(a,b,c){var d;switch(b.type){case k:b=new Ec(b.location,b.identifierToken);case f:d=new ld(this.getTreeLocation_(a),[new kd(b.location,new Dc(b.location,b,null),null,[])]);break;case j:d=b;break;default:d=this.toFormalParameters_(a,b,c)}this.eat_(J);var e=this.parseConciseBody_(c);return new zc(this.getTreeLocation_(a),c,d,e)},parseCoverFormals_:function(a){var b=[];if(!this.peek_(U))do{var c=this.peekType_();if(this.peekRest_(c)){b.push(this.parseRestParameter_());break}b.push(this.parseAssignmentExpression()),!this.eatIf_(X)}while(!this.peek_(U)&&!this.isAtEnd());return this.eat_(U),new Vc(this.getTreeLocation_(a),b)},ensureNoCoverInitializedNames_:function(a,b){if(b!==this.coverInitializedNameCount_){var c=new Ae;if(c.visitAny(a),c.found){var d=c.errorToken;this.reportError_(d.location,"Unexpected token "+d)}}},toPrimaryExpression_:function(a){return a.type===i?this.coverFormalsToParenExpression_(a):a},validateCoverFormalsAsParenExpression_:function(a){for(var b=0;b<a.expressions.length;b++)if(a.expressions[b].type===n){var c=new C(cb,a.expressions[b].location);return void this.reportError_(c.location,"Unexpected token "+c)}},coverFormalsToParenExpression_:function(a){if(a.type===i){var b=a.expressions;if(0!==b.length){this.validateCoverFormalsAsParenExpression_(a);var c;return c=b.length>1?new Nc(b[0].location,b):b[0],new Pd(a.location,c)}var d="Unexpected token )";this.reportError_(a.location,d)}return a},toFormalParameters_:function(a,b,c){return this.scanner_.index=a.offset,this.parseArrowFormalParameters_(c)},parseArrowFormalParameters_:function(a){a&&this.eat_(qb),this.eat_(Kb);var b=this.parseFormalParameters_();return this.eat_(U),b},peekArrow_:function(a){return a===J&&this.options_.arrowFunctions},parseConciseBody_:function(a){if(this.peek_(Jb))return this.parseFunctionBody_(a);var b=this.allowAwait;this.allowAwait=null!==a;var c=this.parseAssignmentExpression();return this.allowAwait=b,c},parseGeneratorComprehension_:function(a){var b=this.parseComprehensionList_(),c=this.parseAssignmentExpression();return this.eat_(U),new qd(this.getTreeLocation_(a),b,c)},parseForBinding_:function(){return this.peekPattern_(this.peekType_())?this.parseBindingPattern_():this.parseBindingIdentifier_()},peekPattern_:function(a){return this.options_.destructuring&&(this.peekObjectPattern_(a)||this.peekArrayPattern_(a))},peekArrayPattern_:function(a){return a===Lb},peekObjectPattern_:function(a){return a===Jb},parseBindingPattern_:function(){return this.parsePattern_(!0)},parsePattern_:function(a){return this.peekArrayPattern_(this.peekType_())?this.parseArrayPattern_(a):this.parseObjectPattern_(a)},parseArrayBindingPattern_:function(){return this.parseArrayPattern_(!0)},parsePatternElement_:function(a){return a?this.parseBindingElement_():this.parseAssignmentElement_()},parsePatternRestElement_:function(a){return a?this.parseBindingRestElement_():this.parseAssignmentRestElement_()},parseArrayPattern_:function(a){var b=this.getTreeStartLocation_(),c=[];this.eat_(Lb);for(var d;(d=this.peekType_())!==V&&d!==eb;){if(this.parseElisionOpt_(c),this.peekRest_(this.peekType_())){c.push(this.parsePatternRestElement_(a));break}c.push(this.parsePatternElement_(a)),this.peek_(X)&&!this.peek_(V,1)&&this.nextToken_()}return this.eat_(V),new xc(this.getTreeLocation_(b),c)},parseBindingElementList_:function(a){for(this.parseElisionOpt_(a),a.push(this.parseBindingElement_());this.eatIf_(X);)this.parseElisionOpt_(a),a.push(this.parseBindingElement_())},parseElisionOpt_:function(a){for(;this.eatIf_(X);)a.push(null)},peekBindingElement_:function(a){return this.peekBindingIdentifier_(a)||this.peekPattern_(a)},parseBindingElement_:function(){var a=void 0!==arguments[0]?arguments[0]:ze.OPTIONAL,b=this.getTreeStartLocation_(),c=this.parseBindingElementBinding_(),a=this.parseBindingElementInitializer_(a);return new Dc(this.getTreeLocation_(b),c,a)},parseBindingElementBinding_:function(){return this.peekPattern_(this.peekType_())?this.parseBindingPattern_():this.parseBindingIdentifier_()},parseBindingElementInitializer_:function(){var a=void 0!==arguments[0]?arguments[0]:ze.OPTIONAL;return this.peek_(fb)||a===ze.REQUIRED?this.parseInitializer_():null},parseBindingRestElement_:function(){var a=this.getTreeStartLocation_();this.eat_(cb);var b=this.parseBindingIdentifier_();return new ae(this.getTreeLocation_(a),b)},parseObjectPattern_:function(a){var b=this.getTreeStartLocation_(),c=[];this.eat_(Jb);for(var d;(d=this.peekType_())!==T&&d!==eb&&(c.push(this.parsePatternProperty_(a)),this.eatIf_(X)););return this.eat_(T),new Md(this.getTreeLocation_(b),c)},parsePatternProperty_:function(a){var b=this.getTreeStartLocation_(),c=this.parsePropertyName_(),d=c.type!==l||!c.literalToken.isStrictKeyword()&&c.literalToken.type!==qb;if(d||this.peek_(W)){this.eat_(W);var e=this.parsePatternElement_(a);return new Nd(this.getTreeLocation_(b),c,e)}var f=c.literalToken;if(this.strictMode_&&f.isStrictKeyword()&&this.reportReservedIdentifier_(f),a){var g=new Ec(c.location,f),h=this.parseInitializerOpt_(xe.NORMAL);return new Dc(this.getTreeLocation_(b),g,h)}var i=new sd(c.location,f),h=this.parseInitializerOpt_(xe.NORMAL);return new Ac(this.getTreeLocation_(b),i,h)},parseAssignmentPattern_:function(){return this.parsePattern_(!1)},parseArrayAssignmentPattern_:function(){return this.parseArrayPattern_(!1)},parseAssignmentElement_:function(){var a=this.getTreeStartLocation_(),b=this.parseDestructuringAssignmentTarget_(),c=this.parseInitializerOpt_(xe.NORMAL);return new Ac(this.getTreeLocation_(a),b,c)},parseDestructuringAssignmentTarget_:function(){switch(this.peekType_()){case Lb:return this.parseArrayAssignmentPattern_();case Jb:return this.parseObjectAssignmentPattern_()}var a=this.parseLeftHandSideExpression_();return this.coverFormalsToParenExpression_(a)},parseAssignmentRestElement_:function(){var a=this.getTreeStartLocation_();this.eat_(cb);var b=this.parseDestructuringAssignmentTarget_();return new ae(this.getTreeLocation_(a),b)},parseObjectAssignmentPattern_:function(){return this.parseObjectPattern_(!1)},parseAssignmentProperty_:function(){return this.parsePatternProperty_(!1)},parseTemplateLiteral_:function(a){if(!this.options_.templateLiterals)return this.parseUnexpectedToken_("`");var b=a?a.location.start:this.getTreeStartLocation_(),c=this.nextToken_(),d=[new fe(c.location,c)];if(c.type===Db)return new ee(this.getTreeLocation_(b),a,d);var e=this.parseExpression();for(d.push(new ge(e.location,e));e.type!==o&&(c=this.nextTemplateLiteralToken_(),c.type!==ib&&c.type!==eb)&&(d.push(new fe(c.location,c)),c.type!==gc);)e=this.parseExpression(),d.push(new ge(e.location,e));return new ee(this.getTreeLocation_(b),a,d)},parseTypeAnnotationOpt_:function(){return this.options_.types&&this.eatOpt_(W)?this.parseType_():null},parseType_:function(){switch(this.peekType_()){case Cb:return this.parseConstructorType_();case Kb:case Ib:return this.parseFunctionType_()}var a=this.getTreeStartLocation_(),b=this.parsePrimaryType_();return this.parseUnionTypeSuffix_(a,b)},parsePrimaryType_:function(){var a,b=this.getTreeStartLocation_();switch(this.peekType_()){case pc:var c=this.nextToken_();a=new Rd(this.getTreeLocation_(b),c);break;case qb:switch(this.peekToken_().value){case"any":case"boolean":case"number":case"string":case"symbol":var c=this.nextToken_();a=new Rd(this.getTreeLocation_(b),c);break;default:a=this.parseTypeReference_()}break;case mc:a=this.parseTypeQuery_(b);break;case Jb:a=this.parseObjectType_();break;default:return this.parseUnexpectedToken_(this.peekToken_())}return this.parseArrayTypeSuffix_(b,a)},parseTypeReference_:function(){var a=this.getTreeStartLocation_(),b=this.parseTypeName_(),c=null;if(this.peek_(Ib)){var c=this.parseTypeArguments_();return new oe(this.getTreeLocation_(a),b,c)}return b},parseUnionTypeSuffix_:function(a,b){if(this.peek_(M)){var c=[b];for(this.eat_(M);;)if(c.push(this.parsePrimaryType_()),!this.eatIf_(M))break;return new qe(this.getTreeLocation_(a),c)}return b},parseArrayTypeSuffix_:function(a,b){var c=this.peekTokenNoLineTerminator_();return c&&c.type===Lb?(this.eat_(Lb),this.eat_(V),b=new yc(this.getTreeLocation_(a),b),this.parseArrayTypeSuffix_(a,b)):b},parseTypeArguments_:function(){var a=this.getTreeStartLocation_();this.eat_(Ib);for(var b=[this.parseType_()];this.peek_(X);)this.eat_(X),b.push(this.parseType_());var c=this.nextCloseAngle_();return c.type!==S?this.parseUnexpectedToken_(c.type):new ke(this.getTreeLocation_(a),b)},parseConstructorType_:function(){var a=this.getTreeStartLocation_();this.eat_(Cb);var b=this.parseTypeParametersOpt_();this.eat_(Kb);var c=this.parseFormalParameters_();this.eat_(U),this.eat_(J);var d=this.parseType_();return new Tc(this.getTreeLocation_(a),b,c,d)},parseObjectType_:function(){var a=this.getTreeStartLocation_(),b=[];this.eat_(Jb);for(var c;this.peekTypeMember_(c=this.peekType_())&&(b.push(this.parseTypeMember_(c)),this.eatIf_(Yb)););return this.eat_(T),new Od(this.getTreeLocation_(a),b)},peekTypeMember_:function(a){switch(a){case Cb:case Kb:case Ib:case Lb:case qb:case cc:case Hb:return!0;default:return this.peekToken_().isKeyword()}},parseTypeMember_:function(a){switch(a){case Cb:return this.parseConstructSignature_();case Kb:case Ib:return this.parseCallSignature_();case Lb:return this.parseIndexSignature_()}var b=this.getTreeStartLocation_(),c=this.parseLiteralPropertyName_(),d=this.eatIf_(Vb);if(a=this.peekType_(),a===Ib||a===Kb){var e=this.parseCallSignature_();return new Fd(this.getTreeLocation_(b),c,d,e)}var f=this.parseTypeAnnotationOpt_();return new Vd(this.getTreeLocation_(b),c,d,f)},parseCallSignature_:function(){var a=this.getTreeStartLocation_(),b=this.parseTypeParametersOpt_();this.eat_(Kb);var c=this.parseFormalParameters_();this.eat_(U);var d=this.parseTypeAnnotationOpt_();return new Ic(this.getTreeLocation_(a),b,c,d)},parseConstructSignature_:function(){var a=this.getTreeStartLocation_();this.eat_(Cb);var b=this.parseTypeParametersOpt_();this.eat_(Kb);var c=this.parseFormalParameters_();this.eat_(U);var d=this.parseTypeAnnotationOpt_();return new Sc(this.getTreeLocation_(a),b,c,d)},parseIndexSignature_:function(){var a=this.getTreeStartLocation_();this.eat_(Lb);var b=this.eatId_();this.eat_(W);var c,d=this.getTreeStartLocation_();c=this.eatId_(this.peekPredefinedString_("string")?"string":"number");var e=new Rd(this.getTreeLocation_(d),c);this.eat_(V),this.eat_(W);var f=this.parseType_();return new yd(this.getTreeLocation_(a),b,e,f)},parseFunctionType_:function(){var a=this.getTreeStartLocation_(),b=this.parseTypeParametersOpt_();this.eat_(Kb);var c=this.parseFormalParameters_();this.eat_(U),this.eat_(J);var d=this.parseType_();return new pd(this.getTreeLocation_(a),b,c,d)},parseTypeQuery_:function(){throw"NYI"},peekTypeParameters_:function(){return this.peek_(Ib)},parseTypeParametersOpt_:function(){return this.peek_(Ib)?this.parseTypeParameters_():null},parseTypeParameters_:function(){var a=this.getTreeStartLocation_();this.eat_(Ib);for(var b=[this.parseTypeParameter_()];this.peek_(X);)this.eat_(X),b.push(this.parseTypeParameter_());return this.eat_(S),new ne(this.getTreeLocation_(a),b)},parseTypeParameter_:function(){var a=this.getTreeStartLocation_(),b=this.eatId_(),c=null;return this.eatIf_(kb)&&(c=this.parseType_()),new me(this.getTreeLocation_(a),b,c)},parseNamedOrPredefinedType_:function(){var a=this.getTreeStartLocation_();switch(this.peekToken_().value){case"any":case"number":case"boolean":case"string":var b=this.nextToken_();return new Rd(this.getTreeLocation_(a),b);default:return this.parseTypeName_()}},parseTypeName_:function(){for(var a=this.getTreeStartLocation_(),b=this.eatId_(),c=new le(this.getTreeLocation_(a),null,b);this.eatIf_(Pb);){var d=this.eatIdName_();c=new le(this.getTreeLocation_(a),c,d)}return c},parseInterfaceDeclaration_:function(){var a=this.getTreeStartLocation_();this.eat_(wb);var b,c=this.eatId_(),d=this.parseTypeParametersOpt_();b=this.eatIf_(kb)?this.parseInterfaceExtendsClause_():[];var e=this.parseObjectType_();return new zd(this.getTreeLocation_(a),c,d,b,e)},parseInterfaceExtendsClause_:function(){for(var a=[this.parseTypeReference_()];this.eatIf_(X);)a.push(this.parseTypeReference_());return a},parseAnnotatedDeclarations_:function(a){this.pushAnnotations_();var b,c=this.peekType_();return b=a?this.parseModuleItem_(c):this.parseStatementListItem_(c),this.annotations_.length>0?this.parseSyntaxError_("Unsupported annotated expression"):b},parseAnnotations_:function(){for(var a=[];this.eatIf_(K);)a.push(this.parseAnnotation_());return a},pushAnnotations_:function(){this.annotations_=this.parseAnnotations_()},popAnnotations_:function(){var a=this.annotations_;return this.annotations_=[],a},parseAnnotation_:function(){var a=this.getTreeStartLocation_(),b=this.parseMemberExpressionNoNew_(),c=null;return this.peek_(Kb)&&(c=this.parseArguments_()),new Yc(this.getTreeLocation_(a),b,c)},eatPossibleImplicitSemiColon_:function(){var a=this.peekTokenNoLineTerminator_();if(a){switch(a.type){case Yb:return void this.nextToken_();case eb:case T:return}this.reportError_("Semi-colon expected")}},peekImplicitSemiColon_:function(){switch(this.peekType_()){case Yb:case T:case eb:return!0}var a=this.peekTokenNoLineTerminator_();return null===a},eatOpt_:function(a){return this.peek_(a)?this.nextToken_():null},eatIdOpt_:function(){return this.peek_(qb)?this.eatId_():null},eatId_:function(){var a=arguments[0],b=this.nextToken_();if(!b)return a&&this.reportError_(this.peekToken_(),"expected '"+a+"'"),null;if(b.type===qb)return a&&b.value!==a&&this.reportExpectedError_(b,a),b;if(b.isStrictKeyword()){if(!this.strictMode_)return new c(b.location,b.type);this.reportReservedIdentifier_(b)}else this.reportExpectedError_(b,a||"identifier");return b},eatIdName_:function(){var a=this.nextToken_();return a.type!=qb?a.isKeyword()?new c(a.location,a.type):(this.reportExpectedError_(a,"identifier"),null):a},eat_:function(a){var b=this.nextToken_();return b.type!=a?(this.reportExpectedError_(b,a),null):b},eatIf_:function(a){return this.peek_(a)?(this.nextToken_(),!0):!1
},reportExpectedError_:function(a){this.reportError_(a,"Unexpected token "+a)},getTreeStartLocation_:function(){return this.peekToken_().location.start},getTreeEndLocation_:function(){return this.scanner_.lastToken.location.end},getTreeLocation_:function(a){return new z(a,this.getTreeEndLocation_())},handleComment:function(){},nextToken_:function(){return this.scanner_.nextToken()},nextRegularExpressionLiteralToken_:function(){return this.scanner_.nextRegularExpressionLiteralToken()},nextTemplateLiteralToken_:function(){return this.scanner_.nextTemplateLiteralToken()},nextCloseAngle_:function(){return this.scanner_.nextCloseAngle()},isAtEnd:function(){return this.scanner_.isAtEnd()},peek_:function(a,b){return this.peekToken_(b).type===a},peekType_:function(){return this.peekToken_().type},peekToken_:function(a){return this.scanner_.peekToken(a)},peekTokenNoLineTerminator_:function(){return this.scanner_.peekTokenNoLineTerminator()},reportError_:function(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];if(1==a.length)this.errorReporter_.reportError(this.scanner_.getPosition(),a[0]);else{var c=a[0];c instanceof C&&(c=c.location),this.errorReporter_.reportError(c.start,a[1])}},reportReservedIdentifier_:function(a){this.reportError_(a,a.type+" is a reserved identifier")}},{}),{get Parser(){return Ce}}}),System.registerModule("traceur@0.0.79/src/util/SourcePosition.js",[],function(){"use strict";var a=function(a,b){this.source=a,this.offset=b,this.line_=-1,this.column_=-1};return $traceurRuntime.createClass(a,{get line(){return-1===this.line_&&(this.line_=this.source.lineNumberTable.getLine(this.offset)),this.line_},get column(){return-1===this.column_&&(this.column_=this.source.lineNumberTable.getColumn(this.offset)),this.column_},toString:function(){var a=this.source?this.source.name:"";return a+":"+(this.line+1)+":"+(this.column+1)}},{}),{get SourcePosition(){return a}}}),System.registerModule("traceur@0.0.79/src/syntax/LineNumberTable.js",[],function(){"use strict";function a(a){for(var b=[0],c=1,f=0;f<a.length;f++){var g=a.charCodeAt(f);d(g)&&(13===g&&10===a.charCodeAt(f+1)&&f++,b[c++]=f+1)}return b[c++]=e,b}var b=System.get("traceur@0.0.79/src/util/SourcePosition.js").SourcePosition,c=System.get("traceur@0.0.79/src/util/SourceRange.js").SourceRange,d=System.get("traceur@0.0.79/src/syntax/Scanner.js").isLineTerminator,e=9007199254740992,f=function(a){this.sourceFile_=a,this.lineStartOffsets_=null,this.lastLine_=0,this.lastOffset_=-1};return $traceurRuntime.createClass(f,{ensureLineStartOffsets_:function(){this.lineStartOffsets_||(this.lineStartOffsets_=a(this.sourceFile_.contents))},getSourcePosition:function(a){return new b(this.sourceFile_,a)},getLine:function(a){if(a===this.lastOffset_)return this.lastLine_;if(this.ensureLineStartOffsets_(),0>a)return 0;var b;if(a<this.lastOffset_){for(var c=this.lastLine_;c>=0;c--)if(this.lineStartOffsets_[c]<=a){b=c;break}}else for(var c=this.lastLine_;!0;c++)if(this.lineStartOffsets_[c]>a){b=c-1;break}return this.lastLine_=b,this.lastOffset_=a,b},offsetOfLine:function(a){return this.ensureLineStartOffsets_(),this.lineStartOffsets_[a]},getColumn:function(a){var b=this.getLine(a);return a-this.lineStartOffsets_[b]},getSourceRange:function(a,b){return new c(this.getSourcePosition(a),this.getSourcePosition(b))}},{}),{get LineNumberTable(){return f}}}),System.registerModule("traceur@0.0.79/src/syntax/SourceFile.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/LineNumberTable.js").LineNumberTable,b=function(b,c){this.name=b,this.contents=c,this.lineNumberTable=new a(this)};return $traceurRuntime.createClass(b,{},{}),{get SourceFile(){return b}}}),System.registerModule("traceur@0.0.79/src/util/CollectingErrorReporter.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/util/ErrorReporter.js").ErrorReporter,b=function(a){this.message=a?a.join("\n")+"":"",this.name=a&&a.length>1?"MultipleErrors":"",this.errors=a};$traceurRuntime.createClass(b,{},{},Error);var c=function(){$traceurRuntime.superConstructor(d).call(this),this.errors=[]},d=c;return $traceurRuntime.createClass(c,{reportMessageInternal:function(a,b){a&&(b=a+": "+b),this.errors.push(b)},errorsAsString:function(){return this.toError().message},toError:function(){return new b(this.errors)}},{},a),{get MultipleErrors(){return b},get CollectingErrorReporter(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),b=a.Annotation,c=a.AnonBlock,d=a.ArgumentList,e=a.ArrayComprehension,f=a.ArrayLiteralExpression,g=a.ArrayPattern,h=a.ArrayType,i=a.ArrowFunctionExpression,j=a.AssignmentElement,k=a.AwaitExpression,l=a.BinaryExpression,m=a.BindingElement,n=(a.BindingIdentifier,a.Block),o=(a.BreakStatement,a.CallExpression),p=a.CallSignature,q=a.CaseClause,r=a.Catch,s=a.ClassDeclaration,t=a.ClassExpression,u=a.CommaExpression,v=a.ComprehensionFor,w=a.ComprehensionIf,x=a.ComputedPropertyName,y=a.ConditionalExpression,z=a.ConstructSignature,A=a.ConstructorType,B=(a.ContinueStatement,a.CoverFormals),C=a.CoverInitializedName,D=(a.DebuggerStatement,a.DefaultClause),E=a.DoWhileStatement,F=(a.EmptyStatement,a.ExportDeclaration),G=a.ExportDefault,H=(a.ExportSpecifier,a.ExportSpecifierSet),I=(a.ExportStar,a.ExpressionStatement),J=a.Finally,K=a.ForInStatement,L=a.ForOfStatement,M=a.ForStatement,N=a.FormalParameter,O=a.FormalParameterList,P=a.FunctionBody,Q=a.FunctionDeclaration,R=a.FunctionExpression,S=a.FunctionType,T=a.GeneratorComprehension,U=a.GetAccessor,V=(a.IdentifierExpression,a.IfStatement),W=a.ImportedBinding,X=a.ImportDeclaration,Y=a.ImportSpecifier,Z=a.ImportSpecifierSet,$=a.IndexSignature,_=a.InterfaceDeclaration,ab=a.LabelledStatement,bb=(a.LiteralExpression,a.LiteralPropertyName,a.MemberExpression),cb=a.MemberLookupExpression,db=a.MethodSignature,eb=a.Module,fb=a.ModuleDeclaration,gb=(a.ModuleSpecifier,a.NamedExport),hb=a.NewExpression,ib=a.ObjectLiteralExpression,jb=a.ObjectPattern,kb=a.ObjectPatternField,lb=a.ObjectType,mb=a.ParenExpression,nb=a.PostfixExpression,ob=(a.PredefinedType,a.Script),pb=a.PropertyMethodAssignment,qb=a.PropertyNameAssignment,rb=(a.PropertyNameShorthand,a.PropertyVariableDeclaration),sb=a.PropertySignature,tb=a.RestParameter,ub=a.ReturnStatement,vb=a.SetAccessor,wb=a.SpreadExpression,xb=a.SpreadPatternElement,yb=(a.SuperExpression,a.SwitchStatement),zb=(a.SyntaxErrorTree,a.TemplateLiteralExpression),Ab=(a.TemplateLiteralPortion,a.TemplateSubstitution),Bb=(a.ThisExpression,a.ThrowStatement),Cb=a.TryStatement,Db=a.TypeArguments,Eb=a.TypeName,Fb=a.TypeParameter,Gb=a.TypeParameters,Hb=a.TypeReference,Ib=a.UnaryExpression,Jb=a.UnionType,Kb=a.VariableDeclaration,Lb=a.VariableDeclarationList,Mb=a.VariableStatement,Nb=a.WhileStatement,Ob=a.WithStatement,Pb=a.YieldExpression,Qb=function(){};return $traceurRuntime.createClass(Qb,{transformAny:function(a){return a&&a.transform(this)},transformList:function(a){for(var b,d=null,e=0;e<a.length;e++){var f=a[e],g=this.transformAny(f);(null!=d||f!=g)&&(null==d&&(d=a.slice(0,e)),g instanceof c?(b=d).push.apply(b,$traceurRuntime.spread(g.statements)):d.push(g))}return d||a},transformStateMachine:function(){throw Error("State machines should not live outside of the GeneratorTransformer.")},transformToBlockOrStatement:function(a){var b=this.transformAny(a);return b instanceof c?new n(b.location,b.statements):b},transformAnnotation:function(a){var c=this.transformAny(a.name),d=this.transformAny(a.args);return c===a.name&&d===a.args?a:new b(a.location,c,d)},transformAnonBlock:function(a){var b=this.transformList(a.statements);return b===a.statements?a:new c(a.location,b)},transformArgumentList:function(a){var b=this.transformList(a.args);return b===a.args?a:new d(a.location,b)},transformArrayComprehension:function(a){var b=this.transformList(a.comprehensionList),c=this.transformAny(a.expression);return b===a.comprehensionList&&c===a.expression?a:new e(a.location,b,c)},transformArrayLiteralExpression:function(a){var b=this.transformList(a.elements);return b===a.elements?a:new f(a.location,b)},transformArrayPattern:function(a){var b=this.transformList(a.elements);return b===a.elements?a:new g(a.location,b)},transformArrayType:function(a){var b=this.transformAny(a.elementType);return b===a.elementType?a:new h(a.location,b)},transformArrowFunctionExpression:function(a){var b=this.transformAny(a.parameterList),c=this.transformAny(a.body);return b===a.parameterList&&c===a.body?a:new i(a.location,a.functionKind,b,c)},transformAssignmentElement:function(a){var b=this.transformAny(a.assignment),c=this.transformAny(a.initializer);return b===a.assignment&&c===a.initializer?a:new j(a.location,b,c)},transformAwaitExpression:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new k(a.location,b)},transformBinaryExpression:function(a){var b=this.transformAny(a.left),c=this.transformAny(a.right);return b===a.left&&c===a.right?a:new l(a.location,b,a.operator,c)},transformBindingElement:function(a){var b=this.transformAny(a.binding),c=this.transformAny(a.initializer);return b===a.binding&&c===a.initializer?a:new m(a.location,b,c)},transformBindingIdentifier:function(a){return a},transformBlock:function(a){var b=this.transformList(a.statements);return b===a.statements?a:new n(a.location,b)},transformBreakStatement:function(a){return a},transformCallExpression:function(a){var b=this.transformAny(a.operand),c=this.transformAny(a.args);return b===a.operand&&c===a.args?a:new o(a.location,b,c)},transformCallSignature:function(a){var b=this.transformAny(a.typeParameters),c=this.transformAny(a.parameterList),d=this.transformAny(a.returnType);return b===a.typeParameters&&c===a.parameterList&&d===a.returnType?a:new p(a.location,b,c,d)},transformCaseClause:function(a){var b=this.transformAny(a.expression),c=this.transformList(a.statements);return b===a.expression&&c===a.statements?a:new q(a.location,b,c)},transformCatch:function(a){var b=this.transformAny(a.binding),c=this.transformAny(a.catchBody);return b===a.binding&&c===a.catchBody?a:new r(a.location,b,c)},transformClassDeclaration:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.superClass),d=this.transformList(a.elements),e=this.transformList(a.annotations),f=this.transformAny(a.typeParameters);return b===a.name&&c===a.superClass&&d===a.elements&&e===a.annotations&&f===a.typeParameters?a:new s(a.location,b,c,d,e,f)},transformClassExpression:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.superClass),d=this.transformList(a.elements),e=this.transformList(a.annotations),f=this.transformAny(a.typeParameters);return b===a.name&&c===a.superClass&&d===a.elements&&e===a.annotations&&f===a.typeParameters?a:new t(a.location,b,c,d,e,f)},transformCommaExpression:function(a){var b=this.transformList(a.expressions);return b===a.expressions?a:new u(a.location,b)},transformComprehensionFor:function(a){var b=this.transformAny(a.left),c=this.transformAny(a.iterator);return b===a.left&&c===a.iterator?a:new v(a.location,b,c)},transformComprehensionIf:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new w(a.location,b)},transformComputedPropertyName:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new x(a.location,b)},transformConditionalExpression:function(a){var b=this.transformAny(a.condition),c=this.transformAny(a.left),d=this.transformAny(a.right);return b===a.condition&&c===a.left&&d===a.right?a:new y(a.location,b,c,d)},transformConstructSignature:function(a){var b=this.transformAny(a.typeParameters),c=this.transformAny(a.parameterList),d=this.transformAny(a.returnType);return b===a.typeParameters&&c===a.parameterList&&d===a.returnType?a:new z(a.location,b,c,d)},transformConstructorType:function(a){var b=this.transformAny(a.typeParameters),c=this.transformAny(a.parameterList),d=this.transformAny(a.returnType);return b===a.typeParameters&&c===a.parameterList&&d===a.returnType?a:new A(a.location,b,c,d)},transformContinueStatement:function(a){return a},transformCoverFormals:function(a){var b=this.transformList(a.expressions);return b===a.expressions?a:new B(a.location,b)},transformCoverInitializedName:function(a){var b=this.transformAny(a.initializer);return b===a.initializer?a:new C(a.location,a.name,a.equalToken,b)},transformDebuggerStatement:function(a){return a},transformDefaultClause:function(a){var b=this.transformList(a.statements);return b===a.statements?a:new D(a.location,b)},transformDoWhileStatement:function(a){var b=this.transformToBlockOrStatement(a.body),c=this.transformAny(a.condition);return b===a.body&&c===a.condition?a:new E(a.location,b,c)},transformEmptyStatement:function(a){return a},transformExportDeclaration:function(a){var b=this.transformAny(a.declaration),c=this.transformList(a.annotations);return b===a.declaration&&c===a.annotations?a:new F(a.location,b,c)},transformExportDefault:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new G(a.location,b)},transformExportSpecifier:function(a){return a},transformExportSpecifierSet:function(a){var b=this.transformList(a.specifiers);return b===a.specifiers?a:new H(a.location,b)},transformExportStar:function(a){return a},transformExpressionStatement:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new I(a.location,b)},transformFinally:function(a){var b=this.transformAny(a.block);return b===a.block?a:new J(a.location,b)},transformForInStatement:function(a){var b=this.transformAny(a.initializer),c=this.transformAny(a.collection),d=this.transformToBlockOrStatement(a.body);return b===a.initializer&&c===a.collection&&d===a.body?a:new K(a.location,b,c,d)},transformForOfStatement:function(a){var b=this.transformAny(a.initializer),c=this.transformAny(a.collection),d=this.transformToBlockOrStatement(a.body);return b===a.initializer&&c===a.collection&&d===a.body?a:new L(a.location,b,c,d)},transformForStatement:function(a){var b=this.transformAny(a.initializer),c=this.transformAny(a.condition),d=this.transformAny(a.increment),e=this.transformToBlockOrStatement(a.body);return b===a.initializer&&c===a.condition&&d===a.increment&&e===a.body?a:new M(a.location,b,c,d,e)},transformFormalParameter:function(a){var b=this.transformAny(a.parameter),c=this.transformAny(a.typeAnnotation),d=this.transformList(a.annotations);return b===a.parameter&&c===a.typeAnnotation&&d===a.annotations?a:new N(a.location,b,c,d)},transformFormalParameterList:function(a){var b=this.transformList(a.parameters);return b===a.parameters?a:new O(a.location,b)},transformFunctionBody:function(a){var b=this.transformList(a.statements);return b===a.statements?a:new P(a.location,b)},transformFunctionDeclaration:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.parameterList),d=this.transformAny(a.typeAnnotation),e=this.transformList(a.annotations),f=this.transformAny(a.body);return b===a.name&&c===a.parameterList&&d===a.typeAnnotation&&e===a.annotations&&f===a.body?a:new Q(a.location,b,a.functionKind,c,d,e,f)},transformFunctionExpression:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.parameterList),d=this.transformAny(a.typeAnnotation),e=this.transformList(a.annotations),f=this.transformAny(a.body);return b===a.name&&c===a.parameterList&&d===a.typeAnnotation&&e===a.annotations&&f===a.body?a:new R(a.location,b,a.functionKind,c,d,e,f)},transformFunctionType:function(a){var b=this.transformAny(a.typeParameters),c=this.transformAny(a.parameterList),d=this.transformAny(a.returnType);return b===a.typeParameters&&c===a.parameterList&&d===a.returnType?a:new S(a.location,b,c,d)},transformGeneratorComprehension:function(a){var b=this.transformList(a.comprehensionList),c=this.transformAny(a.expression);return b===a.comprehensionList&&c===a.expression?a:new T(a.location,b,c)},transformGetAccessor:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.typeAnnotation),d=this.transformList(a.annotations),e=this.transformAny(a.body);return b===a.name&&c===a.typeAnnotation&&d===a.annotations&&e===a.body?a:new U(a.location,a.isStatic,b,c,d,e)},transformIdentifierExpression:function(a){return a},transformIfStatement:function(a){var b=this.transformAny(a.condition),c=this.transformToBlockOrStatement(a.ifClause),d=this.transformToBlockOrStatement(a.elseClause);return b===a.condition&&c===a.ifClause&&d===a.elseClause?a:new V(a.location,b,c,d)},transformImportedBinding:function(a){var b=this.transformAny(a.binding);return b===a.binding?a:new W(a.location,b)},transformImportDeclaration:function(a){var b=this.transformAny(a.importClause),c=this.transformAny(a.moduleSpecifier);return b===a.importClause&&c===a.moduleSpecifier?a:new X(a.location,b,c)},transformImportSpecifier:function(a){var b=this.transformAny(a.binding);return b===a.binding?a:new Y(a.location,b,a.name)},transformImportSpecifierSet:function(a){var b=this.transformList(a.specifiers);return b===a.specifiers?a:new Z(a.location,b)},transformIndexSignature:function(a){var b=this.transformAny(a.indexType),c=this.transformAny(a.typeAnnotation);return b===a.indexType&&c===a.typeAnnotation?a:new $(a.location,a.name,b,c)},transformInterfaceDeclaration:function(a){var b=this.transformAny(a.typeParameters),c=this.transformAny(a.objectType);return b===a.typeParameters&&c===a.objectType?a:new _(a.location,a.name,b,a.extendsClause,c)},transformLabelledStatement:function(a){var b=this.transformAny(a.statement);return b===a.statement?a:new ab(a.location,a.name,b)},transformLiteralExpression:function(a){return a},transformLiteralPropertyName:function(a){return a},transformMemberExpression:function(a){var b=this.transformAny(a.operand);return b===a.operand?a:new bb(a.location,b,a.memberName)},transformMemberLookupExpression:function(a){var b=this.transformAny(a.operand),c=this.transformAny(a.memberExpression);return b===a.operand&&c===a.memberExpression?a:new cb(a.location,b,c)},transformMethodSignature:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.callSignature);return b===a.name&&c===a.callSignature?a:new db(a.location,b,a.optional,c)},transformModule:function(a){var b=this.transformList(a.scriptItemList);return b===a.scriptItemList?a:new eb(a.location,b,a.moduleName)},transformModuleDeclaration:function(a){var b=this.transformAny(a.binding),c=this.transformAny(a.expression);return b===a.binding&&c===a.expression?a:new fb(a.location,b,c)},transformModuleSpecifier:function(a){return a},transformNamedExport:function(a){var b=this.transformAny(a.moduleSpecifier),c=this.transformAny(a.specifierSet);return b===a.moduleSpecifier&&c===a.specifierSet?a:new gb(a.location,b,c)},transformNewExpression:function(a){var b=this.transformAny(a.operand),c=this.transformAny(a.args);return b===a.operand&&c===a.args?a:new hb(a.location,b,c)},transformObjectLiteralExpression:function(a){var b=this.transformList(a.propertyNameAndValues);return b===a.propertyNameAndValues?a:new ib(a.location,b)},transformObjectPattern:function(a){var b=this.transformList(a.fields);return b===a.fields?a:new jb(a.location,b)},transformObjectPatternField:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.element);return b===a.name&&c===a.element?a:new kb(a.location,b,c)},transformObjectType:function(a){var b=this.transformList(a.typeMembers);return b===a.typeMembers?a:new lb(a.location,b)},transformParenExpression:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new mb(a.location,b)},transformPostfixExpression:function(a){var b=this.transformAny(a.operand);return b===a.operand?a:new nb(a.location,b,a.operator)},transformPredefinedType:function(a){return a},transformScript:function(a){var b=this.transformList(a.scriptItemList);return b===a.scriptItemList?a:new ob(a.location,b,a.moduleName)},transformPropertyMethodAssignment:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.parameterList),d=this.transformAny(a.typeAnnotation),e=this.transformList(a.annotations),f=this.transformAny(a.body);return b===a.name&&c===a.parameterList&&d===a.typeAnnotation&&e===a.annotations&&f===a.body?a:new pb(a.location,a.isStatic,a.functionKind,b,c,d,e,f)},transformPropertyNameAssignment:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.value);return b===a.name&&c===a.value?a:new qb(a.location,b,c)},transformPropertyNameShorthand:function(a){return a},transformPropertyVariableDeclaration:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.typeAnnotation),d=this.transformList(a.annotations);return b===a.name&&c===a.typeAnnotation&&d===a.annotations?a:new rb(a.location,a.isStatic,b,c,d)},transformPropertySignature:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.typeAnnotation);return b===a.name&&c===a.typeAnnotation?a:new sb(a.location,b,a.optional,c)},transformRestParameter:function(a){var b=this.transformAny(a.identifier),c=this.transformAny(a.typeAnnotation);return b===a.identifier&&c===a.typeAnnotation?a:new tb(a.location,b,c)},transformReturnStatement:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new ub(a.location,b)},transformSetAccessor:function(a){var b=this.transformAny(a.name),c=this.transformAny(a.parameterList),d=this.transformList(a.annotations),e=this.transformAny(a.body);return b===a.name&&c===a.parameterList&&d===a.annotations&&e===a.body?a:new vb(a.location,a.isStatic,b,c,d,e)},transformSpreadExpression:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new wb(a.location,b)},transformSpreadPatternElement:function(a){var b=this.transformAny(a.lvalue);return b===a.lvalue?a:new xb(a.location,b)},transformSuperExpression:function(a){return a},transformSwitchStatement:function(a){var b=this.transformAny(a.expression),c=this.transformList(a.caseClauses);return b===a.expression&&c===a.caseClauses?a:new yb(a.location,b,c)},transformSyntaxErrorTree:function(a){return a},transformTemplateLiteralExpression:function(a){var b=this.transformAny(a.operand),c=this.transformList(a.elements);return b===a.operand&&c===a.elements?a:new zb(a.location,b,c)},transformTemplateLiteralPortion:function(a){return a},transformTemplateSubstitution:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new Ab(a.location,b)},transformThisExpression:function(a){return a},transformThrowStatement:function(a){var b=this.transformAny(a.value);return b===a.value?a:new Bb(a.location,b)},transformTryStatement:function(a){var b=this.transformAny(a.body),c=this.transformAny(a.catchBlock),d=this.transformAny(a.finallyBlock);return b===a.body&&c===a.catchBlock&&d===a.finallyBlock?a:new Cb(a.location,b,c,d)},transformTypeArguments:function(a){var b=this.transformList(a.args);return b===a.args?a:new Db(a.location,b)},transformTypeName:function(a){var b=this.transformAny(a.moduleName);return b===a.moduleName?a:new Eb(a.location,b,a.name)},transformTypeParameter:function(a){var b=this.transformAny(a.extendsType);return b===a.extendsType?a:new Fb(a.location,a.identifierToken,b)},transformTypeParameters:function(a){var b=this.transformList(a.parameters);return b===a.parameters?a:new Gb(a.location,b)},transformTypeReference:function(a){var b=this.transformAny(a.typeName),c=this.transformAny(a.args);return b===a.typeName&&c===a.args?a:new Hb(a.location,b,c)},transformUnaryExpression:function(a){var b=this.transformAny(a.operand);return b===a.operand?a:new Ib(a.location,a.operator,b)},transformUnionType:function(a){var b=this.transformList(a.types);return b===a.types?a:new Jb(a.location,b)},transformVariableDeclaration:function(a){var b=this.transformAny(a.lvalue),c=this.transformAny(a.typeAnnotation),d=this.transformAny(a.initializer);return b===a.lvalue&&c===a.typeAnnotation&&d===a.initializer?a:new Kb(a.location,b,c,d)},transformVariableDeclarationList:function(a){var b=this.transformList(a.declarations);return b===a.declarations?a:new Lb(a.location,a.declarationType,b)},transformVariableStatement:function(a){var b=this.transformAny(a.declarations);return b===a.declarations?a:new Mb(a.location,b)},transformWhileStatement:function(a){var b=this.transformAny(a.condition),c=this.transformToBlockOrStatement(a.body);return b===a.condition&&c===a.body?a:new Nb(a.location,b,c)},transformWithStatement:function(a){var b=this.transformAny(a.expression),c=this.transformToBlockOrStatement(a.body);return b===a.expression&&c===a.body?a:new Ob(a.location,b,c)},transformYieldExpression:function(a){var b=this.transformAny(a.expression);return b===a.expression?a:new Pb(a.location,b,a.isYieldFor)}},{}),{get ParseTreeTransformer(){return Qb}}}),System.registerModule("traceur@0.0.79/src/codegeneration/PlaceholderParser.js",[],function(){"use strict";function a(a){return function(c){for(var d=[],e=1;e<arguments.length;e++)d[e-1]=arguments[e];return b(c,d,a)}}function b(a,b,e){var f=R.get(a);if(!f){var g=c(a),h=new p,i=d(g,h);if(f=e(i),h.hadError()||!f||!i.isAtEnd())throw new Error("Internal error trying to parse:\n\n"+g+"\n\n"+h.errorsAsString());R.set(a,f)}return b.length?f instanceof r?new $(b).transformAny(f):new $(b).transformList(f):f}function c(a){for(var b=a[0],c=1;c<a.length;c++)b+=Y+(c-1)+a[c];return b}function d(a,b){var c=new y("@traceur/generated/TemplateParser/"+Z++,a),d=new q;d.experimental=!0;var e=new t(c,b,d);return e.allowYield=!0,e.allowAwait=!0,e}function e(a){if(a instanceof r)return a;if(a instanceof m)return I(a);if(a instanceof n)return new v(a.location,a);if(Array.isArray(a))return a[0]instanceof r?1===a.length?a[0]:a[0].isStatement()?D(a):N(F(a)):B(a.map(e));if(null===a)return L();if(void 0===a)return P();switch(typeof a){case"string":return O(a);case"boolean":return E(a);case"number":return M(a)}throw new Error("Not implemented")}function f(a){return a instanceof m?a:J(a)}function g(a){if(null===a)return null;if(a instanceof r)return a;if("string"==typeof a)return new x(null,null,f(a));if(a instanceof m)return new x(null,null,a);throw new Error("Not implemented")}var h=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),i=h.ARGUMENT_LIST,j=h.BLOCK,k=h.EXPRESSION_STATEMENT,l=h.IDENTIFIER_EXPRESSION,m=System.get("traceur@0.0.79/src/syntax/IdentifierToken.js").IdentifierToken,n=System.get("traceur@0.0.79/src/syntax/LiteralToken.js").LiteralToken,o=System.get("traceur@0.0.79/src/runtime/polyfills/Map.js").Map,p=System.get("traceur@0.0.79/src/util/CollectingErrorReporter.js").CollectingErrorReporter,q=System.get("traceur@0.0.79/src/Options.js").Options,r=System.get("traceur@0.0.79/src/syntax/trees/ParseTree.js").ParseTree,s=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,t=System.get("traceur@0.0.79/src/syntax/Parser.js").Parser,u=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),v=u.LiteralExpression,w=u.LiteralPropertyName,x=u.TypeName,y=System.get("traceur@0.0.79/src/syntax/SourceFile.js").SourceFile,z=System.get("traceur@0.0.79/src/syntax/TokenType.js").IDENTIFIER,A=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),B=A.createArrayLiteralExpression,C=A.createBindingIdentifier,D=A.createBlock,E=A.createBooleanLiteral,F=A.createCommaExpression,G=A.createExpressionStatement,H=A.createFunctionBody,I=A.createIdentifierExpression,J=A.createIdentifierToken,K=A.createMemberExpression,L=A.createNullLiteral,M=A.createNumberLiteral,N=A.createParenExpression,O=A.createStringLiteral,P=A.createVoid0,Q={},R=new o,S=a(function(a){return a.parseExpression()}),T=a(function(a){return a.parseStatement()}),U=a(function(a){return a.parseModule()}),V=a(function(a){return a.parseScript()}),W=a(function(a){return a.parseStatements()}),X=a(function(a){return a.parsePropertyDefinition()}),Y="$__placeholder__",Z=0,$=function(a){$traceurRuntime.superConstructor(_).call(this),this.values=a},_=$;return $traceurRuntime.createClass($,{getValueAt:function(a){return this.values[a]},getValue_:function(a){return 0!==a.indexOf(Y)?Q:this.getValueAt(Number(a.slice(Y.length)))},transformIdentifierExpression:function(a){var b=this.getValue_(a.identifierToken.value);return b===Q?a:e(b)},transformBindingIdentifier:function(a){var b=this.getValue_(a.identifierToken.value);return b===Q?a:C(b)},transformExpressionStatement:function(a){if(a.expression.type===l){var b=this.transformIdentifierExpression(a.expression);return b===a.expression?a:b.isStatement()?b:G(b)}return $traceurRuntime.superGet(this,_.prototype,"transformExpressionStatement").call(this,a)},transformBlock:function(a){if(1===a.statements.length&&a.statements[0].type===k){var b=this.transformExpressionStatement(a.statements[0]);if(b===a.statements[0])return a;if(b.type===j)return b}return $traceurRuntime.superGet(this,_.prototype,"transformBlock").call(this,a)},transformFunctionBody:function(a){if(1===a.statements.length&&a.statements[0].type===k){var b=this.transformExpressionStatement(a.statements[0]);if(b===a.statements[0])return a;if(b.type===j)return H(b.statements)}return $traceurRuntime.superGet(this,_.prototype,"transformFunctionBody").call(this,a)},transformMemberExpression:function(a){var b=this.getValue_(a.memberName.value);if(b===Q)return $traceurRuntime.superGet(this,_.prototype,"transformMemberExpression").call(this,a);var c=this.transformAny(a.operand);return K(c,b)},transformLiteralPropertyName:function(a){if(a.literalToken.type===z){var b=this.getValue_(a.literalToken.value);if(b!==Q)return new w(null,f(b))}return $traceurRuntime.superGet(this,_.prototype,"transformLiteralPropertyName").call(this,a)},transformArgumentList:function(a){if(1===a.args.length&&a.args[0].type===l){var b=this.transformAny(a.args[0]);if(b===a.args[0])return a;if(b.type===i)return b}return $traceurRuntime.superGet(this,_.prototype,"transformArgumentList").call(this,a)},transformTypeName:function(a){var b=this.getValue_(a.name.value);if(b===Q)return $traceurRuntime.superGet(this,_.prototype,"transformTypeName").call(this,a);var c=this.transformAny(a.moduleName);return null!==c?new x(null,c,f(b)):g(b)}},{},s),{get parseExpression(){return S},get parseStatement(){return T},get parseModule(){return U},get parseScript(){return V},get parseStatements(){return W},get parsePropertyDefinition(){return X},get PlaceholderTransformer(){return $}}}),System.registerModule("traceur@0.0.79/src/codegeneration/PrependStatements.js",[],function(){"use strict";function a(a){return a.type===d&&a.expression.type===e&&a.expression.literalToken.type===f}function b(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];if(!b.length)return c;if(!c.length)return b;var e=[],f=!0;return b.forEach(function(b){var d;f&&!a(b)&&((d=e).push.apply(d,$traceurRuntime.spread(c)),f=!1),e.push(b)}),e}var c=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),d=c.EXPRESSION_STATEMENT,e=c.LITERAL_EXPRESSION,f=System.get("traceur@0.0.79/src/syntax/TokenType.js").STRING;return{get prependStatements(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/TempVarTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),c=b.Module,d=b.Script,e=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").ARGUMENTS,f=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,g=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),h=g.createFunctionBody,i=g.createThisExpression,j=g.createIdentifierExpression,k=g.createVariableDeclaration,l=g.createVariableDeclarationList,m=g.createVariableStatement,n=System.get("traceur@0.0.79/src/codegeneration/PrependStatements.js").prependStatements,o=function(a,b){this.name=a,this.initializer=b};$traceurRuntime.createClass(o,{},{});var p=function(){this.identifiers=[]};$traceurRuntime.createClass(p,{push:function(a){this.identifiers.push(a)},pop:function(){return this.identifiers.pop()},release:function(a){for(var b=this.identifiers.length-1;b>=0;b--)a.release_(this.identifiers[b])
}},{});var q=function(){this.thisName=null,this.argumentName=null,this.tempVarStatements=[]};$traceurRuntime.createClass(q,{push:function(a){this.tempVarStatements.push(a)},pop:function(){return this.tempVarStatements.pop()},release:function(a){for(var b=this.tempVarStatements.length-1;b>=0;b--)a.release_(this.tempVarStatements[b].name)},isEmpty:function(){return!this.tempVarStatements.length},createVariableStatement:function(){for(var a=[],b=Object.create(null),c=0;c<this.tempVarStatements.length;c++){var d=this.tempVarStatements[c],e=d.name,g=d.initializer;if(e in b){if(b[e].initializer||g)throw new Error("Invalid use of TempVarTransformer")}else b[e]=!0,a.push(k(e,g))}return m(l(f,a))}},{});var r=function(a){$traceurRuntime.superConstructor(s).call(this),this.identifierGenerator=a,this.tempVarStack_=[new q],this.tempScopeStack_=[new p],this.namePool_=[]},s=r;return $traceurRuntime.createClass(r,{transformStatements_:function(a){this.tempVarStack_.push(new q);var b=this.transformList(a),c=this.tempVarStack_.pop();if(c.isEmpty())return b;var d=c.createVariableStatement();return c.release(this),n(b,d)},transformScript:function(a){var b=this.transformStatements_(a.scriptItemList);return b==a.scriptItemList?a:new d(a.location,b,a.moduleName)},transformModule:function(a){var b=this.transformStatements_(a.scriptItemList);return b==a.scriptItemList?a:new c(a.location,b,a.moduleName)},transformFunctionBody:function(a){this.pushTempScope();var b=this.transformStatements_(a.statements);return this.popTempScope(),b==a.statements?a:h(b)},getTempIdentifier:function(){var a=this.getName_();return this.tempScopeStack_[this.tempScopeStack_.length-1].push(a),a},getName_:function(){return this.namePool_.length?this.namePool_.pop():this.identifierGenerator.generateUniqueIdentifier()},addTempVar:function(){var a=void 0!==arguments[0]?arguments[0]:null,b=this.tempVarStack_[this.tempVarStack_.length-1],c=this.getName_();return b.push(new o(c,a)),c},addTempVarForThis:function(){var a=this.tempVarStack_[this.tempVarStack_.length-1];return a.thisName||(a.thisName=this.addTempVar(i()))},addTempVarForArguments:function(){var a=this.tempVarStack_[this.tempVarStack_.length-1];return a.argumentName||(a.argumentName=this.addTempVar(j(e)))},pushTempScope:function(){this.tempScopeStack_.push(new p)},popTempScope:function(){this.tempScopeStack_.pop().release(this)},release_:function(a){this.namePool_.push(a)}},{},a),{get TempVarTransformer(){return r}}}),System.registerModule("traceur@0.0.79/src/codegeneration/DestructuringTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["Array.prototype.slice.call(",", ",")"],{raw:{value:Object.freeze(["Array.prototype.slice.call(",", ",")"])}})),b=Object.freeze(Object.defineProperties(["("," = ",".",") === void 0 ?\n "," : ",""],{raw:{value:Object.freeze(["("," = ",".",") === void 0 ?\n "," : ",""])}})),c=Object.freeze(Object.defineProperties(["("," = ","[","]) === void 0 ?\n "," : ",""],{raw:{value:Object.freeze(["("," = ","[","]) === void 0 ?\n "," : ",""])}})),d=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),e=d.ARRAY_LITERAL_EXPRESSION,f=d.ARRAY_PATTERN,g=d.ASSIGNMENT_ELEMENT,h=d.BINDING_ELEMENT,i=d.BINDING_IDENTIFIER,j=d.BLOCK,k=d.CALL_EXPRESSION,l=d.COMPUTED_PROPERTY_NAME,m=d.IDENTIFIER_EXPRESSION,n=d.LITERAL_EXPRESSION,o=d.MEMBER_EXPRESSION,p=d.MEMBER_LOOKUP_EXPRESSION,q=d.OBJECT_LITERAL_EXPRESSION,r=d.OBJECT_PATTERN,s=d.OBJECT_PATTERN_FIELD,t=d.PAREN_EXPRESSION,u=d.VARIABLE_DECLARATION_LIST,v=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),w=v.AssignmentElement,x=v.BindingElement,y=v.Catch,z=v.ForInStatement,A=v.ForOfStatement,B=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,C=System.get("traceur@0.0.79/src/syntax/TokenType.js"),D=C.EQUAL,E=C.LET,F=C.VAR,G=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),H=G.createAssignmentExpression,I=G.createBindingIdentifier,J=G.createBlock,K=G.createCommaExpression,L=G.createExpressionStatement,M=G.createFunctionBody,N=G.createIdentifierExpression,O=G.createMemberExpression,P=G.createMemberLookupExpression,Q=G.createNumberLiteral,R=G.createParenExpression,S=G.createVariableDeclaration,T=G.createVariableDeclarationList,U=G.createVariableStatement,V=System.get("traceur@0.0.79/src/Options.js").options,W=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,X=System.get("traceur@0.0.79/src/codegeneration/PrependStatements.js").prependStatements,Y=function(a){this.rvalue=a};$traceurRuntime.createClass(Y,{},{});var Z=function(a){$traceurRuntime.superConstructor($).call(this,a),this.expressions=[]},$=Z;$traceurRuntime.createClass(Z,{assign:function(a,b){a=a instanceof w?a.assignment:a,this.expressions.push(H(a,b))}},{},Y);var _=function(a){$traceurRuntime.superConstructor(ab).call(this,a),this.declarations=[]},ab=_;$traceurRuntime.createClass(_,{assign:function(a,b){var c=a instanceof x?a.binding:I(a);this.declarations.push(S(c,b))}},{},Y);var bb=function(a){$traceurRuntime.superConstructor(cb).call(this,a),this.parameterDeclarations=null},cb=bb;return $traceurRuntime.createClass(bb,{transformArrayPattern:function(){throw new Error("unreachable")},transformObjectPattern:function(){throw new Error("unreachable")},transformBinaryExpression:function(a){this.pushTempScope();var b;return b=a.operator.type==D&&a.left.isPattern()?this.transformAny(this.desugarAssignment_(a.left,a.right)):$traceurRuntime.superGet(this,cb.prototype,"transformBinaryExpression").call(this,a),this.popTempScope(),b},desugarAssignment_:function(a,b){var c=N(this.addTempVar()),d=new Z(c);return this.desugarPattern_(d,a),d.expressions.unshift(H(c,b)),d.expressions.push(c),R(K(d.expressions))},transformVariableDeclarationList:function(a){var b=this;if(!this.destructuringInDeclaration_(a))return $traceurRuntime.superGet(this,cb.prototype,"transformVariableDeclarationList").call(this,a);var c=[];a.declarations.forEach(function(a){var d;a.lvalue.isPattern()?(d=c).push.apply(d,$traceurRuntime.spread(b.desugarVariableDeclaration_(a))):c.push(a)});var d=this.transformVariableDeclarationList(T(a.declarationType,c));return d},transformForInStatement:function(a){return this.transformForInOrOf_(a,$traceurRuntime.superGet(this,cb.prototype,"transformForInStatement"),z)},transformForOfStatement:function(a){return this.transformForInOrOf_(a,$traceurRuntime.superGet(this,cb.prototype,"transformForOfStatement"),A)},transformForInOrOf_:function(a,b,c){var d;if(!(a.initializer.isPattern()||a.initializer.type===u&&this.destructuringInDeclaration_(a.initializer)))return b.call(this,a);this.pushTempScope();var e,f;a.initializer.isPattern()?(e=null,f=a.initializer):(e=a.initializer.declarationType,f=a.initializer.declarations[0].lvalue);var g=[],h=this.desugarBinding_(f,g,e),i=T(F,h,null),k=this.transformAny(a.collection),l=this.transformAny(a.body);return l.type===j?(d=g).push.apply(d,$traceurRuntime.spread(l.statements)):g.push(l),l=J(g),this.popTempScope(),new c(a.location,i,k,l)},transformAssignmentElement:function(){throw new Error("unreachable")},transformBindingElement:function(a){if(!a.binding.isPattern()||a.initializer)return a;null===this.parameterDeclarations&&(this.parameterDeclarations=[],this.pushTempScope());var b=this.getTempIdentifier(),c=I(b),d=N(b),e=S(a.binding,d);return this.parameterDeclarations.push(e),new x(null,c,null)},transformFunctionBody:function(a){if(null===this.parameterDeclarations)return $traceurRuntime.superGet(this,cb.prototype,"transformFunctionBody").call(this,a);var b=T(F,this.parameterDeclarations),c=U(b),d=X(a.statements,c),e=M(d);this.parameterDeclarations=null;var f=$traceurRuntime.superGet(this,cb.prototype,"transformFunctionBody").call(this,e);return this.popTempScope(),f},transformCatch:function(a){var b;if(!a.binding.isPattern())return $traceurRuntime.superGet(this,cb.prototype,"transformCatch").call(this,a);var c=this.transformAny(a.catchBody),d=[],e=V.blockBinding?E:F,f=this.desugarBinding_(a.binding,d,e);return(b=d).push.apply(b,$traceurRuntime.spread(c.statements)),new y(a.location,f,J(d))},desugarBinding_:function(a,b,c){var d,e=this.getTempIdentifier(),f=I(e),g=N(e);return d=null===c?new Z(g):new _(g),this.desugarPattern_(d,a),b.push(null===c?L(K(d.expressions)):U(this.transformVariableDeclarationList(T(c,d.declarations)))),f},destructuringInDeclaration_:function(a){return a.declarations.some(function(a){return a.lvalue.isPattern()})},desugarVariableDeclaration_:function(a){var b,c,d=this.getTempIdentifier(),f=N(d);switch(a.initializer.type){case e:case k:case m:case n:case o:case p:case q:case t:c=a.initializer;default:b=new _(f),b.assign(b.rvalue,a.initializer);var g=this.desugarPattern_(b,a.lvalue);return g||b.declarations.length>2?b.declarations:(c||(c=R(a.initializer)),b=new _(c),this.desugarPattern_(b,a.lvalue),b.declarations)}},desugarPattern_:function(b,c){var d=this,e=!1;switch(c.type){case f:for(var i=c,j=0;j<i.elements.length;j++){var k=i.elements[j];null!==k&&(k.isSpreadPatternElement()?b.assign(k.lvalue,W(a,b.rvalue,j)):(k.initializer&&(e=!0),b.assign(k,this.createConditionalMemberLookupExpression(b.rvalue,Q(j),k.initializer))))}break;case r:var i=c,l=function(a,c){c&&(e=!0);var f=d.createConditionalMemberExpression(b.rvalue,a,c);b.assign(a,f)};i.fields.forEach(function(a){var c;switch(a.type){case g:l(a.assignment,a.initializer);break;case h:l(a.binding,a.initializer);break;case s:a.element.initializer&&(e=!0);var f=a.name;c=d.createConditionalMemberExpression(b.rvalue,f,a.element.initializer),b.assign(a.element,c);break;default:throw Error("unreachable")}});break;case t:return this.desugarPattern_(b,c.expression);default:throw new Error("unreachable")}return b instanceof _&&0===b.declarations.length&&b.assign(I(this.getTempIdentifier()),b.rvalue),e},createConditionalMemberExpression:function(a,c,d){if(c.type===l)return this.createConditionalMemberLookupExpression(a,c.expression,d);var e;switch(c.type){case i:case m:e=c.identifierToken;break;default:e=c.literalToken}if(!d)return O(a,e);var f=N(this.addTempVar());return W(b,f,a,e,d,f)},createConditionalMemberLookupExpression:function(a,b,d){if(!d)return P(a,b);var e=N(this.addTempVar());return W(c,e,a,b,d,e)}},{},B),{get DestructuringTransformer(){return bb}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/ModuleSymbol.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/util/assert.js").assert,b=function(a){this.exports_=Object.create(null),this.normalizedName=null!==a?a.replace(/\\/g,"/"):null};$traceurRuntime.createClass(b,{addExport:function(b,c){a(!this.exports_[b]),this.exports_[b]=c},getExport:function(a){return this.exports_[a]},getExports:function(){return Object.keys(this.exports_)},addExportsFromModule:function(a){var b=this;Object.getOwnPropertyNames(a).forEach(function(a){b.addExport(a,!0)})}},{});var c=function(a,b){$traceurRuntime.superConstructor(d).call(this,b),this.tree=a,this.imports_=Object.create(null)},d=c;return $traceurRuntime.createClass(c,{addImport:function(b,c){a(!this.imports_[b]),this.imports_[b]=c},getImport:function(a){return this.imports_[a]}},{},b),{get ExportsList(){return b},get ModuleSymbol(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/ModuleVisitor.js",[],function(){"use strict";var a=(System.get("traceur@0.0.79/src/codegeneration/module/ModuleSymbol.js").ExportsList,System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor),b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),c=b.MODULE_DECLARATION,d=b.EXPORT_DECLARATION,e=b.IMPORT_DECLARATION,f=function(a,b,c){this.reporter=a,this.loader_=b,this.moduleSymbol=c};return $traceurRuntime.createClass(f,{getExportsListForModuleSpecifier:function(a){var b=this.moduleSymbol.normalizedName;return this.loader_.getExportsListForModuleSpecifier(a,b)},visitFunctionDeclaration:function(){},visitFunctionExpression:function(){},visitFunctionBody:function(){},visitBlock:function(){},visitClassDeclaration:function(){},visitClassExpression:function(){},visitModuleElement_:function(a){switch(a.type){case c:case d:case e:this.visitAny(a)}},visitScript:function(a){a.scriptItemList.forEach(this.visitModuleElement_,this)},visitModule:function(a){a.scriptItemList.forEach(this.visitModuleElement_,this)},reportError:function(a,b){this.reporter.reportError(a.location.start,b)}},{},a),{get ModuleVisitor(){return f}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/ExportVisitor.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/module/ModuleVisitor.js").ModuleVisitor,b=System.get("traceur@0.0.79/src/util/assert.js").assert,c=function(a,b,c){$traceurRuntime.superConstructor(d).call(this,a,b,c),this.inExport_=!1,this.moduleSpecifier=null},d=c;return $traceurRuntime.createClass(c,{addExport_:function(a,c){b("string"==typeof a),this.inExport_&&this.addExport(a,c)},addExport:function(a,b){var c=this.moduleSymbol,d=c.getExport(a);d?this.reportError(b,"Duplicate export. '"+a+"' was previously exported at "+d.location.start):c.addExport(a,b)},visitClassDeclaration:function(a){this.addExport_(a.name.identifierToken.value,a)},visitExportDeclaration:function(a){this.inExport_=!0,this.visitAny(a.declaration),this.inExport_=!1},visitNamedExport:function(a){this.moduleSpecifier=a.moduleSpecifier,this.visitAny(a.specifierSet),this.moduleSpecifier=null},visitExportDefault:function(a){this.addExport_("default",a)},visitExportSpecifier:function(a){this.addExport_((a.rhs||a.lhs).value,a)},visitExportStar:function(a){var b=this,c=this.moduleSpecifier.token.processedValue,d=this.getExportsListForModuleSpecifier(c);d&&d.getExports().forEach(function(c){return b.addExport(c,a)})},visitFunctionDeclaration:function(a){this.addExport_(a.name.getStringValue(),a)},visitModuleDeclaration:function(a){var b=a.binding.getStringValue();this.addExport_(b,a)},visitVariableDeclaration:function(a){this.addExport_(a.lvalue.getStringValue(),a)}},{},a),{get ExportVisitor(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/DirectExportVisitor.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/module/ExportVisitor.js").ExportVisitor,b=function(){$traceurRuntime.superConstructor(c).call(this,null,null,null),this.namedExports=[],this.starExports=[]},c=b;return $traceurRuntime.createClass(b,{addExport:function(a,b){this.namedExports.push({name:a,tree:b,moduleSpecifier:this.moduleSpecifier})},visitExportStar:function(){this.starExports.push(this.moduleSpecifier)},hasExports:function(){return 0!=this.namedExports.length||0!=this.starExports.length}},{},a),{get DirectExportVisitor(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ModuleTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["var __moduleName = ",";"],{raw:{value:Object.freeze(["var __moduleName = ",";"])}})),b=Object.freeze(Object.defineProperties(["function(require) {\n ","\n }"],{raw:{value:Object.freeze(["function(require) {\n ","\n }"])}})),c=Object.freeze(Object.defineProperties(["function() {\n ","\n }"],{raw:{value:Object.freeze(["function() {\n ","\n }"])}})),d=Object.freeze(Object.defineProperties(["$traceurRuntime.ModuleStore.getAnonymousModule(\n ",");"],{raw:{value:Object.freeze(["$traceurRuntime.ModuleStore.getAnonymousModule(\n ",");"])}})),e=Object.freeze(Object.defineProperties(["System.registerModule(",", [], ",");"],{raw:{value:Object.freeze(["System.registerModule(",", [], ",");"])}})),f=Object.freeze(Object.defineProperties(["get ","() { return ","; }"],{raw:{value:Object.freeze(["get ","() { return ","; }"])}})),g=Object.freeze(Object.defineProperties(["$traceurRuntime.exportStar(",")"],{raw:{value:Object.freeze(["$traceurRuntime.exportStar(",")"])}})),h=Object.freeze(Object.defineProperties(["return ",""],{raw:{value:Object.freeze(["return ",""])}})),i=Object.freeze(Object.defineProperties(["var $__default = ",""],{raw:{value:Object.freeze(["var $__default = ",""])}})),j=Object.freeze(Object.defineProperties(["var $__default = ",""],{raw:{value:Object.freeze(["var $__default = ",""])}})),k=Object.freeze(Object.defineProperties(["System.get(",")"],{raw:{value:Object.freeze(["System.get(",")"])}})),l=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),m=l.AnonBlock,n=l.BindingElement,o=l.EmptyStatement,p=l.LiteralPropertyName,q=l.ObjectPattern,r=l.ObjectPatternField,s=l.Script,t=System.get("traceur@0.0.79/src/codegeneration/DestructuringTransformer.js").DestructuringTransformer,u=System.get("traceur@0.0.79/src/codegeneration/module/DirectExportVisitor.js").DirectExportVisitor,v=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,w=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),x=w.CLASS_DECLARATION,y=w.EXPORT_DEFAULT,z=w.EXPORT_SPECIFIER,A=w.FUNCTION_DECLARATION,B=w.IMPORT_SPECIFIER_SET,C=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,D=System.get("traceur@0.0.79/src/util/assert.js").assert,E=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),F=E.createArgumentList,G=E.createExpressionStatement,H=E.createIdentifierExpression,I=E.createIdentifierToken,J=E.createMemberExpression,K=E.createObjectLiteralExpression,L=E.createUseStrictDirective,M=E.createVariableStatement,N=System.get("traceur@0.0.79/src/Options.js"),O=N.parseOptions,P=N.transformOptions,Q=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),R=Q.parseExpression,S=Q.parsePropertyDefinition,T=Q.parseStatement,U=Q.parseStatements,V=function(){$traceurRuntime.superConstructor(W).apply(this,arguments)},W=V;$traceurRuntime.createClass(V,{createGuardedExpression:function(a){return a}},{},t);var X=function(a){$traceurRuntime.superConstructor(Y).call(this,a),this.exportVisitor_=new u,this.moduleSpecifierKind_=null,this.moduleName=null},Y=X;return $traceurRuntime.createClass(X,{getTempVarNameForModuleName:function(a){return"$__"+a.replace(/[^a-zA-Z0-9$]/g,function(a){return"_"+a.charCodeAt(0)+"_"})+"__"},getTempVarNameForModuleSpecifier:function(a){var b=System.normalize(a.token.processedValue,this.moduleName);return this.getTempVarNameForModuleName(b)},transformScript:function(a){return this.moduleName=a.moduleName,$traceurRuntime.superGet(this,Y.prototype,"transformScript").call(this,a)},transformModule:function(a){this.moduleName=a.moduleName,this.pushTempScope();var b=this.transformList(a.scriptItemList);return b=this.appendExportStatement(b),this.popTempScope(),b=this.wrapModule(this.moduleProlog().concat(b)),new s(a.location,b)},moduleProlog:function(){var b=[L()];return this.moduleName&&b.push(T(a,this.moduleName)),b},wrapModule:function(a){var f;return f=P.require?R(b,a):R(c,a),null===this.moduleName?U(d,f):U(e,this.moduleName,f)},getGetterExport:function(a){var b,c=a,d=c.name,e=c.tree,g=c.moduleSpecifier;switch(e.type){case y:b=H("$__default");break;case z:if(g){var h=this.getTempVarNameForModuleSpecifier(g);b=J(h,e.lhs)}else b=H(e.lhs);break;default:b=H(d)}return S(f,d,b)},getExportProperties:function(){var a=this;return this.exportVisitor_.namedExports.map(function(b){return a.getGetterExport(b)}).concat(this.exportVisitor_.namedExports.map(function(b){return a.getSetterExport(b)})).filter(function(a){return a})},getSetterExport:function(a){{var b=a;b.name,b.tree,b.moduleSpecifier}return null},getExportObject:function(){var a=this,b=K(this.getExportProperties());if(this.exportVisitor_.starExports.length){var c=this.exportVisitor_.starExports,d=c.map(function(b){return H(a.getTempVarNameForModuleSpecifier(b))}),e=F($traceurRuntime.spread([b],d));return R(g,e)}return b},appendExportStatement:function(a){var b=this.getExportObject();return a.push(T(h,b)),a},hasExports:function(){return this.exportVisitor_.hasExports()},transformExportDeclaration:function(a){return this.exportVisitor_.visitAny(a),this.transformAny(a.declaration)},transformExportDefault:function(a){switch(a.expression.type){case x:case A:var b=a.expression.name,c=H(b.identifierToken);return new m(null,[a.expression,T(i,c)])}return T(j,a.expression)},transformNamedExport:function(a){var b=a.moduleSpecifier;if(b){var c=this.transformAny(b),d=this.getTempVarNameForModuleSpecifier(b);return M(C,d,c)}return new o(null)},transformModuleSpecifier:function(a){D(this.moduleName);var b=a.token.processedValue,c=System.normalize(b,this.moduleName);return R(k,c)},transformModuleDeclaration:function(a){this.moduleSpecifierKind_="module";var b=this.transformAny(a.expression),c=a.binding.binding;return M(C,c,b)},transformImportedBinding:function(a){var b=new n(a.location,a.binding,null),c=new p(null,I("default"));return new q(null,[new r(null,c,b)])},transformImportDeclaration:function(a){if(this.moduleSpecifierKind_="import",!a.importClause||a.importClause.type===B&&0===a.importClause.specifiers.length)return G(this.transformAny(a.moduleSpecifier));var b=this.transformAny(a.importClause),c=this.transformAny(a.moduleSpecifier),d=M(C,b,c);if(P.destructuring||!O.destructuring){var e=new V(this.identifierGenerator);d=d.transform(e)}return d},transformImportSpecifierSet:function(a){var b=this.transformList(a.specifiers);return new q(null,b)},transformImportSpecifier:function(a){var b=a.binding.binding,c=new n(b.location,b,null);if(a.name){var d=new p(a.name.location,a.name);return new r(a.location,d,c)}return c}},{},v),{get ModuleTransformer(){return X}}}),System.registerModule("traceur@0.0.79/src/codegeneration/globalThis.js",[],function(){"use strict";function a(){return b||(b=d(c)),b}var b,c=Object.freeze(Object.defineProperties(["Reflect.global"],{raw:{value:Object.freeze(["Reflect.global"])}})),d=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,e=a;return{get default(){return e}}}),System.registerModule("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/FindVisitor.js").FindVisitor,b=function(){$traceurRuntime.superConstructor(c).apply(this,arguments)},c=b;return $traceurRuntime.createClass(b,{visitFunctionDeclaration:function(){},visitFunctionExpression:function(){},visitSetAccessor:function(){},visitGetAccessor:function(){},visitPropertyMethodAssignment:function(){}},{},a),{get FindInFunctionScope(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/scopeContainsThis.js",[],function(){"use strict";function a(a){var b=new c;return b.visitAny(a),b.found}var b=System.get("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js").FindInFunctionScope,c=function(){$traceurRuntime.superConstructor(d).apply(this,arguments)},d=c;$traceurRuntime.createClass(c,{visitThisExpression:function(){this.found=!0}},{},b);var e=a;return{get default(){return e}}}),System.registerModule("traceur@0.0.79/src/codegeneration/AmdTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["__esModule: true"],{raw:{value:Object.freeze(["__esModule: true"])}})),b=Object.freeze(Object.defineProperties(["if (!"," || !",".__esModule)\n "," = {default: ","}"],{raw:{value:Object.freeze(["if (!"," || !",".__esModule)\n "," = {default: ","}"])}})),c=Object.freeze(Object.defineProperties(["function(",") {\n ","\n }"],{raw:{value:Object.freeze(["function(",") {\n ","\n }"])}})),d=Object.freeze(Object.defineProperties(["",".bind(",")"],{raw:{value:Object.freeze(["",".bind(",")"])}})),e=Object.freeze(Object.defineProperties(["define(",", ",", ",");"],{raw:{value:Object.freeze(["define(",", ",", ",");"])}})),f=Object.freeze(Object.defineProperties(["define(",", ",");"],{raw:{value:Object.freeze(["define(",", ",");"])}})),g=System.get("traceur@0.0.79/src/codegeneration/ModuleTransformer.js").ModuleTransformer,h=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),i=h.createIdentifierExpression,j=h.createStringLiteralToken,k=System.get("traceur@0.0.79/src/codegeneration/globalThis.js").default,l=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),m=l.parseExpression,n=l.parseStatement,o=l.parseStatements,p=l.parsePropertyDefinition,q=System.get("traceur@0.0.79/src/codegeneration/scopeContainsThis.js").default,r=function(a){$traceurRuntime.superConstructor(s).call(this,a),this.dependencies=[]},s=r;return $traceurRuntime.createClass(r,{getExportProperties:function(){var b=$traceurRuntime.superGet(this,s.prototype,"getExportProperties").call(this);return this.exportVisitor_.hasExports()&&b.push(p(a)),b},moduleProlog:function(){var a=this.dependencies.map(function(a){var c=i(a.local);return n(b,c,c,c,c)});return $traceurRuntime.superGet(this,s.prototype,"moduleProlog").call(this).concat(a)},wrapModule:function(a){var b=this.dependencies.map(function(a){return a.path}),g=this.dependencies.map(function(a){return a.local}),h=a.some(q),i=m(c,g,a);return h&&(i=m(d,i,k())),this.moduleName?o(e,this.moduleName,b,i):o(f,b,i)},transformModuleSpecifier:function(a){var b=this.getTempIdentifier(),c=a.token.processedValue,d=j(c.replace(/\.js$/,""));return this.dependencies.push({path:d,local:b}),i(b)}},{},g),{get AmdTransformer(){return r}}}),System.registerModule("traceur@0.0.79/src/staticsemantics/PropName.js",[],function(){"use strict";function a(b){switch(b.type){case e:var k=b.literalToken;return k.isKeyword()||k.type===j?k.toString():String(b.literalToken.processedValue);case c:return"";case h:return b.name.toString();case f:case g:case d:case i:return a(b.name)}}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),c=b.COMPUTED_PROPERTY_NAME,d=b.GET_ACCESSOR,e=b.LITERAL_PROPERTY_NAME,f=b.PROPERTY_METHOD_ASSIGNMENT,g=b.PROPERTY_NAME_ASSIGNMENT,h=b.PROPERTY_NAME_SHORTHAND,i=b.SET_ACCESSOR,j=System.get("traceur@0.0.79/src/syntax/TokenType.js").IDENTIFIER;return{get propName(){return a}}}),System.registerModule("traceur@0.0.79/src/codegeneration/AnnotationsTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["Object.getOwnPropertyDescriptor(",")"],{raw:{value:Object.freeze(["Object.getOwnPropertyDescriptor(",")"])}})),b=Object.freeze(Object.defineProperties(["Object.defineProperty(",", ",",\n {get: function() {return ","}});"],{raw:{value:Object.freeze(["Object.defineProperty(",", ",",\n {get: function() {return ","}});"])}})),c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,d=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").CONSTRUCTOR,e=System.get("traceur@0.0.79/src/syntax/TokenType.js").STRING,f=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),g=f.AnonBlock,h=f.ClassDeclaration,i=f.ExportDeclaration,j=f.FormalParameter,k=f.FunctionDeclaration,l=f.GetAccessor,m=f.LiteralExpression,n=f.PropertyMethodAssignment,o=f.SetAccessor,p=System.get("traceur@0.0.79/src/staticsemantics/PropName.js").propName,q=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),r=q.createArgumentList,s=q.createArrayLiteralExpression,t=(q.createAssignmentStatement,q.createIdentifierExpression),u=q.createMemberExpression,v=q.createNewExpression,w=q.createStringLiteralToken,x=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),y=x.parseExpression,z=x.parseStatement,A=function(){this.className=null,this.isExport=!1,this.constructorParameters=[],this.annotations=[],this.metadata=[]};$traceurRuntime.createClass(A,{get inClassScope(){return null!==this.className}},{});var B=function(){this.stack_=[new A]},C=B;return $traceurRuntime.createClass(B,{transformExportDeclaration:function(a){var b,c=this.pushAnnotationScope_();c.isExport=!0,(b=c.annotations).push.apply(b,$traceurRuntime.spread(a.annotations));var d=this.transformAny(a.declaration);return(d!==a.declaration||a.annotations.length>0)&&(a=new i(a.location,d,[])),this.appendMetadata_(a)},transformClassDeclaration:function(a){var b,c,d=this.scope.isExport?this.scope.annotations:[],e=this.pushAnnotationScope_();return e.className=a.name,(b=e.annotations).push.apply(b,$traceurRuntime.spread(d,a.annotations)),a=$traceurRuntime.superGet(this,C.prototype,"transformClassDeclaration").call(this,a),(c=e.metadata).unshift.apply(c,$traceurRuntime.spread(this.transformMetadata_(t(a.name),e.annotations,e.constructorParameters))),a.annotations.length>0&&(a=new h(a.location,a.name,a.superClass,a.elements,[],null)),this.appendMetadata_(a)},transformFunctionDeclaration:function(a){var b,c,d=this.scope.isExport?this.scope.annotations:[],e=this.pushAnnotationScope_();return(b=e.annotations).push.apply(b,$traceurRuntime.spread(d,a.annotations)),(c=e.metadata).push.apply(c,$traceurRuntime.spread(this.transformMetadata_(t(a.name),e.annotations,a.parameterList.parameters))),a=$traceurRuntime.superGet(this,C.prototype,"transformFunctionDeclaration").call(this,a),a.annotations.length>0&&(a=new k(a.location,a.name,a.functionKind,a.parameterList,a.typeAnnotation,[],a.body)),this.appendMetadata_(a)},transformFormalParameter:function(a){return a.annotations.length>0&&(a=new j(a.location,a.parameter,a.typeAnnotation,[])),$traceurRuntime.superGet(this,C.prototype,"transformFormalParameter").call(this,a)},transformGetAccessor:function(a){var b;return this.scope.inClassScope?((b=this.scope.metadata).push.apply(b,$traceurRuntime.spread(this.transformMetadata_(this.transformAccessor_(a,this.scope.className,"get"),a.annotations,[]))),a.annotations.length>0&&(a=new l(a.location,a.isStatic,a.name,a.typeAnnotation,[],a.body)),$traceurRuntime.superGet(this,C.prototype,"transformGetAccessor").call(this,a)):$traceurRuntime.superGet(this,C.prototype,"transformGetAccessor").call(this,a)},transformSetAccessor:function(a){var b;if(!this.scope.inClassScope)return $traceurRuntime.superGet(this,C.prototype,"transformSetAccessor").call(this,a);(b=this.scope.metadata).push.apply(b,$traceurRuntime.spread(this.transformMetadata_(this.transformAccessor_(a,this.scope.className,"set"),a.annotations,a.parameterList.parameters)));var c=this.transformAny(a.parameterList);return(c!==a.parameterList||a.annotations.length>0)&&(a=new o(a.location,a.isStatic,a.name,c,[],a.body)),$traceurRuntime.superGet(this,C.prototype,"transformSetAccessor").call(this,a)},transformPropertyMethodAssignment:function(a){var b,c;if(!this.scope.inClassScope)return $traceurRuntime.superGet(this,C.prototype,"transformPropertyMethodAssignment").call(this,a);a.isStatic||p(a)!==d?(c=this.scope.metadata).push.apply(c,$traceurRuntime.spread(this.transformMetadata_(this.transformPropertyMethod_(a,this.scope.className),a.annotations,a.parameterList.parameters))):((b=this.scope.annotations).push.apply(b,$traceurRuntime.spread(a.annotations)),this.scope.constructorParameters=a.parameterList.parameters);var e=this.transformAny(a.parameterList);return(e!==a.parameterList||a.annotations.length>0)&&(a=new n(a.location,a.isStatic,a.functionKind,a.name,e,a.typeAnnotation,[],a.body)),$traceurRuntime.superGet(this,C.prototype,"transformPropertyMethodAssignment").call(this,a)},appendMetadata_:function(a){var b,c=this.stack_.pop().metadata;return c.length>0&&(this.scope.isExport?(b=this.scope.metadata).push.apply(b,$traceurRuntime.spread(c)):a=new g(null,$traceurRuntime.spread([a],c))),a},transformClassReference_:function(a,b){var c=t(b);return a.isStatic||(c=u(c,"prototype")),c},transformPropertyMethod_:function(a,b){return u(this.transformClassReference_(a,b),a.name.literalToken)},transformAccessor_:function(b,c,d){var e=r([this.transformClassReference_(b,c),this.createLiteralStringExpression_(b.name)]),f=y(a,e);return u(f,d)},transformParameters_:function(a){var b=this,c=!1;return a=a.map(function(a){var d,e=[];return a.typeAnnotation&&e.push(b.transformAny(a.typeAnnotation)),a.annotations&&a.annotations.length>0&&(d=e).push.apply(d,$traceurRuntime.spread(b.transformAnnotations_(a.annotations))),e.length>0?(c=!0,s(e)):s([])
}),c?a:[]},transformAnnotations_:function(a){return a.map(function(a){return v(a.name,a.args)})},transformMetadata_:function(a,b,c){var d=[];return null!==b&&(b=this.transformAnnotations_(b),b.length>0&&d.push(this.createDefinePropertyStatement_(a,"annotations",s(b)))),null!==c&&(c=this.transformParameters_(c),c.length>0&&d.push(this.createDefinePropertyStatement_(a,"parameters",s(c)))),d},createDefinePropertyStatement_:function(a,c,d){return z(b,a,c,d)},createLiteralStringExpression_:function(a){var b=a.literalToken;return a.literalToken.type!==e&&(b=w(a.literalToken.value)),new m(null,b)},get scope(){return this.stack_[this.stack_.length-1]},pushAnnotationScope_:function(){var a=new A;return this.stack_.push(a),a}},{},c),{get AnnotationsTransformer(){return B}}}),System.registerModule("traceur@0.0.79/src/semantics/VariableBinder.js",[],function(){"use strict";function a(a){var b=arguments[1],d=new c(null);d.visitAny(a);var e=d.getScopeForTree(a),f=e.getLexicalBindingNames();if(!b)return f;var g=e.getVariableBindingNames();for(var h in g)f[h]=!0;return f}function b(a){var b=new c(null);b.visitAny(a);var d=b.getScopeForTree(a);return d.getAllBindingNames()}var c=System.get("traceur@0.0.79/src/semantics/ScopeChainBuilder.js").ScopeChainBuilder;return{get variablesInBlock(){return a},get variablesInFunction(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ScopeTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,b=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),c=b.ARGUMENTS,d=b.THIS,e=System.get("traceur@0.0.79/src/semantics/VariableBinder.js"),f=e.variablesInBlock,g=e.variablesInFunction,h=function(a){$traceurRuntime.superConstructor(i).call(this),this.varName_=a},i=h;return $traceurRuntime.createClass(h,{transformBlock:function(a){return this.varName_ in f(a)?a:$traceurRuntime.superGet(this,i.prototype,"transformBlock").call(this,a)},transformThisExpression:function(a){return this.varName_!==d?a:$traceurRuntime.superGet(this,i.prototype,"transformThisExpression").call(this,a)},transformFunctionDeclaration:function(a){return this.getDoNotRecurse(a)?a:$traceurRuntime.superGet(this,i.prototype,"transformFunctionDeclaration").call(this,a)},transformFunctionExpression:function(a){return this.getDoNotRecurse(a)?a:$traceurRuntime.superGet(this,i.prototype,"transformFunctionExpression").call(this,a)},getDoNotRecurse:function(a){return this.varName_===c||this.varName_===d||this.varName_ in g(a)},transformCatch:function(a){return a.binding.isPattern()||this.varName_!==a.binding.identifierToken.value?$traceurRuntime.superGet(this,i.prototype,"transformCatch").call(this,a):a}},{},a),{get ScopeTransformer(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/AlphaRenamer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/ScopeTransformer.js").ScopeTransformer,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),c=b.FunctionDeclaration,d=b.FunctionExpression,e=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").THIS,f=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js").createIdentifierExpression,g=function(a,b){$traceurRuntime.superConstructor(h).call(this,a),this.newName_=b},h=g;return $traceurRuntime.createClass(g,{transformIdentifierExpression:function(a){return this.varName_==a.identifierToken.value?f(this.newName_):a},transformThisExpression:function(a){return this.varName_!==e?a:f(this.newName_)},transformFunctionDeclaration:function(a){return this.varName_===a.name&&(a=new c(a.location,this.newName_,a.functionKind,a.parameterList,a.typeAnnotation,a.annotations,a.body)),$traceurRuntime.superGet(this,h.prototype,"transformFunctionDeclaration").call(this,a)},transformFunctionExpression:function(a){return this.varName_===a.name&&(a=new d(a.location,this.newName_,a.functionKind,a.parameterList,a.typeAnnotation,a.annotations,a.body)),$traceurRuntime.superGet(this,h.prototype,"transformFunctionExpression").call(this,a)}},{rename:function(a,b,c){return new h(b,c).transformAny(a)}},a),{get AlphaRenamer(){return g}}}),System.registerModule("traceur@0.0.79/src/codegeneration/alphaRenameThisAndArguments.js",[],function(){"use strict";function a(a,b){var f=new g;if(f.visitAny(b),f.foundArguments){var h=a.addTempVarForArguments();b=e.rename(b,c,h)}if(f.foundThis){var i=a.addTempVarForThis();b=e.rename(b,d,i)}return b}var b=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),c=b.ARGUMENTS,d=b.THIS,e=System.get("traceur@0.0.79/src/codegeneration/AlphaRenamer.js").AlphaRenamer,f=System.get("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js").FindInFunctionScope,g=function(){$traceurRuntime.superConstructor(h).call(this),this.foundThis=!1,this.foundArguments=!1},h=g;$traceurRuntime.createClass(g,{visitThisExpression:function(){this.foundThis=!0,this.found=this.foundArguments},visitIdentifierExpression:function(a){a.identifierToken.value===c&&(this.foundArguments=!0,this.found=this.foundThis)}},{},f);var i=a;return{get default(){return i}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ComprehensionTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/alphaRenameThisAndArguments.js").default,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").FunctionExpression,c=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,d=System.get("traceur@0.0.79/src/syntax/TokenType.js"),e=d.LET,f=d.STAR,g=d.VAR,h=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),i=h.COMPREHENSION_FOR,j=h.COMPREHENSION_IF,k=System.get("traceur@0.0.79/src/syntax/Token.js").Token,l=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),m=l.createCallExpression,n=l.createEmptyParameterList,o=l.createForOfStatement,p=l.createFunctionBody,q=l.createIfStatement,r=l.createParenExpression,s=l.createVariableDeclarationList,t=System.get("traceur@0.0.79/src/Options.js").options,u=function(){$traceurRuntime.superConstructor(v).apply(this,arguments)},v=u;return $traceurRuntime.createClass(u,{transformComprehension:function(c,d,h){for(var l=arguments[3],u=arguments[4],v=h||!t.blockBinding?g:e,w=l?[l]:[],x=c.comprehensionList.length-1;x>=0;x--){var y=c.comprehensionList[x];switch(y.type){case j:var z=this.transformAny(y.expression);d=q(z,d);break;case i:var A=this.transformAny(y.left),B=this.transformAny(y.iterator),C=s(v,A,null);d=o(C,B,d);break;default:throw new Error("Unreachable.")}}d=a(this,d),w.push(d),u&&w.push(u);var D=h?new k(f,null):null,E=new b(null,null,D,n(),null,[],p(w));return r(m(E))}},{},c),{get ComprehensionTransformer(){return u}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ArrayComprehensionTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["var "," = 0, "," = [];"],{raw:{value:Object.freeze(["var "," = 0, "," = [];"])}})),b=Object.freeze(Object.defineProperties(["","[","++] = ",";"],{raw:{value:Object.freeze(["","[","++] = ",";"])}})),c=Object.freeze(Object.defineProperties(["return ",";"],{raw:{value:Object.freeze(["return ",";"])}})),d=System.get("traceur@0.0.79/src/codegeneration/ComprehensionTransformer.js").ComprehensionTransformer,e=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js").createIdentifierExpression,f=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,g=function(){$traceurRuntime.superConstructor(h).apply(this,arguments)},h=g;return $traceurRuntime.createClass(g,{transformArrayComprehension:function(d){this.pushTempScope();var g=this.transformAny(d.expression),h=e(this.getTempIdentifier()),i=e(this.getTempIdentifier()),j=f(a,h,i),k=f(b,i,h,g),l=f(c,i),m=null,i=this.transformComprehension(d,k,m,j,l);return this.popTempScope(),i}},{},d),{get ArrayComprehensionTransformer(){return g}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ArrowFunctionTransformer.js",[],function(){"use strict";function a(a){return a.type!==d?g([i(a)]):a}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").FunctionExpression,c=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,d=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js").FUNCTION_BODY,e=System.get("traceur@0.0.79/src/codegeneration/alphaRenameThisAndArguments.js").default,f=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),g=f.createFunctionBody,h=f.createParenExpression,i=f.createReturnStatement,j=function(){$traceurRuntime.superConstructor(k).apply(this,arguments)},k=j;return $traceurRuntime.createClass(j,{transformArrowFunctionExpression:function(c){var d=e(this,c),f=this.transformAny(d.parameterList),g=this.transformAny(d.body);g=a(g);var i=new b(c.location,null,c.functionKind,f,null,[],g);return h(i)}},{transform:function(c,d){d=e(c,d);var f=a(d.body);return new b(d.location,null,d.functionKind,d.parameterList,null,[],f)}},c),{get ArrowFunctionTransformer(){return j}}}),System.registerModule("traceur@0.0.79/src/codegeneration/FindIdentifiers.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/semantics/ScopeVisitor.js").ScopeVisitor,b=function(a,b){$traceurRuntime.superConstructor(c).call(this),this.filterFunction_=b,this.found_=!1,this.visitAny(a)},c=b;return $traceurRuntime.createClass(b,{visitIdentifierExpression:function(a){this.filterFunction_(a.identifierToken.value,this.scope.tree)&&(this.found=!0)},get found(){return this.found_},set found(a){a&&(this.found_=!0)},visitAny:function(a){!this.found_&&a&&a.visit(this)},visitList:function(a){if(a)for(var b=0;!this.found_&&b<a.length;b++)this.visitAny(a[b])}},{},a),{get FindIdentifiers(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/FnExtractAbruptCompletions.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["if (typeof ",' === "object")\n return ',".v;"],{raw:{value:Object.freeze(["if (typeof ",' === "object")\n return ',".v;"])}})),b=Object.freeze(Object.defineProperties(["return ",";"],{raw:{value:Object.freeze(["return ",";"])}})),c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,d=System.get("traceur@0.0.79/src/codegeneration/alphaRenameThisAndArguments.js").default,e=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,f=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),g=f.AnonBlock,h=f.BreakStatement,i=f.ContinueStatement,j=f.FormalParameterList,k=f.ReturnStatement,l=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),m=l.createArgumentList,n=l.createAssignmentStatement,o=l.createAssignmentExpression,p=l.createBlock,q=l.createCallExpression,r=l.createCaseClause,s=l.createDefaultClause,t=l.createExpressionStatement,u=l.createFunctionBody,v=l.createFunctionExpression,w=l.createIdentifierExpression,x=l.createNumberLiteral,y=l.createObjectLiteral,z=l.createSwitchStatement,A=l.createThisExpression,B=l.createVariableDeclaration,C=l.createVariableDeclarationList,D=l.createVariableStatement,E=l.createVoid0,F=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").ARGUMENTS,G=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,H=function(a,b){this.idGenerator_=a,this.inLoop_=0,this.inBreakble_=0,this.variableDeclarations_=[],this.extractedStatements_=[],this.requestParentLabel_=b,this.labelledStatements_={}},I=H;return $traceurRuntime.createClass(H,{createIIFE:function(b,c,f){b=this.transformAny(b),b=d(this,b);var g=this.idGenerator_.generateUniqueIdentifier(),h=v(new j(null,c),u(b.statements||[b]));this.variableDeclarations_.push(B(g,h));var i=q(w(g),m(f)),k=null;if(this.extractedStatements_.length||this.hasReturns){var l=w(this.idGenerator_.generateUniqueIdentifier());this.variableDeclarations_.push(B(l,null));var n;if(this.hasReturns&&(n=e(a,l,l)),this.extractedStatements_.length){var y=this.extractedStatements_.map(function(a,b){return r(x(b),[a])});n&&y.push(s([n])),k=p([t(o(l,i)),z(l,y)])}else k=p([t(o(l,i)),n])}else k=p([t(i)]);return{variableStatements:D(C(G,this.variableDeclarations_)),loopBody:k}},addTempVarForArguments:function(){var a=this.idGenerator_.generateUniqueIdentifier();return this.variableDeclarations_.push(B(a,w(F))),a},addTempVarForThis:function(){var a=this.idGenerator_.generateUniqueIdentifier();return this.variableDeclarations_.push(B(a,A())),a},transformAny:function(a){return a&&(a.isBreakableStatement()&&this.inBreakble_++,a.isIterationStatement()&&this.inLoop_++,a=$traceurRuntime.superGet(this,I.prototype,"transformAny").call(this,a),a.isBreakableStatement()&&this.inBreakble_--,a.isIterationStatement()&&this.inLoop_--),a},transformReturnStatement:function(a){return this.hasReturns=!0,new k(a.location,y({v:a.expression||E()}))},transformAbruptCompletion_:function(a){this.extractedStatements_.push(a);var c=this.extractedStatements_.length-1;return e(b,c)},transformBreakStatement:function(a){if(a.name){if(this.labelledStatements_[a.name])return $traceurRuntime.superGet(this,I.prototype,"transformBreakStatement").call(this,a)}else{if(this.inBreakble_)return $traceurRuntime.superGet(this,I.prototype,"transformBreakStatement").call(this,a);a=new h(a.location,this.requestParentLabel_())}return this.transformAbruptCompletion_(a)},transformContinueStatement:function(a){if(a.name){if(this.labelledStatements_[a.name])return $traceurRuntime.superGet(this,I.prototype,"transformContinueStatement").call(this,a)}else{if(this.inLoop_)return $traceurRuntime.superGet(this,I.prototype,"transformContinueStatement").call(this,a);a=new i(a.location,this.requestParentLabel_())}return this.transformAbruptCompletion_(a)},transformLabelledStatement:function(a){return this.labelledStatements_[a.name]=!0,$traceurRuntime.superGet(this,I.prototype,"transformLabelledStatement").call(this,a)},transformVariableStatement:function(a){var b=this,c=this;if(a.declarations.declarationType===G){var d=[];return a.declarations.declarations.forEach(function(a){var e=a.lvalue.getStringValue(),f=$traceurRuntime.superGet(b,I.prototype,"transformAny").call(b,a.initializer);c.variableDeclarations_.push(B(e,null)),d.push(n(w(e),f))}),new g(null,d)}return $traceurRuntime.superGet(this,I.prototype,"transformVariableStatement").call(this,a)},transformFunctionDeclaration:function(a){return a},transformFunctionExpression:function(a){return a},transformSetAccessor:function(a){return a},transformGetAccessor:function(a){return a},transformPropertyMethodAssignment:function(a){return a},transformArrowFunctionExpression:function(a){return a}},{createIIFE:function(a,b,c,d,e){return new I(a,e).createIIFE(b,c,d)}},c),{get FnExtractAbruptCompletions(){return H}}}),System.registerModule("traceur@0.0.79/src/codegeneration/BlockBindingTransformer.js",[],function(){"use strict";function a(a,c){return a.forEach(function(a){c=b.rename(c,a.oldName,a.newName)}),c}var b=System.get("traceur@0.0.79/src/codegeneration/AlphaRenamer.js").AlphaRenamer,c=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),d=c.ANON_BLOCK,e=c.BINDING_IDENTIFIER,f=c.VARIABLE_DECLARATION_LIST,g=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),h=g.AnonBlock,i=g.BindingElement,j=g.BindingIdentifier,k=g.Block,l=g.Catch,m=g.DoWhileStatement,n=g.ForInStatement,o=g.ForStatement,p=g.FormalParameter,q=g.FunctionBody,r=g.FunctionExpression,s=g.LabelledStatement,t=g.LiteralPropertyName,u=g.Module,v=g.ObjectPatternField,w=g.Script,x=g.VariableDeclaration,y=g.VariableDeclarationList,z=g.VariableStatement,A=g.WhileStatement,B=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,C=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,D=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),E=D.createBindingIdentifier,F=D.createIdentifierExpression,G=D.createIdentifierToken,H=System.get("traceur@0.0.79/src/codegeneration/FindIdentifiers.js").FindIdentifiers,I=System.get("traceur@0.0.79/src/codegeneration/FindVisitor.js").FindVisitor,J=System.get("traceur@0.0.79/src/codegeneration/FnExtractAbruptCompletions.js").FnExtractAbruptCompletions,K=System.get("traceur@0.0.79/src/semantics/ScopeChainBuilderWithReferences.js").ScopeChainBuilderWithReferences,L=System.get("traceur@0.0.79/src/codegeneration/PrependStatements.js").prependStatements,M=function(a,b,c){var d=arguments[3],e=arguments[4];$traceurRuntime.superConstructor(N).call(this),this.idGenerator_=a,this.reporter_=b,d||(d=new K(b),d.visitAny(c)),this.scopeBuilder_=d,this.labelledLoops_=new Map,this.prependStatement_=[],this.prependBlockStatement_=[],this.blockRenames_=[],this.rootTree_=c,e?this.scope_=e:this.pushScope(c),this.usedVars_=this.scope_.getAllBindingNames(),this.maybeRename_=!1,this.inObjectPattern_=!1},N=M;$traceurRuntime.createClass(M,{getVariableName_:function(a){var b=a.lvalue;if(b.type==e)return b.getStringValue();throw new Error("Unexpected destructuring declaration found.")},flushRenames:function(b){return b=a(this.blockRenames_,b),this.blockRenames_.length=0,b},pushScope:function(a){var b=this.scopeBuilder_.getScopeForTree(a);if(!b)throw new Error("BlockBindingTransformer tree with no scope");return this.scope_&&(this.scope_.blockBindingRenames=this.blockRenames_),this.scope_=b,this.blockRenames_=[],b},popScope:function(a){if(this.scope_!=a)throw new Error("BlockBindingTransformer scope mismatch");this.scope_=a.parent,this.blockRenames_=this.scope_&&this.scope_.blockBindingRenames||[]},revisitTreeForScopes:function(a){this.scopeBuilder_.scope=this.scope_,this.scopeBuilder_.visitAny(a),this.scopeBuilder_.scope=null},needsRename_:function(a){if(this.usedVars_[a])return!0;var b=this.scope_,c=b.parent;if(!c||b.isVarScope)return!1;var d=b.getVarScope();if(d&&d.hasFreeVariable(a))return!0;var e=c.getBindingByName(a);if(!e)return!1;var f=b.getBindingByName(a);return f.tree===e.tree?!1:!0},newNameFromOrig:function(a,b){var c;return this.needsRename_(a)?(c=a+this.idGenerator_.generateUniqueIdentifier(),b.push(new O(a,c))):(this.usedVars_[a]=!0,c=a),c},transformFunctionBody:function(a){if(a!==this.rootTree_&&this.rootTree_){var b=new N(this.idGenerator_,this.reporter_,a,this.scopeBuilder_,this.scope_),c=b.transformAny(a);if(c===a)return a;a=new q(a.location,c.statements)}else if(a=$traceurRuntime.superGet(this,N.prototype,"transformFunctionBody").call(this,a),this.prependStatement_.length||this.blockRenames_.length){var d=L.apply(null,$traceurRuntime.spread([a.statements],this.prependStatement_));a=new q(a.location,d),a=this.flushRenames(a)}return a},transformScript:function(a){if(a!==this.rootTree_&&this.rootTree_){var b=new N(this.idGenerator_,this.reporter_,a,this.scopeBuilder_),c=b.transformAny(a);if(c===a)return a;a=new w(a.location,c.scriptItemList,a.moduleName)}else if(a=$traceurRuntime.superGet(this,N.prototype,"transformScript").call(this,a),this.prependStatement_.length||this.blockRenames_.length){var d=L.apply(null,$traceurRuntime.spread([a.scriptItemList],this.prependStatement_));a=new w(a.location,d,a.moduleName),a=this.flushRenames(a)}return a},transformModule:function(a){if(a!==this.rootTree_&&this.rootTree_){var b=new N(this.idGenerator_,this.reporter_,a,this.scopeBuilder_),c=b.transformAny(a);if(c===a)return a;a=new u(a.location,c.scriptItemList,a.moduleName)}else if(a=$traceurRuntime.superGet(this,N.prototype,"transformModule").call(this,a),this.prependStatement_.length||this.blockRenames_.length){var d=L.apply(null,$traceurRuntime.spread([a.scriptItemList],this.prependStatement_));a=new u(a.location,d,a.moduleName),a=this.flushRenames(a)}return a},transformVariableStatement:function(a){var b=this.transformAny(a.declarations);return b.type===d?b:b===a.declarations?a:new z(a.location,b)},transformVariableDeclarationList:function(a){if(a.declarationType===C)return $traceurRuntime.superGet(this,N.prototype,"transformVariableDeclarationList").call(this,a);this.maybeRename_=!this.scope_.isVarScope;var b=this.transformList(a.declarations);return this.maybeRename_=!1,new y(a.location,C,b)},transformVariableDeclaration:function(a){var b=this.maybeRename_,c=this.transformAny(a.lvalue);this.maybeRename_=!1;var d=this.transformAny(a.initializer);return this.maybeRename_=b,a.lvalue===c&&a.initializer===d?a:new x(a.location,c,a.typeAnnotation,d)},transformBindingIdentifier:function(a){if(this.maybeRename_){var b=a.getStringValue(),c=this.newNameFromOrig(b,this.blockRenames_);if(b===c)return a;var d=new j(a.location,c);return this.scope_.renameBinding(b,d,C,this.reporter_),d}return $traceurRuntime.superGet(this,N.prototype,"transformBindingIdentifier").call(this,a)},transformBindingElement:function(a){var b=this.maybeRename_,c=this.inObjectPattern_,d=this.transformAny(a.binding);this.maybeRename_=!1,this.inObjectPattern_=!1;var f=this.transformAny(a.initializer);if(this.maybeRename_=b,this.inObjectPattern_=c,a.binding===d&&a.initializer===f)return a;var g=new i(a.location,d,f);return this.inObjectPattern_&&a.binding!==d&&a.binding.type===e?new v(a.location,new t(a.location,a.binding.identifierToken),g):g},transformObjectPattern:function(a){var b=this.inObjectPattern_;this.inObjectPattern_=!0;var c=$traceurRuntime.superGet(this,N.prototype,"transformObjectPattern").call(this,a);return this.inObjectPattern_=b,c},transformObjectPatternField:function(a){var b=this.transformAny(a.name);this.inObjectPattern_=!1;var c=this.transformAny(a.element);return this.inObjectPattern_=!0,a.name===b&&a.element===c?a:new v(a.location,b,c)},transformBlock:function(a){var b=this.pushScope(a);return a=$traceurRuntime.superGet(this,N.prototype,"transformBlock").call(this,a),this.prependBlockStatement_.length&&(a=new k(a.location,L.apply(null,$traceurRuntime.spread([a.statements],this.prependBlockStatement_))),this.prependBlockStatement_=[]),a=this.flushRenames(a),this.popScope(b),a},transformCatch:function(a){var b=this.pushScope(a),c=this.transformAny(a.binding),d=this.transformList(a.catchBody.statements);return(c!==a.binding||d!==a.catchBody.statements)&&(a=new l(a.location,c,new k(a.catchBody.location,d))),a=this.flushRenames(a),this.popScope(b),a},transformFunctionForScope_:function(a,b){var c=this.pushScope(b);return b=a(),b=this.flushRenames(b),this.popScope(c),b},transformGetAccessor:function(a){var b=this;return this.transformFunctionForScope_(function(){return $traceurRuntime.superGet(b,N.prototype,"transformGetAccessor").call(b,a)},a)},transformSetAccessor:function(a){var b=this;return this.transformFunctionForScope_(function(){return $traceurRuntime.superGet(b,N.prototype,"transformSetAccessor").call(b,a)},a)},transformFunctionExpression:function(a){var b=this;return this.transformFunctionForScope_(function(){return $traceurRuntime.superGet(b,N.prototype,"transformFunctionExpression").call(b,a)},a)},transformFunctionDeclaration:function(a){var b=this;if(!this.scope_.isVarScope){var c=a.name.getStringValue(),d=this.newNameFromOrig(c,this.blockRenames_),e=new r(a.location,null,a.functionKind,a.parameterList,a.typeAnnotation,a.annotations,a.body);this.revisitTreeForScopes(e),e=this.transformAny(e);var f=E(d),g=new z(a.location,new y(a.location,C,[new x(a.location,f,null,e)]));return this.scope_.renameBinding(c,f,C,this.reporter_),this.prependBlockStatement_.push(g),new h(null,[])}return this.transformFunctionForScope_(function(){return $traceurRuntime.superGet(b,N.prototype,"transformFunctionDeclaration").call(b,a)},a)},transformLoop_:function(b,c,d){var e,g,j=this;c.initializer&&c.initializer.type===f&&c.initializer.declarationType!==C&&(g=!0),g&&(e=this.pushScope(c));var k=new P(c,this.scopeBuilder_);if(k.visitAny(c),k.found){var l=[],m=[],n=[],o=null;c.initializer&&c.initializer.type===f&&c.initializer.declarationType!==C?(o=new y(null,C,c.initializer.declarations.map(function(a){var b=j.getVariableName_(a),c=j.newNameFromOrig(b,n);m.push(F(c)),l.push(new p(null,new i(null,E(b),null),null,[]));var d=E(c);return j.scope_.renameBinding(b,d,C,j.reporter_),new x(null,d,null,a.initializer)})),o=a(n,o)):o=this.transformAny(c.initializer);var q=this.labelledLoops_.get(c),r=J.createIIFE(this.idGenerator_,c.body,l,m,function(){return q=q||j.idGenerator_.generateUniqueIdentifier()});c=d(o,n,r.loopBody),q&&(c=new s(c.location,G(q),c)),c=new h(c.location,[r.variableStatements,c]),this.revisitTreeForScopes(c),c=this.transformAny(c)}else{if(!g)return b(c);var n=[],o=new y(null,C,c.initializer.declarations.map(function(a){var b=j.getVariableName_(a),c=j.newNameFromOrig(b,n),d=E(c);return j.scope_.renameBinding(b,d,C,j.reporter_),new x(null,d,null,a.initializer)}));o=a(n,o),c=d(o,n,a(n,c.body)),this.revisitTreeForScopes(c),c=b(c)}return g&&(c=this.flushRenames(c),this.popScope(e)),c},transformForInStatement:function(b){var c=this;return this.transformLoop_(function(a){return $traceurRuntime.superGet(c,N.prototype,"transformForInStatement").call(c,a)},b,function(c,d,e){return new n(b.location,c,a(d,b.collection),e)})},transformForStatement:function(b){var c=this;return this.transformLoop_(function(a){return $traceurRuntime.superGet(c,N.prototype,"transformForStatement").call(c,a)},b,function(c,d,e){return new o(b.location,c,a(d,b.condition),a(d,b.increment),e)})},transformWhileStatement:function(b){var c=this;return this.transformLoop_(function(a){return $traceurRuntime.superGet(c,N.prototype,"transformWhileStatement").call(c,a)},b,function(c,d,e){return new A(b.location,a(d,b.condition),e)})},transformDoWhileStatement:function(b){var c=this;return this.transformLoop_(function(a){return $traceurRuntime.superGet(c,N.prototype,"transformDoWhileStatement").call(c,a)},b,function(c,d,e){return new m(b.location,e,a(d,b.condition))})},transformLabelledStatement:function(a){if(a.statement.isIterationStatement()){this.labelledLoops_.set(a.statement,a.name.value);var b=this.transformAny(a.statement);return b.isStatement()?b===a.statement?a:new s(a.location,a.name,b):b}return $traceurRuntime.superGet(this,N.prototype,"transformLabelledStatement").call(this,a)}},{},B);var O=function(a,b){this.oldName=a,this.newName=b};$traceurRuntime.createClass(O,{},{});var P=function(a,b){$traceurRuntime.superConstructor(Q).call(this),this.scopeBuilder_=b,this.topScope_=b.getScopeForTree(a)||b.getScopeForTree(a.body),this.outOfScope_=null,this.acceptLoop_=a.isIterationStatement()},Q=P;return $traceurRuntime.createClass(P,{visitForInStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,Q.prototype,"visitForInStatement").call(b,a)})},visitForStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,Q.prototype,"visitForStatement").call(b,a)})},visitWhileStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,Q.prototype,"visitWhileStatement").call(b,a)})},visitDoWhileStatement:function(a){var b=this;this.visitLoop_(a,function(){return $traceurRuntime.superGet(b,Q.prototype,"visitDoWhileStatement").call(b,a)})},visitLoop_:function(a,b){this.acceptLoop_?this.acceptLoop_=!1:this.outOfScope_||(this.outOfScope_=this.scopeBuilder_.getScopeForTree(a)||this.scopeBuilder_.getScopeForTree(a.body)),b()},visitFunctionDeclaration:function(a){this.visitFunction_(a)},visitFunctionExpression:function(a){this.visitFunction_(a)},visitSetAccessor:function(a){this.visitFunction_(a)},visitGetAccessor:function(a){this.visitFunction_(a)},visitPropertyMethodAssignment:function(a){this.visitFunction_(a)},visitArrowFunctionExpression:function(a){this.visitFunction_(a)},visitFunction_:function(a){var b=this;this.found=new H(a,function(c,d){d=b.scopeBuilder_.getScopeForTree(d);var e=b.outOfScope_||b.scopeBuilder_.getScopeForTree(a);if(d.hasLexicalBindingName(c))return!1;for(;d!==e&&(d=d.parent);)if(d.hasLexicalBindingName(c))return!1;for(;e=e.parent;){if(e.hasLexicalBindingName(c))return!0;if(e===b.topScope_)break}return!1}).found}},{},I),{get BlockBindingTransformer(){return M}}}),System.registerModule("traceur@0.0.79/src/codegeneration/MakeStrictTransformer.js",[],function(){"use strict";function a(a){return $traceurRuntime.spread([f()],a)}var b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),c=b.FunctionBody,d=b.Script,e=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,f=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js").createUseStrictDirective,g=System.get("traceur@0.0.79/src/semantics/util.js").hasUseStrict,h=function(){$traceurRuntime.superConstructor(i).apply(this,arguments)},i=h;return $traceurRuntime.createClass(h,{transformScript:function(b){return g(b.scriptItemList)?b:new d(b.location,a(b.scriptItemList))},transformFunctionBody:function(b){return g(b.statements)?b:new c(b.location,a(b.statements))}},{transformTree:function(a){return(new i).transformAny(a)}},e),{get MakeStrictTransformer(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/assignmentOperatorToBinaryOperator.js",[],function(){"use strict";function a(a){switch(a){case v:return u;case x:return w;case t:return s;case n:return m;case p:return o;case l:return k;case j:return i;case r:return q;case z:return y;case d:return c;case h:return g;case f:return e;default:throw Error("unreachable")}}var b=System.get("traceur@0.0.79/src/syntax/TokenType.js"),c=b.AMPERSAND,d=b.AMPERSAND_EQUAL,e=b.BAR,f=b.BAR_EQUAL,g=b.CARET,h=b.CARET_EQUAL,i=b.LEFT_SHIFT,j=b.LEFT_SHIFT_EQUAL,k=b.MINUS,l=b.MINUS_EQUAL,m=b.PERCENT,n=b.PERCENT_EQUAL,o=b.PLUS,p=b.PLUS_EQUAL,q=b.RIGHT_SHIFT,r=b.RIGHT_SHIFT_EQUAL,s=b.SLASH,t=b.SLASH_EQUAL,u=b.STAR,v=b.STAR_EQUAL,w=b.STAR_STAR,x=b.STAR_STAR_EQUAL,y=b.UNSIGNED_RIGHT_SHIFT,z=b.UNSIGNED_RIGHT_SHIFT_EQUAL,A=a;return{get default(){return A}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ExplodeExpressionTransformer.js",[],function(){"use strict";function a(a){return a.type===w?a.expressions[a.expressions.length-1]:a}function b(a){return a.type===w?a.expressions.slice(0,-1):[]}var c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,d=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),e=d.createAssignmentExpression,f=d.createCommaExpression,g=d.createIdentifierExpression,h=d.createMemberExpression,i=d.createNumberLiteral,j=d.createOperatorToken,k=d.createParenExpression,l=System.get("traceur@0.0.79/src/syntax/TokenType.js"),m=l.AND,n=l.EQUAL,o=l.MINUS,p=l.MINUS_EQUAL,q=l.MINUS_MINUS,r=l.OR,s=l.PLUS,t=l.PLUS_EQUAL,u=l.PLUS_PLUS,v=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),w=v.COMMA_EXPRESSION,x=v.IDENTIFIER_EXPRESSION,y=v.MEMBER_EXPRESSION,z=v.MEMBER_LOOKUP_EXPRESSION,A=v.PROPERTY_NAME_ASSIGNMENT,B=v.SPREAD_EXPRESSION,C=v.TEMPLATE_LITERAL_PORTION,D=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),E=D.ArgumentList,F=D.ArrayLiteralExpression,G=D.AwaitExpression,H=D.BinaryExpression,I=D.CallExpression,J=D.ConditionalExpression,K=D.MemberExpression,L=D.MemberLookupExpression,M=D.NewExpression,N=D.ObjectLiteralExpression,O=D.PropertyNameAssignment,P=D.SpreadExpression,Q=D.TemplateLiteralExpression,R=D.TemplateSubstitution,S=D.UnaryExpression,T=D.YieldExpression,U=System.get("traceur@0.0.79/src/util/assert.js").assert,V=System.get("traceur@0.0.79/src/codegeneration/assignmentOperatorToBinaryOperator.js").default,W=function(a){this.tempVar=a,this.expressions=[]};$traceurRuntime.createClass(W,{add:function(a){var c;return a.type===w&&(c=this.expressions).push.apply(c,$traceurRuntime.spread(b(a))),this},build:function(a){var b=this.tempVar;return this.expressions.push(e(b,a),b),f(this.expressions)}},{});var X=function(a){$traceurRuntime.superConstructor(Y).call(this),this.tempVarTransformer_=a},Y=X;return $traceurRuntime.createClass(X,{addTempVar:function(){var a=this.tempVarTransformer_.addTempVar();return g(a)},transformUnaryExpression:function(c){if(c.operator.type==u)return this.transformUnaryNumeric(c,t);if(c.operator.type==q)return this.transformUnaryNumeric(c,p);
var d=this.transformAny(c.operand);if(d===c.operand)return c;var e=$traceurRuntime.spread(b(d),[new S(c.location,c.operator,a(d))]);return f(e)},transformUnaryNumeric:function(a,b){return this.transformAny(new H(a.location,a.operand,j(b),i(1)))},transformPostfixExpression:function(a){if(a.operand.type===y)return this.transformPostfixMemberExpression(a);if(a.operand.type===z)return this.transformPostfixMemberLookupExpression(a);U(a.operand.type===x);var b=a.operand,c=this.addTempVar(),d=a.operator.type===u?s:o,g=[e(c,b),e(b,new H(a.location,c,j(d),i(1))),c];return f(g)},transformPostfixMemberExpression:function(c){var d=c.operand.memberName,g=this.transformAny(c.operand.operand),h=this.addTempVar(),k=new K(c.operand.location,a(g),d),l=c.operator.type===u?s:o,m=$traceurRuntime.spread(b(g),[e(h,k),e(k,new H(c.location,h,j(l),i(1))),h]);return f(m)},transformPostfixMemberLookupExpression:function(c){var d=this.transformAny(c.operand.memberExpression),g=this.transformAny(c.operand.operand),h=this.addTempVar(),k=new L(null,a(g),a(d)),l=c.operator.type===u?s:o,m=$traceurRuntime.spread(b(g),b(d),[e(h,k),e(k,new H(c.location,h,j(l),i(1))),h]);return f(m)},transformYieldExpression:function(b){var c=this.transformAny(b.expression);return this.createCommaExpressionBuilder().add(c).build(new T(b.location,a(c),b.isYieldFor))},transformAwaitExpression:function(b){var c=this.transformAny(b.expression);return this.createCommaExpressionBuilder().add(c).build(new G(b.location,a(c)))},transformParenExpression:function(b){var c=this.transformAny(b.expression);if(c===b.expression)return b;var d=a(c);return d.type===x?c:this.createCommaExpressionBuilder().add(c).build(d)},transformCommaExpression:function(b){var c=this.transformList(b.expressions);if(c===b.expressions)return b;for(var d=new W(null),e=0;e<c.length;e++)d.add(c[e]);return f($traceurRuntime.spread(d.expressions,[a(c[c.length-1])]))},transformMemberExpression:function(b){var c=this.transformAny(b.operand);return this.createCommaExpressionBuilder().add(c).build(new K(b.location,a(c),b.memberName))},transformMemberLookupExpression:function(b){var c=this.transformAny(b.operand),d=this.transformAny(b.memberExpression);return this.createCommaExpressionBuilder().add(c).add(d).build(new L(b.location,a(c),a(d)))},transformBinaryExpression:function(c){if(c.operator.isAssignmentOperator())return this.transformAssignmentExpression(c);var d=this.transformAny(c.left),e=this.transformAny(c.right);if(d===c.left&&e===c.right)return c;if(c.operator.type===r)return this.transformOr(d,e);if(c.operator.type===m)return this.transformAnd(d,e);var g=$traceurRuntime.spread(b(d),b(e),[new H(c.location,a(d),c.operator,a(e))]);return f(g)},transformAssignmentExpression:function(c){var d=c.left;if(d.type===y)return this.transformAssignMemberExpression(c);if(d.type===z)return this.transformAssignMemberLookupExpression(c);if(U(c.left.type===x),c.operator.type===n){var d=this.transformAny(d),g=this.transformAny(c.right),h=$traceurRuntime.spread(b(g),[e(d,a(g)),a(g)]);return f(h)}var g=this.transformAny(c.right),i=this.addTempVar(),k=j(V(c.operator.type)),h=$traceurRuntime.spread(b(g),[e(i,new H(c.location,d,k,a(g))),e(d,i),i]);return f(h)},transformAssignMemberExpression:function(c){var d=c.left;if(c.operator.type===n){var g=this.transformAny(d.operand),h=this.transformAny(c.right),i=$traceurRuntime.spread(b(g),b(h),[new H(c.location,new K(d.location,a(g),d.memberName),c.operator,a(h)),a(h)]);return f(i)}var g=this.transformAny(d.operand),h=this.transformAny(c.right),k=this.addTempVar(),l=new K(d.location,a(g),d.memberName),m=this.addTempVar(),o=j(V(c.operator.type)),i=$traceurRuntime.spread(b(g),b(h),[e(k,l),e(m,new H(c.location,k,o,a(h))),e(l,m),m]);return f(i)},transformAssignMemberLookupExpression:function(c){var d=c.left;if(c.operator.type===n){var g=this.transformAny(d.operand),h=this.transformAny(d.memberExpression),i=this.transformAny(c.right),k=$traceurRuntime.spread(b(g),b(h),b(i),[new H(c.location,new L(d.location,a(g),a(h)),c.operator,a(i)),a(i)]);return f(k)}var g=this.transformAny(d.operand),h=this.transformAny(d.memberExpression),i=this.transformAny(c.right),l=this.addTempVar(),m=new L(d.location,a(g),a(h)),o=this.addTempVar(),p=j(V(c.operator.type)),k=$traceurRuntime.spread(b(g),b(h),b(i),[e(l,m),e(o,new H(c.location,l,p,a(i))),e(m,o),o]);return f(k)},transformArrayLiteralExpression:function(b){var c=this.transformList(b.elements);if(c===b.elements)return b;for(var d=this.createCommaExpressionBuilder(),e=[],f=0;f<c.length;f++)d.add(c[f]),e.push(a(c[f]));return d.build(new F(b.location,e))},transformObjectLiteralExpression:function(b){var c=this.transformList(b.propertyNameAndValues);if(c===b.propertyNameAndValues)return b;for(var d=this.createCommaExpressionBuilder(),e=[],f=0;f<c.length;f++)c[f].type===A?(d.add(c[f].value),e.push(new O(c[f].location,c[f].name,a(c[f].value)))):e.push(c[f]);return d.build(new N(b.location,e))},transformTemplateLiteralExpression:function(b){var c=this.transformAny(b.operand),d=this.transformList(b.elements);if(!c&&c===b.operand&&d===b.elements)return b;var e=this.createCommaExpressionBuilder();c&&e.add(c);for(var f=[],g=0;g<d.length;g++)if(d[g].type===C)f.push(d[g]);else{var h=d[g].expression;e.add(h);var i=a(h);f.push(new R(h.location,i))}return e.build(new Q(b.location,c&&a(c),f))},transformCallExpression:function(a){return a.operand.type===y?this.transformCallMemberExpression(a):a.operand.type===z?this.transformCallMemberLookupExpression(a):this.transformCallAndNew_(a,I)},transformNewExpression:function(a){return this.transformCallAndNew_(a,M)},transformCallAndNew_:function(b,c){var d=this.transformAny(b.operand),e=this.transformAny(b.args),f=this.createCommaExpressionBuilder().add(d),g=[];return e.args.forEach(function(b){f.add(b),g.push(a(b))}),f.build(new c(b.location,a(d),new E(e.location,g)))},transformCallMemberExpression:function(c){var d=c.operand.memberName,g=this.transformAny(c.operand.operand),i=this.addTempVar(),j=new K(c.operand.location,a(g),d),k=this.transformAny(c.args),l=$traceurRuntime.spread(b(g),[e(i,j)]),m=[a(g)];k.args.forEach(function(c){var d;(d=l).push.apply(d,$traceurRuntime.spread(b(c))),m.push(a(c))});var n=new I(c.location,h(i,"call"),new E(k.location,m)),o=this.addTempVar();return l.push(e(o,n),o),f(l)},transformCallMemberLookupExpression:function(c){var d=this.transformAny(c.operand.operand),g=this.transformAny(c.operand.memberExpression),i=this.addTempVar(),j=new L(c.operand.location,a(d),a(g)),k=this.transformAny(c.args),l=$traceurRuntime.spread(b(d),b(g),[e(i,j)]),m=[a(d)];k.args.forEach(function(d,e){var f;(f=l).push.apply(f,$traceurRuntime.spread(b(d)));var g=a(d);c.args.args[e].type===B&&(g=new P(d.location,g)),m.push(g)});var n=new I(c.location,h(i,"call"),new E(k.location,m)),o=this.addTempVar();return l.push(e(o,n),o),f(l)},transformConditionalExpression:function(c){var d=this.transformAny(c.condition),g=this.transformAny(c.left),h=this.transformAny(c.right);if(d===c.condition&&g===c.left&&h===c.right)return c;var i=this.addTempVar(),j=f($traceurRuntime.spread(b(g),[e(i,a(g))])),l=f($traceurRuntime.spread(b(h),[e(i,a(h))])),m=$traceurRuntime.spread(b(d),[new J(c.location,a(d),k(j),k(l)),i]);return f(m)},transformOr:function(c,d){var g=this.addTempVar(),h=f([e(g,a(c))]),i=f($traceurRuntime.spread(b(d),[e(g,a(d))])),j=$traceurRuntime.spread(b(c),[new J(c.location,a(c),k(h),k(i)),g]);return f(j)},transformAnd:function(c,d){var g=this.addTempVar(),h=f($traceurRuntime.spread(b(d),[e(g,a(d))])),i=f([e(g,a(c))]),j=$traceurRuntime.spread(b(c),[new J(c.location,a(c),k(h),k(i)),g]);return f(j)},transformSpreadExpression:function(c){var d=this.transformAny(c.expression);if(d===c.expression)return c;var e=a(d);e.type!==B&&(e=new P(e.location,e));var g=$traceurRuntime.spread(b(d),[e]);return f(g)},createCommaExpressionBuilder:function(){return new W(this.addTempVar())}},{},c),{get ExplodeExpressionTransformer(){return X}}}),System.registerModule("traceur@0.0.79/src/codegeneration/SuperTransformer.js",[],function(){"use strict";function a(a){return a.type!==k&&a.type!==l?!1:a.operand.type===m}var b=Object.freeze(Object.defineProperties(["$traceurRuntime.superConstructor(",").call(",")"],{raw:{value:Object.freeze(["$traceurRuntime.superConstructor(",").call(",")"])}})),c=Object.freeze(Object.defineProperties(["",".call(",")"],{raw:{value:Object.freeze(["",".call(",")"])}})),d=Object.freeze(Object.defineProperties(["$traceurRuntime.superGet(",", ",", ",")"],{raw:{value:Object.freeze(["$traceurRuntime.superGet(",", ",", ",")"])}})),e=Object.freeze(Object.defineProperties(["$traceurRuntime.superSet(",", ",", ",",\n ",")"],{raw:{value:Object.freeze(["$traceurRuntime.superSet(",", ",", ",",\n ",")"])}})),f=System.get("traceur@0.0.79/src/codegeneration/ExplodeExpressionTransformer.js").ExplodeExpressionTransformer,g=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),h=g.FunctionDeclaration,i=g.FunctionExpression,j=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),k=j.MEMBER_EXPRESSION,l=j.MEMBER_LOOKUP_EXPRESSION,m=j.SUPER_EXPRESSION,n=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,o=System.get("traceur@0.0.79/src/syntax/TokenType.js"),p=o.EQUAL,q=o.MINUS_MINUS,r=o.PLUS_PLUS,s=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),t=s.createArgumentList,u=s.createIdentifierExpression,v=s.createParenExpression,w=s.createStringLiteral,x=s.createThisExpression,y=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,z=function(){$traceurRuntime.superConstructor(A).apply(this,arguments)},A=z;$traceurRuntime.createClass(z,{transformArrowFunctionExpression:function(a){return a},transformClassExpression:function(a){return a},transformFunctionBody:function(a){return a}},{},f);var B=function(a,b,c,d){this.tempVarTransformer_=a,this.protoName_=b,this.internalName_=d,this.superCount_=0,this.thisVar_=u(c),this.inNestedFunc_=0,this.nestedSuperCount_=0},C=B;return $traceurRuntime.createClass(B,{get hasSuper(){return this.superCount_>0},get nestedSuper(){return this.nestedSuperCount_>0},transformFunctionDeclaration:function(a){return this.transformFunction_(a,h)},transformFunctionExpression:function(a){return this.transformFunction_(a,i)},transformFunction_:function(a,b){var c=this.superCount_;this.inNestedFunc_++;var d=b===i?$traceurRuntime.superGet(this,C.prototype,"transformFunctionExpression").call(this,a):$traceurRuntime.superGet(this,C.prototype,"transformFunctionDeclaration").call(this,a);return this.inNestedFunc_--,c!==this.superCount_&&(this.nestedSuperCount_+=this.superCount_-c),d},transformGetAccessor:function(a){return a},transformSetAccessor:function(a){return a},transformPropertyMethodAssignMent:function(a){return a},transformCallExpression:function(b){if(b.operand.type==m)return this.superCount_++,this.createSuperCall_(b);if(a(b.operand)){this.superCount_++;var c;return c=b.operand.type==k?b.operand.memberName.value:b.operand.memberExpression,this.createSuperCallMethod_(c,b)}return $traceurRuntime.superGet(this,C.prototype,"transformCallExpression").call(this,b)},createSuperCall_:function(a){var c=this.inNestedFunc_?this.thisVar_:x(),d=t($traceurRuntime.spread([c],a.args.args));return y(b,this.internalName_,d)},createSuperCallMethod_:function(a,b){var d=this.inNestedFunc_?this.thisVar_:x(),e=this.transformMemberShared_(a),f=t($traceurRuntime.spread([d],b.args.args));return y(c,e,f)},transformMemberShared_:function(a){var b=this.inNestedFunc_?this.thisVar_:x();return y(d,b,this.protoName_,a)},transformMemberExpression:function(a){return a.operand.type===m?(this.superCount_++,this.transformMemberShared_(a.memberName.value)):$traceurRuntime.superGet(this,C.prototype,"transformMemberExpression").call(this,a)},transformMemberLookupExpression:function(a){return a.operand.type===m?this.transformMemberShared_(a.memberExpression):$traceurRuntime.superGet(this,C.prototype,"transformMemberLookupExpression").call(this,a)},transformBinaryExpression:function(b){if(b.operator.isAssignmentOperator()&&a(b.left)){if(b.operator.type!==p){var c=new z(this.tempVarTransformer_).transformAny(b);return this.transformAny(v(c))}this.superCount_++;var d=b.left.type===l?b.left.memberExpression:w(b.left.memberName.value),f=this.inNestedFunc_?this.thisVar_:x(),g=this.transformAny(b.right);return y(e,f,this.protoName_,d,g)}return $traceurRuntime.superGet(this,C.prototype,"transformBinaryExpression").call(this,b)},transformUnaryExpression:function(a){var b=this.transformIncrementDecrement_(a);return b?b:$traceurRuntime.superGet(this,C.prototype,"transformUnaryExpression").call(this,a)},transformPostfixExpression:function(a){var b=this.transformIncrementDecrement_(a);return b?b:$traceurRuntime.superGet(this,C.prototype,"transformPostfixExpression").call(this,a)},transformIncrementDecrement_:function(b){var c=b.operator,d=b.operand;if((c.type===r||c.type===q)&&a(d)){var e=new z(this.tempVarTransformer_).transformAny(b);return e!==b&&(e=v(e)),this.transformAny(e)}return null}},{},n),{get SuperTransformer(){return B}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ClassTransformer.js",[],function(){"use strict";function a(a,d,e,f){return f?M(b,a,d,e,f):M(c,a,d,e)}var b=Object.freeze(Object.defineProperties(["($traceurRuntime.createClass)(",", ",", ",",\n ",")"],{raw:{value:Object.freeze(["($traceurRuntime.createClass)(",", ",", ",",\n ",")"])}})),c=Object.freeze(Object.defineProperties(["($traceurRuntime.createClass)(",", ",", ",")"],{raw:{value:Object.freeze(["($traceurRuntime.createClass)(",", ",", ",")"])}})),d=Object.freeze(Object.defineProperties(["var "," = ",""],{raw:{value:Object.freeze(["var "," = ",""])}})),e=Object.freeze(Object.defineProperties(["var "," = ",""],{raw:{value:Object.freeze(["var "," = ",""])}})),f=Object.freeze(Object.defineProperties(["function($__super) {\n var "," = ",";\n return ($traceurRuntime.createClass)(",", ",",\n ",", $__super);\n }(",")"],{raw:{value:Object.freeze(["function($__super) {\n var "," = ",";\n return ($traceurRuntime.createClass)(",", ",",\n ",", $__super);\n }(",")"])}})),g=Object.freeze(Object.defineProperties(["function() {\n var "," = ",";\n return ($traceurRuntime.createClass)(",", ",",\n ",");\n }()"],{raw:{value:Object.freeze(["function() {\n var "," = ",";\n return ($traceurRuntime.createClass)(",", ",",\n ",");\n }()"])}})),h=Object.freeze(Object.defineProperties(["$traceurRuntime.superConstructor(\n ",").apply(this, arguments)"],{raw:{value:Object.freeze(["$traceurRuntime.superConstructor(\n ",").apply(this, arguments)"])}})),i=System.get("traceur@0.0.79/src/codegeneration/AlphaRenamer.js").AlphaRenamer,j=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").CONSTRUCTOR,k=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),l=k.AnonBlock,m=k.ExportDeclaration,n=k.FunctionExpression,o=k.GetAccessor,p=k.PropertyMethodAssignment,q=k.SetAccessor,r=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),s=r.GET_ACCESSOR,t=r.PROPERTY_METHOD_ASSIGNMENT,u=r.PROPERTY_VARIABLE_DECLARATION,v=r.SET_ACCESSOR,w=System.get("traceur@0.0.79/src/codegeneration/SuperTransformer.js").SuperTransformer,x=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,y=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,z=System.get("traceur@0.0.79/src/codegeneration/MakeStrictTransformer.js").MakeStrictTransformer,A=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),B=A.createEmptyParameterList,C=A.createExpressionStatement,D=A.createFunctionBody,E=A.createIdentifierExpression,F=A.createMemberExpression,G=A.createObjectLiteralExpression,H=A.createParenExpression,I=A.createThisExpression,J=A.createVariableStatement,K=System.get("traceur@0.0.79/src/semantics/util.js").hasUseStrict,L=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),M=L.parseExpression,N=L.parseStatement,O=L.parseStatements,P=System.get("traceur@0.0.79/src/staticsemantics/PropName.js").propName,Q=function(a){$traceurRuntime.superConstructor(R).call(this,a),this.strictCount_=0,this.state_=null},R=Q;return $traceurRuntime.createClass(Q,{transformExportDeclaration:function(a){var b=$traceurRuntime.superGet(this,R.prototype,"transformExportDeclaration").call(this,a);if(b===a)return a;var c=b.declaration;if(c instanceof l){var d=$traceurRuntime.spread([new m(null,c.statements[0],[])],c.statements.slice(1));return new l(null,d)}return b},transformModule:function(a){return this.strictCount_=1,$traceurRuntime.superGet(this,R.prototype,"transformModule").call(this,a)},transformScript:function(a){return this.strictCount_=+K(a.scriptItemList),$traceurRuntime.superGet(this,R.prototype,"transformScript").call(this,a)},transformFunctionBody:function(a){var b=+K(a.statements);this.strictCount_+=b;var c=$traceurRuntime.superGet(this,R.prototype,"transformFunctionBody").call(this,a);return this.strictCount_-=b,c},makeStrict_:function(a){return this.strictCount_?a:z.transformTree(a)},transformClassElements_:function(a,b){var c=this,d=this.state_;this.state_={hasSuper:!1};var e,f,g=this.transformAny(a.superClass),h=!1,i=[],k=[];a.elements.forEach(function(a){var d,g;switch(a.isStatic?(d=k,g=b):(d=i,g=F(b,"prototype")),a.type){case s:d.push(c.transformGetAccessor_(a,g));break;case v:d.push(c.transformSetAccessor_(a,g));break;case t:var l=c.transformPropertyMethodAssignment_(a,g,b);a.isStatic||P(a)!==j?d.push(l):(h=!0,f=l.parameterList,e=l.body);break;case u:break;default:throw new Error("Unexpected class element: "+a.type)}});var l,m=G(i),o=G(k);l=h?new n(a.location,a.name,!1,f,null,[],e):this.getDefaultConstructor_(a,b);var p=this.state_;return this.state_=d,{func:l,superClass:g,object:m,staticObject:o,hasSuper:p.hasSuper}},transformClassDeclaration:function(b){var c=b.name.identifierToken,f=E("$"+c),g=i.rename(b,c.value,f.identifierToken.value),h=g!==b,b=g,j=this.transformClassElements_(b,f),k=j.func,m=j.hasSuper,n=j.object,o=j.staticObject,p=j.superClass,q=O(d,c,k),r=a(c,n,o,p);(m||h)&&q.push(N(e,f,c)),q.push(C(r));var s=new l(null,q);return this.makeStrict_(s)},transformClassExpression:function(b){this.pushTempScope();var c;c=b.name?b.name.identifierToken:E(this.getTempIdentifier());var d,e=this.transformClassElements_(b,c),h=e.func,i=e.hasSuper,j=e.object,k=e.staticObject,l=e.superClass;return d=i||b.name?l?M(f,c,h,c,j,k,l):M(g,c,h,c,j,k):a(h,j,k,l),this.popTempScope(),H(this.makeStrict_(d))},transformPropertyMethodAssignment_:function(a,b,c){var d=this.transformAny(a.parameterList),e=this.transformSuperInFunctionBody_(a.body,b,c);if(!a.isStatic&&d===a.parameterList&&e===a.body)return a;var f=!1;return new p(a.location,f,a.functionKind,a.name,d,a.typeAnnotation,a.annotations,e)},transformGetAccessor_:function(a,b){var c=this.transformSuperInFunctionBody_(a.body,b);return a.isStatic||c!==a.body?new o(a.location,!1,a.name,a.typeAnnotation,a.annotations,c):a},transformSetAccessor_:function(a,b){var c=this.transformAny(a.parameterList),d=this.transformSuperInFunctionBody_(a.body,b);return a.isStatic||d!==a.body?new q(a.location,!1,a.name,c,a.annotations,d):a},transformSuperInFunctionBody_:function(a,b,c){this.pushTempScope();var d=this.getTempIdentifier(),e=J(y,d,I()),f=new w(this,b,d,c),g=f.transformFunctionBody(this.transformFunctionBody(a));return f.hasSuper&&(this.state_.hasSuper=!0),this.popTempScope(),f.nestedSuper?D([e].concat(g.statements)):g},getDefaultConstructor_:function(a,b){var c,d=B();if(a.superClass){var e=N(h,b);c=D([e]),this.state_.hasSuper=!0}else c=D([]);return new n(a.location,a.name,!1,d,null,[],c)}},{},x),{get ClassTransformer(){return Q}}}),System.registerModule("traceur@0.0.79/src/codegeneration/CommonJsModuleTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["module.exports = function() {\n ","\n }.call(",");"],{raw:{value:Object.freeze(["module.exports = function() {\n ","\n }.call(",");"])}})),b=Object.freeze(Object.defineProperties(["Object.defineProperties(exports, ",");"],{raw:{value:Object.freeze(["Object.defineProperties(exports, ",");"])}})),c=Object.freeze(Object.defineProperties(["{get: ","}"],{raw:{value:Object.freeze(["{get: ","}"])}})),d=Object.freeze(Object.defineProperties(["{value: ","}"],{raw:{value:Object.freeze(["{value: ","}"])}})),e=Object.freeze(Object.defineProperties(["("," = require(","),\n "," && ",".__esModule && "," || {default: ","})"],{raw:{value:Object.freeze(["("," = require(","),\n "," && ",".__esModule && "," || {default: ","})"])}})),f=Object.freeze(Object.defineProperties(["__esModule: true"],{raw:{value:Object.freeze(["__esModule: true"])}})),g=System.get("traceur@0.0.79/src/codegeneration/ModuleTransformer.js").ModuleTransformer,h=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),i=h.GET_ACCESSOR,j=h.OBJECT_LITERAL_EXPRESSION,k=h.PROPERTY_NAME_ASSIGNMENT,l=h.RETURN_STATEMENT,m=System.get("traceur@0.0.79/src/util/assert.js").assert,n=System.get("traceur@0.0.79/src/codegeneration/globalThis.js").default,o=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),p=o.parseExpression,q=o.parsePropertyDefinition,r=o.parseStatement,s=o.parseStatements,t=System.get("traceur@0.0.79/src/codegeneration/scopeContainsThis.js").default,u=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),v=u.createEmptyParameterList,w=u.createFunctionExpression,x=u.createIdentifierExpression,y=u.createObjectLiteralExpression,z=u.createPropertyNameAssignment,A=u.createVariableStatement,B=u.createVariableDeclaration,C=u.createVariableDeclarationList,D=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,E=System.get("traceur@0.0.79/src/codegeneration/PrependStatements.js").prependStatements,F=function(a){$traceurRuntime.superConstructor(G).call(this,a),this.moduleVars_=[]},G=F;return $traceurRuntime.createClass(F,{moduleProlog:function(){var a=$traceurRuntime.superGet(this,G.prototype,"moduleProlog").call(this);if(this.moduleVars_.length){var b=A(C(D,this.moduleVars_.map(function(a){return B(a,null)})));a.push(b)}return a},wrapModule:function(c){var d=c.some(t);if(d)return s(a,c,n());var e=c[c.length-1];c=c.slice(0,-1),m(e.type===l);var f=e.expression;if(this.hasExports()){var g=this.transformObjectLiteralToDescriptors(f),h=r(b,g);c=E(c,h)}return c},transformObjectLiteralToDescriptors:function(a){m(a.type===j);var b=a.propertyNameAndValues.map(function(a){var b;switch(a.type){case i:var e=w(v(),a.body);b=p(c,e);break;case k:b=p(d,a.value);break;default:throw new Error("Unexpected property type "+a.type)}return z(a.name,b)});return y(b)},transformModuleSpecifier:function(a){var b=a.token.processedValue,c=this.getTempVarNameForModuleSpecifier(a);this.moduleVars_.push(c);var d=x(c);return p(e,d,b,d,d,d,d)},getExportProperties:function(){var a=$traceurRuntime.superGet(this,G.prototype,"getExportProperties").call(this);return this.exportVisitor_.hasExports()&&a.push(q(f)),a}},{},g),{get CommonJsModuleTransformer(){return F}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ParameterTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").FunctionBody,b=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,c=System.get("traceur@0.0.79/src/codegeneration/PrependStatements.js").prependStatements,d=[],e=function(){$traceurRuntime.superConstructor(f).apply(this,arguments)},f=e;return $traceurRuntime.createClass(e,{transformArrowFunctionExpression:function(a){return d.push([]),$traceurRuntime.superGet(this,f.prototype,"transformArrowFunctionExpression").call(this,a)},transformFunctionDeclaration:function(a){return d.push([]),$traceurRuntime.superGet(this,f.prototype,"transformFunctionDeclaration").call(this,a)},transformFunctionExpression:function(a){return d.push([]),$traceurRuntime.superGet(this,f.prototype,"transformFunctionExpression").call(this,a)},transformGetAccessor:function(a){return d.push([]),$traceurRuntime.superGet(this,f.prototype,"transformGetAccessor").call(this,a)},transformSetAccessor:function(a){return d.push([]),$traceurRuntime.superGet(this,f.prototype,"transformSetAccessor").call(this,a)},transformPropertyMethodAssignment:function(a){return d.push([]),$traceurRuntime.superGet(this,f.prototype,"transformPropertyMethodAssignment").call(this,a)},transformFunctionBody:function(b){var e=$traceurRuntime.superGet(this,f.prototype,"transformFunctionBody").call(this,b),g=d.pop();return g.length?(g=c.apply(null,$traceurRuntime.spread([e.statements],g)),new a(e.location,g)):e},get parameterStatements(){return d[d.length-1]}},{},b),{get ParameterTransformer(){return e}}}),System.registerModule("traceur@0.0.79/src/codegeneration/DefaultParametersTransformer.js",[],function(){"use strict";function a(a,b,e){var f,h=o(n(g),p(a));return f=null===e||c(e)||d(e)?h:m(l(h,q(i),s()),h,e),r(j,b,f)}var b=System.get("traceur@0.0.79/src/semantics/util.js"),c=b.isUndefined,d=b.isVoidExpression,e=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").FormalParameterList,f=System.get("traceur@0.0.79/src/codegeneration/ParameterTransformer.js").ParameterTransformer,g=System.get("traceur@0.0.79/src/syntax/PredefinedName.js").ARGUMENTS,h=System.get("traceur@0.0.79/src/syntax/TokenType.js"),i=h.NOT_EQUAL_EQUAL,j=h.VAR,k=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),l=k.createBinaryExpression,m=k.createConditionalExpression,n=k.createIdentifierExpression,o=k.createMemberLookupExpression,p=k.createNumberLiteral,q=k.createOperatorToken,r=k.createVariableStatement,s=k.createVoid0,t=function(){$traceurRuntime.superConstructor(u).apply(this,arguments)},u=t;return $traceurRuntime.createClass(t,{transformFormalParameterList:function(b){for(var c=[],d=!1,f=!1,g=0;g<b.parameters.length;g++){var h=this.transformAny(b.parameters[g]);h!==b.parameters[g]&&(d=!0),h.isRestParameter()||!h.parameter.initializer&&!f?c.push(h):(f=!0,d=!0,this.parameterStatements.push(a(g,h.parameter.binding,h.parameter.initializer)))}return d?new e(b.location,c):b},transformConstructorType:function(a){return a},transformFunctionType:function(a){return a}},{},f),{get DefaultParametersTransformer(){return t}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ExponentiationTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["Math.pow(",", ",")"],{raw:{value:Object.freeze(["Math.pow(",", ",")"])}})),b=System.get("traceur@0.0.79/src/codegeneration/ExplodeExpressionTransformer.js").ExplodeExpressionTransformer,c=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,d=System.get("traceur@0.0.79/src/syntax/TokenType.js"),e=d.STAR_STAR,f=d.STAR_STAR_EQUAL,g=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,h=function(){$traceurRuntime.superConstructor(i).apply(this,arguments)},i=h;return $traceurRuntime.createClass(h,{transformBinaryExpression:function(c){switch(c.operator.type){case e:var d=this.transformAny(c.left),h=this.transformAny(c.right);return g(a,d,h);case f:var j=new b(this).transformAny(c);return this.transformAny(j)}return $traceurRuntime.superGet(this,i.prototype,"transformBinaryExpression").call(this,c)}},{},c),{get ExponentiationTransformer(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ForOfTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties([""," = ",".value;"],{raw:{value:Object.freeze([""," = ",".value;"])}})),b=Object.freeze(Object.defineProperties(["\n for (var "," =\n ","[\n $traceurRuntime.toProperty(Symbol.iterator)](),\n ",";\n !("," = ",".next()).done; ) {\n ",";\n ",";\n }"],{raw:{value:Object.freeze(["\n for (var "," =\n ","[\n $traceurRuntime.toProperty(Symbol.iterator)](),\n ",";\n !("," = ",".next()).done; ) {\n ",";\n ",";\n }"])}})),c=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js").VARIABLE_DECLARATION_LIST,d=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,e=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),f=e.createIdentifierExpression,g=e.createMemberExpression,h=e.createVariableStatement,i=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,j=function(){$traceurRuntime.superConstructor(k).apply(this,arguments)},k=j;return $traceurRuntime.createClass(j,{transformForOfStatement:function(d){var e,j=$traceurRuntime.superGet(this,k.prototype,"transformForOfStatement").call(this,d),l=f(this.getTempIdentifier()),m=f(this.getTempIdentifier());return e=j.initializer.type===c?h(j.initializer.declarationType,j.initializer.declarations[0].lvalue,g(m,"value")):i(a,j.initializer,m),i(b,l,j.collection,m,m,l,e,j.body)}},{},d),{get ForOfTransformer(){return j}}}),System.registerModule("traceur@0.0.79/src/codegeneration/GeneratorComprehensionTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["yield ",""],{raw:{value:Object.freeze(["yield ",""])}})),b=System.get("traceur@0.0.79/src/codegeneration/ComprehensionTransformer.js").ComprehensionTransformer,c=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,d=function(){$traceurRuntime.superConstructor(e).apply(this,arguments)},e=d;return $traceurRuntime.createClass(d,{transformGeneratorComprehension:function(b){var d=this.transformAny(b.expression),e=c(a,d),f=!0;return this.transformComprehension(b,e,f)}},{},b),{get GeneratorComprehensionTransformer(){return d}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/State.js",[],function(){"use strict";function a(a,c){var e=a.finallyState;return[d(e),h(b,c)]}var b=Object.freeze(Object.defineProperties(["$ctx.finallyFallThrough = ",""],{raw:{value:Object.freeze(["$ctx.finallyFallThrough = ",""])}})),c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),d=c.createAssignStateStatement,e=c.createBreakStatement,f=c.createCaseClause,g=c.createNumberLiteral,h=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,i=function(a){this.id=a};return $traceurRuntime.createClass(i,{transformMachineState:function(a,b,c){return f(g(this.id),this.transform(a,b,c))},transformBreak:function(){return this},transformBreakOrContinue:function(){arguments[1],arguments[2];return this}},{}),i.START_STATE=0,i.INVALID_STATE=-1,i.END_STATE=-2,i.RETHROW_STATE=-3,i.generateJump=function(a,b){return $traceurRuntime.spread(i.generateAssignState(a,b),[e()])},i.generateAssignState=function(b,c){var e;return e=i.isFinallyExit(b,c)?a(b,c):[d(c)]},i.isFinallyExit=function(a,b){return null!=a&&a.tryStates.indexOf(b)<0},i.replaceStateList=function(a,b,c){for(var d=[],e=0;e<a.length;e++)d.push(i.replaceStateId(a[e],b,c));return d},i.replaceStateId=function(a,b,c){return a==b?c:a},i.replaceAllStates=function(a,b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e].replaceState(b,c));return d},{get State(){return i}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/TryState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b={CATCH:"catch",FINALLY:"finally"},c=function(a,b,c){this.kind=a,this.tryStates=b,this.nestedTrys=c};return $traceurRuntime.createClass(c,{replaceAllStates:function(b,c){return a.replaceStateList(this.tryStates,b,c)
},replaceNestedTrys:function(a,b){for(var c=[],d=0;d<this.nestedTrys.length;d++)c.push(this.nestedTrys[d].replaceState(a,b));return c}},{}),c.Kind=b,{get TryState(){return c}}}),System.registerModule("traceur@0.0.79/src/syntax/trees/StateMachine.js",[],function(){"use strict";function a(b,c,d){for(var e=0;e<d.length;e++){var f=d[e];if(f.kind==b)for(var g=0;g<f.tryStates.length;g++){var h=f.tryStates[g];c[h]=f}a(b,c,f.nestedTrys)}}function b(a,c){for(var d=0;d<a.length;d++){var e=a[d];e.kind==f.Kind.CATCH&&c.push(e),b(e.nestedTrys,c)}}var c=System.get("traceur@0.0.79/src/syntax/trees/ParseTree.js").ParseTree,d=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js").STATE_MACHINE,e=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,f=System.get("traceur@0.0.79/src/codegeneration/generator/TryState.js").TryState,g=function(a,b,c,d){this.location=null,this.startState=a,this.fallThroughState=b,this.states=c,this.exceptionBlocks=d},h=g;return $traceurRuntime.createClass(g,{get type(){return d},transform:function(a){return a.transformStateMachine(this)},visit:function(a){a.visitStateMachine(this)},getAllStateIDs:function(){for(var a=[],b=0;b<this.states.length;b++)a.push(this.states[b].id);return a},getEnclosingFinallyMap:function(){var b=Object.create(null);return a(f.Kind.FINALLY,b,this.exceptionBlocks),b},allCatchStates:function(){var a=[];return b(this.exceptionBlocks,a),a},replaceStateId:function(a,b){return new h(e.replaceStateId(this.startState,a,b),e.replaceStateId(this.fallThroughState,a,b),e.replaceAllStates(this.states,a,b),e.replaceAllStates(this.exceptionBlocks,a,b))},replaceStartState:function(a){return this.replaceStateId(this.startState,a)},replaceFallThroughState:function(a){return this.replaceStateId(this.fallThroughState,a)},append:function(a){for(var b=$traceurRuntime.spread(this.states),c=0;c<a.states.length;c++){var d=a.states[c];b.push(d.replaceState(a.startState,this.fallThroughState))}for(var e=$traceurRuntime.spread(this.exceptionBlocks),c=0;c<a.exceptionBlocks.length;c++){var f=a.exceptionBlocks[c];e.push(f.replaceState(a.startState,this.fallThroughState))}return new h(this.startState,a.fallThroughState,b,e)}},{},c),{get StateMachine(){return g}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/AwaitState.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["$ctx.finallyFallThrough = ",""],{raw:{value:Object.freeze(["$ctx.finallyFallThrough = ",""])}})),b=Object.freeze(Object.defineProperties(["Promise.resolve(",").then(\n $ctx.createCallback(","), $ctx.errback);\n return;"],{raw:{value:Object.freeze(["Promise.resolve(",").then(\n $ctx.createCallback(","), $ctx.errback);\n return;"])}})),c=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,d=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatements,e=function(a,b,c){$traceurRuntime.superConstructor(f).call(this,a),this.callbackState=b,this.expression=c},f=e;return $traceurRuntime.createClass(e,{replaceState:function(a,b){return new f(c.replaceStateId(this.id,a,b),c.replaceStateId(this.callbackState,a,b),this.expression)},transform:function(e){var f,g,h;return c.isFinallyExit(e,this.callbackState)?(g=e.finallyState,h=d(a,this.callbackState)):(g=this.callbackState,h=[]),(f=h).push.apply(f,$traceurRuntime.spread(d(b,this.expression,g))),h}},{},c),{get AwaitState(){return e}}}),System.registerModule("traceur@0.0.79/src/codegeneration/HoistVariablesTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),b=a.AnonBlock,c=a.Catch,d=a.FunctionBody,e=a.ForInStatement,f=a.ForOfStatement,g=a.ForStatement,h=a.VariableDeclarationList,i=a.VariableStatement,j=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),k=j.OBJECT_PATTERN,l=j.VARIABLE_DECLARATION_LIST,m=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,n=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,o=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),p=o.createAssignmentExpression,q=o.createCommaExpression,r=o.createExpressionStatement,s=o.createIdentifierExpression,t=o.createParenExpression,u=o.createVariableDeclaration,v=System.get("traceur@0.0.79/src/codegeneration/PrependStatements.js").prependStatements,w=function(){var a=void 0!==arguments[0]?arguments[0]:!1;$traceurRuntime.superConstructor(x).call(this),this.hoistedFunctions_=[],this.hoistedVariables_=Object.create(null),this.keepBindingIdentifiers_=!1,this.inBlockOrFor_=!1,this.shouldHoistFunctions_=a},x=w;$traceurRuntime.createClass(w,{transformFunctionBody:function(a){var b=this.transformList(a.statements);return b===a.statements?a:(b=this.prependVariables(b),b=this.prependFunctions(b),new d(a.location,b))},addVariable:function(a){this.hoistedVariables_[a]=!0},addFunctionDeclaration:function(a){this.hoistedFunctions_.push(a)},hasVariables:function(){for(var a in this.hoistedVariables_)return!0;return!1},hasFunctions:function(){return this.hoistedFunctions_.length>0},getVariableNames:function(){return Object.keys(this.hoistedVariables_)},getVariableStatement:function(){if(!this.hasVariables())return new b(null,[]);var a=this.getVariableNames().map(function(a){return u(a,null)});return new i(null,new h(null,n,a))},getFunctions:function(){return this.hoistedFunctions_},prependVariables:function(a){return this.hasVariables()?v(a,this.getVariableStatement()):a},prependFunctions:function(a){return this.hasFunctions()?v(a,this.getFunctionDeclarations()):a},transformVariableStatement:function(a){var c=this.transformAny(a.declarations);return c==a.declarations?a:null===c?new b(null,[]):c.type===l?new i(a.location,c):r(c)},transformVariableDeclaration:function(a){var b=this.transformAny(a.lvalue),c=this.transformAny(a.initializer);if(c){var d=p(b,c);return b.type===k&&(d=t(d)),d}return null},transformObjectPattern:function(a){var b=this.keepBindingIdentifiers_;this.keepBindingIdentifiers_=!0;var c=$traceurRuntime.superGet(this,x.prototype,"transformObjectPattern").call(this,a);return this.keepBindingIdentifiers_=b,c},transformArrayPattern:function(a){var b=this.keepBindingIdentifiers_;this.keepBindingIdentifiers_=!0;var c=$traceurRuntime.superGet(this,x.prototype,"transformArrayPattern").call(this,a);return this.keepBindingIdentifiers_=b,c},transformBindingIdentifier:function(a){var b=a.identifierToken;return this.addVariable(b.value),this.keepBindingIdentifiers_?a:s(b)},transformVariableDeclarationList:function(a){if(a.declarationType===n||!this.inBlockOrFor_){var b=this.transformList(a.declarations);return b=b.filter(function(a){return a}),0===b.length?null:1==b.length?b[0]:q(b)}return a},transformCatch:function(a){var b=this.transformAny(a.catchBody);return b===a.catchBody?a:new c(a.location,a.binding,b)},transformForInStatement:function(a){return this.transformLoop_(a,e)},transformForOfStatement:function(a){return this.transformLoop_(a,f)},transformLoop_:function(a,b){var c=this.transformLoopIninitaliser_(a.initializer),d=this.transformAny(a.collection),e=this.transformAny(a.body);return c===a.initializer&&d===a.collection&&e===a.body?a:new b(a.location,c,d,e)},transformLoopIninitaliser_:function(a){return a.type!==l||a.declarationType!==n?a:this.transformAny(a.declarations[0].lvalue)},transformForStatement:function(a){var b=this.inBlockOrFor_;this.inBlockOrFor_=!0;var c=this.transformAny(a.initializer);this.inBlockOrFor_=b;var d=this.transformAny(a.condition),e=this.transformAny(a.increment),f=this.transformAny(a.body);return c===a.initializer&&d===a.condition&&e===a.increment&&f===a.body?a:new g(a.location,c,d,e,f)},transformBlock:function(a){var b=this.inBlockOrFor_;return this.inBlockOrFor_=!0,a=$traceurRuntime.superGet(this,x.prototype,"transformBlock").call(this,a),this.inBlockOrFor_=b,a},addMachineVariable:function(a){this.machineVariables_[a]=!0},transformClassDeclaration:function(a){return a},transformClassExpression:function(a){return a},transformFunctionDeclaration:function(a){return this.shouldHoistFunctions_?(this.addFunctionDeclaration(a),new b(null,[])):a},transformFunctionExpression:function(a){return a},transformGetAccessor:function(a){return a},transformSetAccessor:function(a){return a},transformPropertyMethodAssignment:function(a){return a},transformArrowFunctionExpression:function(a){return a},transformComprehensionFor:function(a){return a}},{},m);var y=w;return{get default(){return y}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/FallThroughState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b=function(a,b,d){$traceurRuntime.superConstructor(c).call(this,a),this.fallThroughState=b,this.statements=d},c=b;return $traceurRuntime.createClass(b,{replaceState:function(b,d){return new c(a.replaceStateId(this.id,b,d),a.replaceStateId(this.fallThroughState,b,d),this.statements)},transform:function(b){return $traceurRuntime.spread(this.statements,a.generateJump(b,this.fallThroughState))}},{},a),{get FallThroughState(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/BreakState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/FallThroughState.js").FallThroughState,b=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,c=function(a,b){$traceurRuntime.superConstructor(d).call(this,a),this.label=b},d=c;return $traceurRuntime.createClass(c,{replaceState:function(a,c){return new d(b.replaceStateId(this.id,a,c),this.label)},transform:function(){throw new Error("These should be removed before the transform step")},transformBreak:function(b){var c=arguments[1];return null==this.label?new a(this.id,c,[]):this.label in b?new a(this.id,b[this.label].fallThroughState,[]):this},transformBreakOrContinue:function(a){{var b=arguments[1];arguments[2]}return this.transformBreak(a,b)}},{},b),{get BreakState(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/ContinueState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/FallThroughState.js").FallThroughState,b=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,c=function(a,b){$traceurRuntime.superConstructor(d).call(this,a),this.label=b},d=c;return $traceurRuntime.createClass(c,{replaceState:function(a,c){return new d(b.replaceStateId(this.id,a,c),this.label)},transform:function(){throw new Error("These should be removed before the transform step")},transformBreakOrContinue:function(b){var c=(arguments[1],arguments[2]);return null==this.label?new a(this.id,c,[]):this.label in b?new a(this.id,b[this.label].continueState,[]):this}},{},b),{get ContinueState(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/BreakContinueTransformer.js",[],function(){"use strict";function a(a){return a.name?a.name.value:null}var b=System.get("traceur@0.0.79/src/codegeneration/generator/BreakState.js").BreakState,c=System.get("traceur@0.0.79/src/codegeneration/generator/ContinueState.js").ContinueState,d=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,e=System.get("traceur@0.0.79/src/syntax/trees/StateMachine.js").StateMachine,f=function(a){$traceurRuntime.superConstructor(g).call(this),this.transformBreaks_=!0,this.stateAllocator_=a},g=f;return $traceurRuntime.createClass(f,{allocateState_:function(){return this.stateAllocator_.allocateState()},stateToStateMachine_:function(a){var b=this.allocateState_();return new e(a.id,b,[a],[])},transformBreakStatement:function(c){return this.transformBreaks_||c.name?this.stateToStateMachine_(new b(this.allocateState_(),a(c))):c},transformContinueStatement:function(b){return this.stateToStateMachine_(new c(this.allocateState_(),a(b)))},transformDoWhileStatement:function(a){return a},transformForOfStatement:function(a){return a},transformForStatement:function(a){return a},transformFunctionDeclaration:function(a){return a},transformFunctionExpression:function(a){return a},transformStateMachine:function(a){return a},transformSwitchStatement:function(a){var b=this.transformBreaks_;this.transformBreaks_=!1;var c=$traceurRuntime.superGet(this,g.prototype,"transformSwitchStatement").call(this,a);return this.transformBreaks_=b,c},transformWhileStatement:function(a){return a}},{},d),{get BreakContinueTransformer(){return f}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/CatchState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b=System.get("traceur@0.0.79/src/codegeneration/generator/TryState.js").TryState,c=function(a,c,e,f,g){$traceurRuntime.superConstructor(d).call(this,b.Kind.CATCH,f,g),this.identifier=a,this.catchState=c,this.fallThroughState=e},d=c;return $traceurRuntime.createClass(c,{replaceState:function(b,c){return new d(this.identifier,a.replaceStateId(this.catchState,b,c),a.replaceStateId(this.fallThroughState,b,c),this.replaceAllStates(b,c),this.replaceNestedTrys(b,c))}},{},b),{get CatchState(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/ConditionalState.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["$ctx.state = (",") ? "," : ",";\n break"],{raw:{value:Object.freeze(["$ctx.state = (",") ? "," : ",";\n break"])}})),b=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),d=c.createBlock,e=c.createIfStatement,f=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatements,g=function(a,b,c,d){$traceurRuntime.superConstructor(h).call(this,a),this.ifState=b,this.elseState=c,this.condition=d},h=g;return $traceurRuntime.createClass(g,{replaceState:function(a,c){return new h(b.replaceStateId(this.id,a,c),b.replaceStateId(this.ifState,a,c),b.replaceStateId(this.elseState,a,c),this.condition)},transform:function(c){return b.isFinallyExit(c,this.ifState)||b.isFinallyExit(c,this.elseState)?[e(this.condition,d(b.generateJump(c,this.ifState)),d(b.generateJump(c,this.elseState)))]:f(a,this.condition,this.ifState,this.elseState)}},{},b),{get ConditionalState(){return g}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/FinallyFallThroughState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b=function(){$traceurRuntime.superConstructor(c).apply(this,arguments)},c=b;return $traceurRuntime.createClass(b,{replaceState:function(b,d){return new c(a.replaceStateId(this.id,b,d))},transformMachineState:function(){return null},transform:function(){throw new Error("these are generated in addFinallyFallThroughDispatches")}},{},a),{get FinallyFallThroughState(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/FinallyState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b=System.get("traceur@0.0.79/src/codegeneration/generator/TryState.js").TryState,c=function(a,c,e,f){$traceurRuntime.superConstructor(d).call(this,b.Kind.FINALLY,e,f),this.finallyState=a,this.fallThroughState=c},d=c;return $traceurRuntime.createClass(c,{replaceState:function(b,c){return new d(a.replaceStateId(this.finallyState,b,c),a.replaceStateId(this.fallThroughState,b,c),this.replaceAllStates(b,c),this.replaceNestedTrys(b,c))}},{},b),{get FinallyState(){return c}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/StateAllocator.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b=function(){this.nextState_=a.START_STATE+1};return $traceurRuntime.createClass(b,{allocateState:function(){return this.nextState_++}},{}),{get StateAllocator(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/SwitchState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),b=a.CaseClause,c=a.DefaultClause,d=a.SwitchStatement,e=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,f=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js").createBreakStatement,g=function(a,b){this.first=a,this.second=b};$traceurRuntime.createClass(g,{},{});var h=function(a,b,c){$traceurRuntime.superConstructor(i).call(this,a),this.expression=b,this.clauses=c},i=h;return $traceurRuntime.createClass(h,{replaceState:function(a,b){var c=this.clauses.map(function(c){return new g(c.first,e.replaceStateId(c.second,a,b))});return new i(e.replaceStateId(this.id,a,b),this.expression,c)},transform:function(a){for(var g=[],h=0;h<this.clauses.length;h++){var i=this.clauses[h];g.push(null==i.first?new c(null,e.generateJump(a,i.second)):new b(null,i.first,e.generateJump(a,i.second)))}return[new d(null,this.expression,g),f()]}},{},e),{get SwitchClause(){return g},get SwitchState(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/CPSTransformer.js",[],function(){"use strict";function a(a){var b=new ib;return b.visitAny(a),b.found}function b(a){return a.type===u?b(a.expression):new y(a.location,a.statements)}var c=Object.freeze(Object.defineProperties(["$ctx.pushTry(\n ",",\n ",");"],{raw:{value:Object.freeze(["$ctx.pushTry(\n ",",\n ",");"])}})),d=Object.freeze(Object.defineProperties(["$ctx.popTry();"],{raw:{value:Object.freeze(["$ctx.popTry();"])}})),e=Object.freeze(Object.defineProperties(["\n $ctx.popTry();\n "," = $ctx.storedException;"],{raw:{value:Object.freeze(["\n $ctx.popTry();\n "," = $ctx.storedException;"])}})),f=Object.freeze(Object.defineProperties(["$ctx.popTry();"],{raw:{value:Object.freeze(["$ctx.popTry();"])}})),g=Object.freeze(Object.defineProperties(["function($ctx) {\n while (true) ","\n }"],{raw:{value:Object.freeze(["function($ctx) {\n while (true) ","\n }"])}})),h=Object.freeze(Object.defineProperties(["var $arguments = arguments;"],{raw:{value:Object.freeze(["var $arguments = arguments;"])}})),i=Object.freeze(Object.defineProperties(["return ","(\n ",",\n ",", this);"],{raw:{value:Object.freeze(["return ","(\n ",",\n ",", this);"])}})),j=Object.freeze(Object.defineProperties(["return ","(\n ",", this);"],{raw:{value:Object.freeze(["return ","(\n ",", this);"])}})),k=Object.freeze(Object.defineProperties(["return $ctx.end()"],{raw:{value:Object.freeze(["return $ctx.end()"])}})),l=Object.freeze(Object.defineProperties(["\n $ctx.state = $ctx.finallyFallThrough;\n $ctx.finallyFallThrough = ",";\n break;"],{raw:{value:Object.freeze(["\n $ctx.state = $ctx.finallyFallThrough;\n $ctx.finallyFallThrough = ",";\n break;"])}})),m=Object.freeze(Object.defineProperties(["\n $ctx.state = $ctx.finallyFallThrough;\n break;"],{raw:{value:Object.freeze(["\n $ctx.state = $ctx.finallyFallThrough;\n break;"])}})),n=System.get("traceur@0.0.79/src/codegeneration/AlphaRenamer.js").AlphaRenamer,o=System.get("traceur@0.0.79/src/codegeneration/generator/BreakContinueTransformer.js").BreakContinueTransformer,p=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),q=p.BLOCK,r=p.CASE_CLAUSE,s=p.CONDITIONAL_EXPRESSION,t=p.EXPRESSION_STATEMENT,u=p.PAREN_EXPRESSION,v=p.STATE_MACHINE,w=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),x=w.AnonBlock,y=w.Block,z=w.CaseClause,A=w.IfStatement,B=w.SwitchStatement,C=System.get("traceur@0.0.79/src/codegeneration/generator/CatchState.js").CatchState,D=System.get("traceur@0.0.79/src/codegeneration/generator/ConditionalState.js").ConditionalState,E=System.get("traceur@0.0.79/src/codegeneration/ExplodeExpressionTransformer.js").ExplodeExpressionTransformer,F=System.get("traceur@0.0.79/src/codegeneration/generator/FallThroughState.js").FallThroughState,G=System.get("traceur@0.0.79/src/codegeneration/generator/FinallyFallThroughState.js").FinallyFallThroughState,H=System.get("traceur@0.0.79/src/codegeneration/generator/FinallyState.js").FinallyState,I=System.get("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js").FindInFunctionScope,J=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,K=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,L=System.get("traceur@0.0.79/src/util/assert.js").assert,M=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),N=M.parseExpression,O=M.parseStatement,P=M.parseStatements,Q=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,R=System.get("traceur@0.0.79/src/codegeneration/generator/StateAllocator.js").StateAllocator,S=System.get("traceur@0.0.79/src/syntax/trees/StateMachine.js").StateMachine,T=System.get("traceur@0.0.79/src/codegeneration/generator/SwitchState.js"),U=T.SwitchClause,V=T.SwitchState,W=System.get("traceur@0.0.79/src/codegeneration/generator/TryState.js").TryState,X=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),Y=X.createAssignStateStatement,Z=X.createBreakStatement,$=X.createCaseClause,_=X.createDefaultClause,ab=X.createExpressionStatement,bb=X.createFunctionBody,cb=X.createIdentifierExpression,db=X.createMemberExpression,eb=X.createNumberLiteral,fb=X.createSwitchStatement,gb=System.get("traceur@0.0.79/src/codegeneration/HoistVariablesTransformer.js").default,hb=function(a,b,c){this.name=a,this.continueState=b,this.fallThroughState=c};$traceurRuntime.createClass(hb,{},{});var ib=function(){$traceurRuntime.superConstructor(jb).apply(this,arguments)},jb=ib;$traceurRuntime.createClass(ib,{visitBreakStatement:function(){this.found=!0},visitContinueStatement:function(){this.found=!0},visitStateMachine:function(){this.found=!0},visitYieldExpression:function(){this.found=!0}},{},I);var kb=function(){$traceurRuntime.superConstructor(lb).call(this,!0)},lb=kb;$traceurRuntime.createClass(kb,{prependVariables:function(a){return a},prependFunctions:function(a){return a}},{},gb);var mb=function(a,b){$traceurRuntime.superConstructor(nb).call(this,a),this.reporter=b,this.stateAllocator_=new R,this.labelSet_=Object.create(null),this.currentLabel_=null,this.hoistVariablesTransformer_=new kb},nb=mb;$traceurRuntime.createClass(mb,{expressionNeedsStateMachine:function(){return!1},allocateState:function(){return this.stateAllocator_.allocateState()},transformBlock:function(a){var b=this.getLabels_(),c=this.clearCurrentLabel_(),d=$traceurRuntime.superGet(this,nb.prototype,"transformBlock").call(this,a),e=this.transformStatementList_(d.statements);if(null===e)return d;if(c){for(var f=[],g=0;g<e.states.length;g++){var h=e.states[g];f.push(h.transformBreakOrContinue(b))}e=new S(e.startState,e.fallThroughState,f,e.exceptionBlocks)}return e},transformFunctionBody:function(a){this.pushTempScope();var b=this.clearLabels_(),c=$traceurRuntime.superGet(this,nb.prototype,"transformFunctionBody").call(this,a),d=this.transformStatementList_(c.statements);return this.restoreLabels_(b),this.popTempScope(),null==d?c:d},transformStatementList_:function(b){for(var c,d=[],e=0;e<b.length;e++)if(b[e].type===v)d.push(b[e]);else if(a(b[e]))c=this.ensureTransformed_(b[e]),d.push(c);else{var f=d[d.length-1];f instanceof Array||d.push(f=[]),f.push(b[e])}if(1===d.length&&d[0]instanceof Array)return null;for(var g=null,e=0;e<d.length;e++)c=d[e]instanceof Array?this.statementsToStateMachine_(d[e]):d[e],g=0===e?c:g.append(c);return g},needsStateMachine_:function(b){if(b instanceof Array){for(var c=0;c<b.length;c++)if(a(b[c]))return!0;return!1}return L(b instanceof B),a(b)},transformCaseClause:function(a){var b=$traceurRuntime.superGet(this,nb.prototype,"transformCaseClause").call(this,a),c=this.transformStatementList_(b.statements);return null==c?b:new z(null,b.expression,[c])},transformDoWhileStatement:function(a){var b,c,d,e,f,g,h=this.getLabels_(),i=this.clearCurrentLabel_();if(this.expressionNeedsStateMachine(a.condition))c=this.expressionToStateMachine(a.condition),e=c.machine,f=c.expression,c,g=this.transformAny(a.body);else{var j=$traceurRuntime.superGet(this,nb.prototype,"transformDoWhileStatement").call(this,a);if(d=j,f=d.condition,g=d.body,d,g.type!=v)return j}var k=this.ensureTransformed_(g),l=k.startState,m=k.fallThroughState,n=this.allocateState(),o=[];this.addLoopBodyStates_(k,m,n,h,o),e&&(e=e.replaceStartState(m),m=e.fallThroughState,(b=o).push.apply(b,$traceurRuntime.spread(e.states))),o.push(new D(m,l,n,f));var e=new S(l,n,o,k.exceptionBlocks);return i&&(e=e.replaceStateId(m,i.continueState)),e},addLoopBodyStates_:function(a,b,c,d,e){for(var f=0;f<a.states.length;f++){var g=a.states[f];e.push(g.transformBreakOrContinue(d,c,b))}},transformForStatement:function(a){var b,c,d,e,f,g=this.getLabels_(),h=this.clearCurrentLabel_(),i=null;a.initializer&&(this.expressionNeedsStateMachine(a.initializer)?(e=this.expressionToStateMachine(a.initializer),i=e.expression,f=e.machine):i=this.transformAny(a.initializer));var j,k=null;a.condition&&(this.expressionNeedsStateMachine(a.condition)?(e=this.expressionToStateMachine(a.condition),k=e.expression,j=e.machine):k=this.transformAny(a.condition));var l,m=null;a.increment&&(this.expressionNeedsStateMachine(a.increment)?(e=this.expressionToStateMachine(a.increment),m=e.expression,l=e.machine):m=this.transformAny(a.increment));var n=this.transformAny(a.body);if(i===a.initializer&&k===a.condition&&m===a.increment&&n===a.body)return a;if(!f&&!j&&!l&&n.type!==v)return new ForStatement(a.location,i,k,m,n);var o,p=this.ensureTransformed_(n),q=p.fallThroughState,r=this.allocateState(),s=i?this.allocateState():Q.INVALID_STATE,t=m?this.allocateState():q,u=p.startState,w=q,x=[];if(i){o=s;var y;y=k?t:u;var z=s;f&&(f=f.replaceStartState(s),z=f.fallThroughState,(b=x).push.apply(b,$traceurRuntime.spread(f.states))),x.push(new F(z,y,[ab(i)]))}if(k){i||(o=t);var z=t;j&&(j=j.replaceStartState(t),z=j.fallThroughState,(c=x).push.apply(c,$traceurRuntime.spread(j.states))),x.push(new D(z,u,r,k))}if(m){var A;A=k?t:u;var z=w;l&&(l=l.replaceStartState(w),z=l.fallThroughState,(d=x).push.apply(d,$traceurRuntime.spread(l.states))),x.push(new F(z,A,[ab(m)]))}i||k||(o=u);var B;B=m?w:k?t:u,m||k||(p=p.replaceFallThroughState(p.startState)),this.addLoopBodyStates_(p,B,r,g,x);var C=new S(o,r,x,p.exceptionBlocks);return h&&(C=C.replaceStateId(B,h.continueState)),C},transformForInStatement:function(a){return a},transformForOfStatement:function(){throw new Error("for of statements should be transformed before this pass")},transformIfStatement:function(a){var b,c,d,e,f,g,h,i,j;if(this.expressionNeedsStateMachine(a.condition))e=this.expressionToStateMachine(a.condition),g=e.machine,h=e.expression,e,i=this.transformAny(a.ifClause),j=this.transformAny(a.elseClause);else{var k=$traceurRuntime.superGet(this,nb.prototype,"transformIfStatement").call(this,a);if(f=k,h=f.condition,i=f.ifClause,j=f.elseClause,f,i.type!==v&&(null===j||j.type!==v))return k}i=this.ensureTransformed_(i),j=this.ensureTransformed_(j);var l=this.allocateState(),m=i.fallThroughState,n=i.startState,o=null==j?m:j.startState,p=[],q=[];p.push(new D(l,n,o,h)),(b=p).push.apply(b,$traceurRuntime.spread(i.states)),(c=q).push.apply(c,$traceurRuntime.spread(i.exceptionBlocks)),null!=j&&(this.replaceAndAddStates_(j.states,j.fallThroughState,m,p),(d=q).push.apply(d,$traceurRuntime.spread(Q.replaceAllStates(j.exceptionBlocks,j.fallThroughState,m))));var r=new S(l,m,p,q);return g&&(r=g.append(r)),r},removeEmptyStates:function(a){for(var b=[],c=[],d=0;d<a.length;d++)a[d]instanceof F&&0===a[d].statements.length?b.push(a[d]):c.push(a[d]);for(d=0;d<c.length;d++)c[d]=b.reduce(function(a,b){var c=b,d=c.id,e=c.fallThroughState;return a.replaceState(d,e)},c[d]);return c},replaceAndAddStates_:function(a,b,c,d){for(var e=0;e<a.length;e++)d.push(a[e].replaceState(b,c))},transformLabelledStatement:function(a){var b=this.allocateState(),c=this.allocateState(),d=this.allocateState(),e=new hb(a.name.value,c,d),f=this.addLabel_(e);this.currentLabel_=e;var g=this.transformAny(a.statement);return g===a.statement?g=a:g.type===v&&(g=g.replaceStartState(b),g=g.replaceFallThroughState(d)),this.restoreLabels_(f),g},getLabels_:function(){return this.labelSet_},restoreLabels_:function(a){this.labelSet_=a},addLabel_:function(a){var b=this.labelSet_,c=Object.create(null);for(var d in this.labelSet_)c[d]=this.labelSet_[d];return c[a.name]=a,this.labelSet_=c,b},clearLabels_:function(){var a=this.labelSet_;return this.labelSet_=Object.create(null),a},clearCurrentLabel_:function(){var a=this.currentLabel_;return this.currentLabel_=null,a},transformSwitchStatement:function(b){var c,d,e,f,g,h=this.getLabels_();if(this.expressionNeedsStateMachine(b.expression))c=this.expressionToStateMachine(b.expression),e=c.expression,f=c.machine,c,g=this.transformList(b.caseClauses);else{var i=$traceurRuntime.superGet(this,nb.prototype,"transformSwitchStatement").call(this,b);if(!a(i))return i;d=i,e=d.expression,g=d.caseClauses,d}for(var j=this.allocateState(),k=this.allocateState(),l=k,m=[],n=[],o=[],p=!1,q=g.length-1;q>=0;q--){var s=g[q];if(s.type==r){var t=s;l=this.addSwitchClauseStates_(l,k,h,t.statements,m,o),n.push(new U(t.expression,l))}else{p=!0;var u=s;l=this.addSwitchClauseStates_(l,k,h,u.statements,m,o),n.push(new U(null,l))}}p||n.push(new U(null,k)),m.push(new V(j,e,n.reverse()));var v=new S(j,k,m.reverse(),o);return f&&(v=f.append(v)),v},addSwitchClauseStates_:function(a,b,c,d,e,f){for(var g,h=this.ensureTransformedList_(d),i=0;i<h.states.length;i++){var j=h.states[i],k=j.transformBreak(c,b);e.push(k.replaceState(h.fallThroughState,a))}return(g=f).push.apply(g,$traceurRuntime.spread(h.exceptionBlocks)),h.startState},transformTryStatement:function(a){var b=$traceurRuntime.superGet(this,nb.prototype,"transformTryStatement").call(this,a),g=b,h=g.body,i=g.catchBlock,j=g.finallyBlock;if(!(h.type==v||null!=i&&i.catchBody.type==v||null!=j&&j.block.type==v))return b;var k=this.allocateState(),l=this.allocateState(),m=this.statementToStateMachine_(O(c,i&&k,j&&l)),n=this.ensureTransformed_(h);if(n=m.append(n),null!==i){var o=this.statementToStateMachine_(O(d));n=n.append(o);var p=i.binding.identifierToken.value,q=this.ensureTransformed_(i.catchBody),r=this.allocateState();this.addMachineVariable(p);var s=$traceurRuntime.spread(n.states,[new F(r,q.startState,P(e,cb(p)))]);this.replaceAndAddStates_(q.states,q.fallThroughState,n.fallThroughState,s),n=new S(n.startState,n.fallThroughState,s,[new C(p,r,n.fallThroughState,n.getAllStateIDs(),n.exceptionBlocks)]),n=n.replaceStateId(r,k)}if(null!=j){var t=this.ensureTransformed_(j.block),o=this.statementToStateMachine_(O(f));t=o.append(t);var s=$traceurRuntime.spread(n.states,t.states,[new G(t.fallThroughState)]);n=new S(n.startState,n.fallThroughState,s,[new H(t.startState,t.fallThroughState,n.getAllStateIDs(),n.exceptionBlocks)]),n=n.replaceStateId(t.startState,l)}return n},transformWhileStatement:function(a){var b,c,d,e,f,g,h=this.getLabels_(),i=this.clearCurrentLabel_();if(this.expressionNeedsStateMachine(a.condition))c=this.expressionToStateMachine(a.condition),f=c.machine,e=c.expression,c,g=this.transformAny(a.body);else{var j=$traceurRuntime.superGet(this,nb.prototype,"transformWhileStatement").call(this,a);if(d=j,e=d.condition,g=d.body,d,g.type!==v)return j}var k=this.ensureTransformed_(g),l=k.fallThroughState,m=this.allocateState(),n=[],o=l;f&&(f=f.replaceStartState(l),o=f.fallThroughState,(b=n).push.apply(b,$traceurRuntime.spread(f.states))),n.push(new D(o,k.startState,m,e)),this.addLoopBodyStates_(k,l,m,h,n);var f=new S(l,m,n,k.exceptionBlocks);return i&&(f=f.replaceStateId(l,i.continueState)),f
},transformWithStatement:function(a){var b=$traceurRuntime.superGet(this,nb.prototype,"transformWithStatement").call(this,a);if(b.body.type!=v)return b;throw new Error("Unreachable - with statement not allowed in strict mode/harmony")},generateMachineInnerFunction:function(a){var b=a.getEnclosingFinallyMap(),c=fb(db("$ctx","state"),this.transformMachineStates(a,Q.END_STATE,Q.RETHROW_STATE,b));return N(g,c)},addTempVar:function(){var a=this.getTempIdentifier();return this.addMachineVariable(a),a},addMachineVariable:function(a){this.hoistVariablesTransformer_.addVariable(a)},transformCpsFunctionBody:function(a,b){var c,d=arguments[2],e=n.rename(a,"arguments","$arguments"),f=e!==a,g=this.hoistVariablesTransformer_.transformAny(e),k=this.transformAny(g);if(this.reporter.hadError())return a;var l;l=k.type!==v?this.statementsToStateMachine_(k.statements):new S(k.startState,k.fallThroughState,this.removeEmptyStates(k.states),k.exceptionBlocks),l=l.replaceFallThroughState(Q.END_STATE).replaceStartState(Q.START_STATE);var m=[];return this.hoistVariablesTransformer_.hasFunctions()&&(c=m).push.apply(c,$traceurRuntime.spread(this.hoistVariablesTransformer_.getFunctions())),this.hoistVariablesTransformer_.hasVariables()&&m.push(this.hoistVariablesTransformer_.getVariableStatement()),f&&m.push(O(h)),m.push(d?O(i,b,this.generateMachineInnerFunction(l),d):O(j,b,this.generateMachineInnerFunction(l))),bb(m)},transformFunctionDeclaration:function(a){return a},transformFunctionExpression:function(a){return a},transformGetAccessor:function(a){return a},transformSetAccessor:function(a){return a},transformArrowFunctionExpression:function(a){return a},transformStateMachine:function(a){return a},statementToStateMachine_:function(a){var b;return b=a.type===q?a.statements:[a],this.statementsToStateMachine_(b)},statementsToStateMachine_:function(a){var b=this.allocateState(),c=this.allocateState();return this.stateToStateMachine_(new F(b,c,a),c)},stateToStateMachine_:function(a,b){return new S(a.id,b,[a],[])},transformMachineStates:function(a,b,c,d){for(var e=[],f=0;f<a.states.length;f++){var g=a.states[f],h=g.transformMachineState(d[g.id],b,this.reporter);null!=h&&e.push(h)}return this.addFinallyFallThroughDispatches(null,a.exceptionBlocks,e),e.push(_(P(k))),e},addFinallyFallThroughDispatches:function(a,b,c){for(var d=0;d<b.length;d++){var e=b[d];if(e.kind==W.Kind.FINALLY){var f=e;if(null!=a){for(var g=[],h=0,i=0;i<a.tryStates.length;i++){var j=a.tryStates[i];h++;var k;k=h<a.tryStates.length?[]:P(l,Q.INVALID_STATE),g.push($(eb(j),k))}g.push(_([Y(a.finallyState),Z()])),c.push($(eb(f.fallThroughState),[fb(db("$ctx","finallyFallThrough"),g),Z()]))}else c.push($(eb(f.fallThroughState),P(m)));this.addFinallyFallThroughDispatches(f,f.nestedTrys,c)}else this.addFinallyFallThroughDispatches(a,e.nestedTrys,c)}},transformVariableDeclarationList:function(a){return this.reporter.reportError(a.location&&a.location.start,"Traceur: const/let declarations in a block containing a yield are not yet implemented"),a},maybeTransformStatement_:function(a){var b=new o(this.stateAllocator_).transformAny(a);return b!=a&&(b=this.transformAny(b)),b},ensureTransformed_:function(a){if(null==a)return null;var b=this.maybeTransformStatement_(a);return b.type==v?b:this.statementToStateMachine_(b)},ensureTransformedList_:function(a){for(var b=[],c=!1,d=0;d<a.length;d++){var e=a[d],f=this.maybeTransformStatement_(e);b.push(f),f.type==v&&(c=!0)}return c?this.transformStatementList_(b):this.statementsToStateMachine_(a)},expressionToStateMachine:function(a){var b=new E(this).transformAny(a),c=(new ob).transformAny(b).statements,d=c.pop();L(d.type===t);var e=d.expression;c=$traceurRuntime.superGet(this,nb.prototype,"transformList").call(this,c);var f=this.transformStatementList_(c);return{expression:e,machine:f}}},{},K);var ob=function(){$traceurRuntime.superConstructor(pb).apply(this,arguments)},pb=ob;return $traceurRuntime.createClass(ob,{transformCommaExpression:function(a){var b=this,c=a.expressions.map(function(a){return a.type===s?b.transformAny(a):ab(a)});return new x(a.location,c)},transformConditionalExpression:function(a){var c=this.transformAny(a.left),d=this.transformAny(a.right);return new A(a.location,a.condition,b(c),b(d))}},{},J),{get CPSTransformer(){return mb}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/EndState.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,b=function(){$traceurRuntime.superConstructor(c).apply(this,arguments)},c=b;return $traceurRuntime.createClass(b,{replaceState:function(b,d){return new c(a.replaceStateId(this.id,b,d))},transform:function(b,c){return a.generateJump(b,c)}},{},a),{get EndState(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/AsyncTransformer.js",[],function(){"use strict";function a(a){return a.type===p&&a.operator.isAssignmentOperator()&&a.right.type===o&&a.left.isLeftHandSideExpression()}function b(a){var b=new y;return b.visitAny(a),b.found}var c=Object.freeze(Object.defineProperties(["$ctx.value"],{raw:{value:Object.freeze(["$ctx.value"])}})),d=Object.freeze(Object.defineProperties(["$ctx.returnValue = ",""],{raw:{value:Object.freeze(["$ctx.returnValue = ",""])}})),e=Object.freeze(Object.defineProperties(["$ctx.resolve(",")"],{raw:{value:Object.freeze(["$ctx.resolve(",")"])}})),f=Object.freeze(Object.defineProperties(["$traceurRuntime.asyncWrap"],{raw:{value:Object.freeze(["$traceurRuntime.asyncWrap"])}})),g=System.get("traceur@0.0.79/src/codegeneration/generator/AwaitState.js").AwaitState,h=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),i=h.BinaryExpression,j=h.ExpressionStatement,k=System.get("traceur@0.0.79/src/codegeneration/generator/CPSTransformer.js").CPSTransformer,l=System.get("traceur@0.0.79/src/codegeneration/generator/EndState.js").EndState,m=System.get("traceur@0.0.79/src/codegeneration/generator/FallThroughState.js").FallThroughState,n=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),o=n.AWAIT_EXPRESSION,p=n.BINARY_EXPRESSION,q=n.STATE_MACHINE,r=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),s=r.parseExpression,t=r.parseStatement,u=r.parseStatements,v=System.get("traceur@0.0.79/src/syntax/trees/StateMachine.js").StateMachine,w=System.get("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js").FindInFunctionScope,x=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js").createUndefinedExpression,y=function(){$traceurRuntime.superConstructor(z).apply(this,arguments)},z=y;$traceurRuntime.createClass(y,{visitAwaitExpression:function(){this.found=!0}},{},w);var A=function(){$traceurRuntime.superConstructor(B).apply(this,arguments)},B=A;return $traceurRuntime.createClass(A,{expressionNeedsStateMachine:function(a){return null===a?!1:b(a)},transformExpressionStatement:function(b){var c=b.expression;return c.type===o?this.transformAwaitExpression_(c):a(c)?this.transformAwaitAssign_(c):this.expressionNeedsStateMachine(c)?this.expressionToStateMachine(c).machine:$traceurRuntime.superGet(this,B.prototype,"transformExpressionStatement").call(this,b)},transformAwaitExpression:function(){throw new Error("Internal error")},transformAwaitExpression_:function(a){return this.transformAwait_(a,a.expression,null,null)},transformAwaitAssign_:function(a){return this.transformAwait_(a,a.right.expression,a.left,a.operator)},transformAwait_:function(a,b,d,e){var f,h,k;this.expressionNeedsStateMachine(b)?(f=this.expressionToStateMachine(b),h=f.expression,k=f.machine,f):h=this.transformAny(b);var l=this.allocateState(),n=this.allocateState(),o=d?this.allocateState():n,p=[];if(p.push(new g(l,o,h)),d){var q=new j(a.location,new i(a.location,d,e,s(c)));p.push(new m(o,n,[q]))}var r=new v(l,n,p,[]);return k&&(r=k.append(r)),r},transformFinally:function(a){var b=$traceurRuntime.superGet(this,B.prototype,"transformFinally").call(this,a);return b.block.type!=q?b:(this.reporter.reportError(a.location.start,"await not permitted within a finally block."),b)},transformReturnStatement:function(a){var b,c,e;this.expressionNeedsStateMachine(a.expression)?(b=this.expressionToStateMachine(a.expression),c=b.expression,e=b.machine,b):c=a.expression||x();var f=this.allocateState(),g=this.allocateState(),h=new m(f,g,u(d,c)),i=new l(g),j=new v(f,this.allocateState(),[h,i],[]);return e&&(j=e.append(j)),j},createCompleteTask_:function(a){return t(e,a)},transformAsyncBody:function(a){var b=s(f);return this.transformCpsFunctionBody(a,b)}},{transformAsyncBody:function(a,b,c){return new B(a,b).transformAsyncBody(c)}},k),{get AsyncTransformer(){return A}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/ForInTransformPass.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),b=a.BLOCK,c=a.VARIABLE_DECLARATION_LIST,d=a.IDENTIFIER_EXPRESSION,e=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),f=e.LENGTH,g=e.PUSH,h=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,i=System.get("traceur@0.0.79/src/syntax/TokenType.js"),j=i.BANG,k=i.IN,l=i.OPEN_ANGLE,m=i.PLUS_PLUS,n=i.VAR,o=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),p=o.createArgumentList,q=o.createAssignmentStatement,r=o.createBinaryExpression,s=o.createBlock,t=o.createCallStatement,u=o.createContinueStatement,v=o.createEmptyArrayLiteralExpression,w=o.createForInStatement,x=o.createForStatement,y=o.createIdentifierExpression,z=o.createIfStatement,A=o.createMemberExpression,B=o.createMemberLookupExpression,C=o.createNumberLiteral,D=o.createOperatorToken,E=o.createParenExpression,F=o.createPostfixExpression,G=o.createUnaryExpression,H=o.createVariableDeclarationList,I=o.createVariableStatement,J=function(){$traceurRuntime.superConstructor(K).apply(this,arguments)},K=J;return $traceurRuntime.createClass(J,{transformForInStatement:function(a){var e,h,i=[],o=this.transformAny(a.body);o.type==b?(e=i).push.apply(e,$traceurRuntime.spread(o.statements)):i.push(o);var J=[],K=this.getTempIdentifier();J.push(I(n,K,v()));var L=this.getTempIdentifier();J.push(I(n,L,a.collection));var M=this.getTempIdentifier();J.push(w(H(n,M,null),y(L),t(A(K,g),p([y(M)]))));var N,O,P=this.getTempIdentifier(),Q=B(y(K),y(P));if(a.initializer.type==c){var R=a.initializer;N=y(R.declarations[0].lvalue),O=I(R.declarationType,N.identifierToken,Q)}else{if(a.initializer.type!=d)throw new Error("Invalid left hand side of for in loop");N=a.initializer,O=q(a.initializer,Q)}var S=[];return S.push(O),S.push(z(G(D(j),E(r(N,D(k),y(L)))),u(),null)),(h=S).push.apply(h,$traceurRuntime.spread(i)),J.push(x(H(n,P,C(0)),r(y(P),D(l),A(K,f)),F(y(P),D(m)),s(S))),s(J)}},{},h),{get ForInTransformPass(){return J}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/YieldState.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["return ",""],{raw:{value:Object.freeze(["return ",""])}})),b=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,c=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,d=function(a,b,c){$traceurRuntime.superConstructor(e).call(this,a),this.fallThroughState=b,this.expression=c},e=d;return $traceurRuntime.createClass(d,{replaceState:function(a,c){return new this.constructor(b.replaceStateId(this.id,a,c),b.replaceStateId(this.fallThroughState,a,c),this.expression)},transform:function(d){return $traceurRuntime.spread(b.generateAssignState(d,this.fallThroughState),[c(a,this.expression)])}},{},b),{get YieldState(){return d}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/ReturnState.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["$ctx.returnValue = ",""],{raw:{value:Object.freeze(["$ctx.returnValue = ",""])}})),b=System.get("traceur@0.0.79/src/semantics/util.js"),c=b.isUndefined,d=b.isVoidExpression,e=System.get("traceur@0.0.79/src/codegeneration/generator/YieldState.js").YieldState,f=System.get("traceur@0.0.79/src/codegeneration/generator/State.js").State,g=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,h=function(){$traceurRuntime.superConstructor(i).apply(this,arguments)},i=h;return $traceurRuntime.createClass(h,{transform:function(b,e){var h,i=this.expression,j=[];return!i||c(i)||d(i)||j.push(g(a,this.expression)),(h=j).push.apply(h,$traceurRuntime.spread(f.generateJump(b,e))),j}},{},e),{get ReturnState(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/generator/GeneratorTransformer.js",[],function(){"use strict";function a(a){return a.type===j&&a.operator.isAssignmentOperator()&&a.right.type===k&&a.left.isLeftHandSideExpression()}function b(a){var b=new y;return b.visitAny(a),b.found}var c=Object.freeze(Object.defineProperties(["\n "," = ","[Symbol.iterator]();\n // received = void 0;\n $ctx.sent = void 0;\n // send = true; // roughly equivalent\n $ctx.action = 'next';\n\n for (;;) {\n "," = ","[$ctx.action]($ctx.sentIgnoreThrow);\n if (",".done) {\n $ctx.sent = ",".value;\n break;\n }\n yield ",".value;\n }"],{raw:{value:Object.freeze(["\n "," = ","[Symbol.iterator]();\n // received = void 0;\n $ctx.sent = void 0;\n // send = true; // roughly equivalent\n $ctx.action = 'next';\n\n for (;;) {\n "," = ","[$ctx.action]($ctx.sentIgnoreThrow);\n if (",".done) {\n $ctx.sent = ",".value;\n break;\n }\n yield ",".value;\n }"])}})),d=Object.freeze(Object.defineProperties(["$ctx.sentIgnoreThrow"],{raw:{value:Object.freeze(["$ctx.sentIgnoreThrow"])}})),e=Object.freeze(Object.defineProperties(["$ctx.sent"],{raw:{value:Object.freeze(["$ctx.sent"])}})),f=Object.freeze(Object.defineProperties(["$ctx.maybeThrow()"],{raw:{value:Object.freeze(["$ctx.maybeThrow()"])}})),g=Object.freeze(Object.defineProperties(["$traceurRuntime.createGeneratorInstance"],{raw:{value:Object.freeze(["$traceurRuntime.createGeneratorInstance"])}})),h=System.get("traceur@0.0.79/src/codegeneration/generator/CPSTransformer.js").CPSTransformer,i=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),j=i.BINARY_EXPRESSION,k=i.YIELD_EXPRESSION,l=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),m=l.BinaryExpression,n=l.ExpressionStatement,o=System.get("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js").FindInFunctionScope,p=System.get("traceur@0.0.79/src/codegeneration/generator/ReturnState.js").ReturnState,q=System.get("traceur@0.0.79/src/codegeneration/generator/YieldState.js").YieldState,r=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),s=r.createIdentifierExpression,t=(r.createMemberExpression,r.createUndefinedExpression),u=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),v=u.parseExpression,w=u.parseStatement,x=u.parseStatements,y=function(){$traceurRuntime.superConstructor(z).apply(this,arguments)},z=y;$traceurRuntime.createClass(y,{visitYieldExpression:function(){this.found=!0}},{},o);var A=function(a,b){$traceurRuntime.superConstructor(B).call(this,a,b),this.shouldAppendThrowCloseState_=!0},B=A;return $traceurRuntime.createClass(A,{expressionNeedsStateMachine:function(a){return null===a?!1:b(a)},transformYieldExpression_:function(a){var b,c,d;if(this.expressionNeedsStateMachine(a.expression)?(b=this.expressionToStateMachine(a.expression),c=b.expression,d=b.machine,b):(c=this.transformAny(a.expression),c||(c=t())),a.isYieldFor)return this.transformYieldForExpression_(c,d);var e=this.allocateState(),f=this.allocateState(),g=this.stateToStateMachine_(new q(e,f,c),f);return d&&(g=d.append(g)),this.shouldAppendThrowCloseState_&&(g=g.append(this.createThrowCloseState_())),g},transformYieldForExpression_:function(a){var b=arguments[1],d=this.getTempIdentifier();this.addMachineVariable(d);var e=s(d),f=this.getTempIdentifier();this.addMachineVariable(f);var g=s(f),h=x(c,e,a,g,e,g,g,g),i=this.shouldAppendThrowCloseState_;this.shouldAppendThrowCloseState_=!1,h=this.transformList(h);var j=this.transformStatementList_(h);return this.shouldAppendThrowCloseState_=i,b&&(j=b.append(j)),j},transformYieldExpression:function(a){return this.reporter.reportError(a.location.start,"Only 'a = yield b' and 'var a = yield b' currently supported."),a},transformYieldAssign_:function(a){var b=this.shouldAppendThrowCloseState_;this.shouldAppendThrowCloseState_=!1;var c=this.transformYieldExpression_(a.right),f=this.transformAny(a.left),g=v(a.right.isYieldFor?d:e),h=new n(a.location,new m(a.location,f,a.operator,g)),i=this.statementToStateMachine_(h);return this.shouldAppendThrowCloseState_=b,c.append(i)},createThrowCloseState_:function(){return this.statementToStateMachine_(w(f))},transformExpressionStatement:function(b){var c=b.expression;return c.type===k?this.transformYieldExpression_(c):a(c)?this.transformYieldAssign_(c):this.expressionNeedsStateMachine(c)?this.expressionToStateMachine(c).machine:$traceurRuntime.superGet(this,B.prototype,"transformExpressionStatement").call(this,b)},transformAwaitStatement:function(a){return this.reporter.reportError(a.location.start,"Generator function may not have an await statement."),a},transformReturnStatement:function(a){var b,c,d;this.expressionNeedsStateMachine(a.expression)?(b=this.expressionToStateMachine(a.expression),c=b.expression,d=b.machine,b):c=a.expression;var e=this.allocateState(),f=this.allocateState(),g=this.stateToStateMachine_(new p(e,f,this.transformAny(c)),f);return d?d.append(g):g},transformGeneratorBody:function(a,b){var c=v(g);return this.transformCpsFunctionBody(a,c,b)}},{transformGeneratorBody:function(a,b,c,d){return new B(a,b).transformGeneratorBody(c,d)}},h),{get GeneratorTransformer(){return A}}}),System.registerModule("traceur@0.0.79/src/codegeneration/GeneratorTransformPass.js",[],function(){"use strict";function a(a){return v.generators&&a.isGenerator()||v.asyncFunctions&&a.isAsyncFunction()}var b=Object.freeze(Object.defineProperties(["$traceurRuntime.initGeneratorFunction(",")"],{raw:{value:Object.freeze(["$traceurRuntime.initGeneratorFunction(",")"])}})),c=Object.freeze(Object.defineProperties(["var "," = ",""],{raw:{value:Object.freeze(["var "," = ",""])}})),d=Object.freeze(Object.defineProperties(["$traceurRuntime.initGeneratorFunction(",")"],{raw:{value:Object.freeze(["$traceurRuntime.initGeneratorFunction(",")"])}})),e=System.get("traceur@0.0.79/src/codegeneration/ArrowFunctionTransformer.js").ArrowFunctionTransformer,f=System.get("traceur@0.0.79/src/codegeneration/generator/AsyncTransformer.js").AsyncTransformer,g=System.get("traceur@0.0.79/src/codegeneration/generator/ForInTransformPass.js").ForInTransformPass,h=System.get("traceur@0.0.79/src/codegeneration/generator/GeneratorTransformer.js").GeneratorTransformer,i=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),j=i.parseExpression,k=i.parseStatement,l=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,m=System.get("traceur@0.0.79/src/codegeneration/FindInFunctionScope.js").FindInFunctionScope,n=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),o=n.AnonBlock,p=n.FunctionDeclaration,q=n.FunctionExpression,r=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),s=r.createBindingIdentifier,t=r.createIdentifierExpression,u=r.createIdentifierToken,v=System.get("traceur@0.0.79/src/Options.js").transformOptions,w=function(){$traceurRuntime.superConstructor(x).apply(this,arguments)},x=w;$traceurRuntime.createClass(w,{visitForInStatement:function(){this.found=!0}},{},m);var y=function(a,b){$traceurRuntime.superConstructor(z).call(this,a),this.reporter_=b,this.inBlock_=!1},z=y;return $traceurRuntime.createClass(y,{transformFunctionDeclaration:function(b){return a(b)?b.isGenerator()?this.transformGeneratorDeclaration_(b):this.transformFunction_(b,p,null):$traceurRuntime.superGet(this,z.prototype,"transformFunctionDeclaration").call(this,b)},transformGeneratorDeclaration_:function(a){var d=t(a.name.identifierToken),e=j(b,d),f=t(this.inBlock_?this.getTempIdentifier():this.addTempVar(e)),g=this.transformFunction_(a,p,f);return this.inBlock_?new o(null,[g,k(c,f,e)]):g},transformFunctionExpression:function(b){return a(b)?b.isGenerator()?this.transformGeneratorExpression_(b):this.transformFunction_(b,q,null):$traceurRuntime.superGet(this,z.prototype,"transformFunctionExpression").call(this,b)},transformGeneratorExpression_:function(a){var b;a.name?b=a.name.identifierToken:(b=u(this.getTempIdentifier()),a=new q(a.location,s(b),a.functionKind,a.parameterList,a.typeAnnotation,a.annotations,a.body));var c=this.transformFunction_(a,q,t(b));return j(d,c)},transformFunction_:function(a,b,c){var d=$traceurRuntime.superGet(this,z.prototype,"transformAny").call(this,a.body),e=new w;e.visitAny(d),e.found&&(d=new g(this.identifierGenerator).transformAny(d)),v.generators&&a.isGenerator()?d=h.transformGeneratorBody(this.identifierGenerator,this.reporter_,d,c):v.asyncFunctions&&a.isAsyncFunction()&&(d=f.transformAsyncBody(this.identifierGenerator,this.reporter_,d));var i=null;return new b(a.location,a.name,i,a.parameterList,a.typeAnnotation||null,a.annotations||null,d)},transformArrowFunctionExpression:function(a){return a.isAsyncFunction()?this.transformAny(e.transform(this,a)):$traceurRuntime.superGet(this,z.prototype,"transformArrowFunctionExpression").call(this,a)},transformBlock:function(a){var b=this.inBlock_;this.inBlock_=!0;var c=$traceurRuntime.superGet(this,z.prototype,"transformBlock").call(this,a);return this.inBlock_=b,c}},{},l),{get GeneratorTransformPass(){return y}}}),System.registerModule("traceur@0.0.79/src/codegeneration/InlineModuleTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/TokenType.js").VAR,b=System.get("traceur@0.0.79/src/codegeneration/ModuleTransformer.js").ModuleTransformer,c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),d=c.createBindingIdentifier,e=c.createEmptyStatement,f=c.createFunctionBody,g=c.createImmediatelyInvokedFunctionExpression,h=c.createScopedExpression,i=c.createVariableStatement,j=System.get("traceur@0.0.79/src/codegeneration/globalThis.js").default,k=System.get("traceur@0.0.79/src/codegeneration/scopeContainsThis.js").default,l=0,m=function(){$traceurRuntime.superConstructor(n).apply(this,arguments)},n=m;return $traceurRuntime.createClass(m,{wrapModule:function(b){var c,d=this.moduleName||"anon_"+ ++l,e=this.getTempVarNameForModuleName(d),m=f(b);return c=b.some(k)?h(m,j()):g(m),[i(a,e,c)]},transformNamedExport:function(){return e()},transformModuleSpecifier:function(a){return d(this.getTempVarNameForModuleSpecifier(a))}},{},b),{get InlineModuleTransformer(){return m}}}),System.registerModule("traceur@0.0.79/src/codegeneration/InstantiateModuleTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties([""," = ",""],{raw:{value:Object.freeze([""," = ",""])}})),b=Object.freeze(Object.defineProperties(["$__export(",", ",")"],{raw:{value:Object.freeze(["$__export(",", ",")"])}})),c=Object.freeze(Object.defineProperties(["($__export(",", "," + 1), ",")"],{raw:{value:Object.freeze(["($__export(",", "," + 1), ",")"])}})),d=Object.freeze(Object.defineProperties(["($__export(",", "," - 1), ",")"],{raw:{value:Object.freeze(["($__export(",", "," - 1), ",")"])}})),e=Object.freeze(Object.defineProperties(["$__export(",", ",")}"],{raw:{value:Object.freeze(["$__export(",", ",")}"])}})),f=Object.freeze(Object.defineProperties(["System.register(",", ",", function($__export) {\n ","\n });"],{raw:{value:Object.freeze(["System.register(",", ",", function($__export) {\n ","\n });"])}})),g=Object.freeze(Object.defineProperties(["System.register(",", function($__export) {\n ","\n });"],{raw:{value:Object.freeze(["System.register(",", function($__export) {\n ","\n });"])}})),h=Object.freeze(Object.defineProperties([""," = m.",";"],{raw:{value:Object.freeze([""," = m.",";"])}})),i=Object.freeze(Object.defineProperties(["$__export(",", m.",");"],{raw:{value:Object.freeze(["$__export(",", m.",");"])}})),j=Object.freeze(Object.defineProperties([""," = m;"],{raw:{value:Object.freeze([""," = m;"])}})),k=Object.freeze(Object.defineProperties(["\n Object.keys(m).forEach(function(p) {\n if (!$__exportNames[p])\n $__export(p, m[p]);\n });\n "],{raw:{value:Object.freeze(["\n Object.keys(m).forEach(function(p) {\n if (!$__exportNames[p])\n $__export(p, m[p]);\n });\n "])}})),l=Object.freeze(Object.defineProperties(["\n var $__exportNames = ",";\n "],{raw:{value:Object.freeze(["\n var $__exportNames = ",";\n "])}})),m=Object.freeze(Object.defineProperties(["function(m) {\n ","\n }"],{raw:{value:Object.freeze(["function(m) {\n ","\n }"])}})),n=Object.freeze(Object.defineProperties(["function(m) {}"],{raw:{value:Object.freeze(["function(m) {}"])}})),o=Object.freeze(Object.defineProperties(["\n $__export(",", ",")\n "],{raw:{value:Object.freeze(["\n $__export(",", ",")\n "])}})),p=Object.freeze(Object.defineProperties(["return {\n setters: ",",\n execute: ","\n }"],{raw:{value:Object.freeze(["return {\n setters: ",",\n execute: ","\n }"])}})),q=Object.freeze(Object.defineProperties(["$__export(",", ",")"],{raw:{value:Object.freeze(["$__export(",", ",")"])}})),r=Object.freeze(Object.defineProperties(["$__export(",", ",")"],{raw:{value:Object.freeze(["$__export(",", ",")"])}})),s=Object.freeze(Object.defineProperties(["var "," = $__export(",", ",");"],{raw:{value:Object.freeze(["var "," = $__export(",", ",");"])}})),t=Object.freeze(Object.defineProperties(["var ",";"],{raw:{value:Object.freeze(["var ",";"])}})),u=Object.freeze(Object.defineProperties(["$__export('default', ",");"],{raw:{value:Object.freeze(["$__export('default', ",");"])}})),v=Object.freeze(Object.defineProperties(["$__export(",", ",");"],{raw:{value:Object.freeze(["$__export(",", ",");"])}})),w=Object.freeze(Object.defineProperties(["var ",";"],{raw:{value:Object.freeze(["var ",";"])}})),x=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),y=x.AnonBlock,z=x.ArrayLiteralExpression,A=x.ClassExpression,B=x.CommaExpression,C=x.ExpressionStatement,D=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),E=D.CLASS_DECLARATION,F=D.FUNCTION_DECLARATION,G=D.IDENTIFIER_EXPRESSION,H=D.IMPORT_SPECIFIER_SET,I=System.get("traceur@0.0.79/src/codegeneration/ScopeTransformer.js").ScopeTransformer,J=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),K=J.createIdentifierExpression,L=J.createIdentifierToken,M=J.createVariableStatement,N=J.createVariableDeclaration,O=J.createVariableDeclarationList,P=System.get("traceur@0.0.79/src/codegeneration/ModuleTransformer.js").ModuleTransformer,Q=System.get("traceur@0.0.79/src/syntax/TokenType.js"),R=Q.MINUS_MINUS,S=Q.PLUS_PLUS,T=Q.VAR,U=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),V=U.parseExpression,W=U.parseStatement,X=U.parseStatements,Y=System.get("traceur@0.0.79/src/codegeneration/HoistVariablesTransformer.js").default,Z=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),$=Z.createFunctionExpression,_=Z.createEmptyParameterList,ab=Z.createFunctionBody,bb=Z.createObjectLiteral,cb=function(){$traceurRuntime.superConstructor(db).call(this),this.declarations_=[]},db=cb;$traceurRuntime.createClass(cb,{getDeclarationStatements:function(){return $traceurRuntime.spread([this.getVariableStatement()],this.declarations_)},addDeclaration:function(a){this.declarations_.push(a)},transformFunctionDeclaration:function(a){return this.addDeclaration(a),new y(null,[])},transformClassDeclaration:function(b){return this.addVariable(b.name.identifierToken.value),b=new A(b.location,b.name,b.superClass,b.elements,b.annotations,b.typeParameters),W(a,b.name.identifierToken,b)}},{},Y);var eb=function(a,b){$traceurRuntime.superConstructor(fb).call(this,b),this.bindingName_=b,this.exportName_=a},fb=eb;$traceurRuntime.createClass(eb,{matchesBindingName_:function(a){return a.type===G&&a.identifierToken.value==this.bindingName_},transformUnaryExpression:function(a){if(!this.matchesBindingName_(a.operand))return $traceurRuntime.superGet(this,fb.prototype,"transformUnaryExpression").call(this,a);var c=a.operator.type;if(c!==S&&c!==R)return $traceurRuntime.superGet(this,fb.prototype,"transformUnaryExpression").call(this,a);var d=this.transformAny(a.operand);return d!==a.operand&&(a=new UnaryExpression(a.location,a.operator,d)),V(b,this.exportName_,a)},transformPostfixExpression:function(a){if(a=$traceurRuntime.superGet(this,fb.prototype,"transformPostfixExpression").call(this,a),!this.matchesBindingName_(a.operand))return a;switch(a.operator.type){case S:return V(c,this.exportName_,a.operand,a);case R:return V(d,this.exportName_,a.operand,a)}return a},transformBinaryExpression:function(a){return a=$traceurRuntime.superGet(this,fb.prototype,"transformBinaryExpression").call(this,a),a.operator.isAssignmentOperator()&&this.matchesBindingName_(a.left)?V(e,this.exportName_,a):a}},{},I);var gb=function(a){$traceurRuntime.superConstructor(hb).call(this,a),this.inExport_=!1,this.curDepIndex_=null,this.dependencies=[],this.externalExportBindings=[],this.importBindings=[],this.localExportBindings=[],this.functionDeclarations=[],this.moduleBindings=[],this.exportStarBindings=[]},hb=gb;return $traceurRuntime.createClass(gb,{wrapModule:function(a){return this.moduleName?X(f,this.moduleName,this.dependencies,a):X(g,this.dependencies,a)},appendExportStatement:function(a){var b=this,c=new cb;this.localExportBindings.forEach(function(b){a=new eb(b.exportName,b.localName).transformList(a)});var d=a.map(function(a){return c.transformAny(a)}),e=$(_(),ab(d)),f=c.getDeclarationStatements(),g=this.dependencies.map(function(a,c){var d=b.importBindings[c],e=b.externalExportBindings[c],g=b.exportStarBindings[c],o=b.moduleBindings[c],p=[];if(d&&d.forEach(function(a){p.push(W(h,L(a.variableName),a.exportName))}),e&&e.forEach(function(a){p.push(W(i,a.exportName,a.importName))}),o&&p.push(W(j,K(o))),g){p=p.concat(X(k));var q={};b.localExportBindings.concat(b.externalExportBindings).forEach(function(a){q[a.exportName]=!0}),f.push(W(l,bb(q)))}return p.length?V(m,p):V(n)});return f=f.concat(this.functionDeclarations.map(function(a){return W(o,a.exportName,L(a.functionName))})),f.push(W(p,new z(null,g),e)),f},addLocalExportBinding:function(a){var b=void 0!==arguments[1]?arguments[1]:a;this.localExportBindings.push({exportName:a,localName:b})},addImportBinding:function(a,b,c){this.importBindings[a]=this.importBindings[a]||[],this.importBindings[a].push({variableName:b,exportName:c})},addExternalExportBinding:function(a,b,c){this.externalExportBindings[a]=this.externalExportBindings[a]||[],this.externalExportBindings[a].push({exportName:b,importName:c})},addExportStarBinding:function(a){this.exportStarBindings[a]=!0},addModuleBinding:function(a,b){this.moduleBindings[a]=b},addExportFunction:function(a){var b=void 0!==arguments[1]?arguments[1]:a;this.functionDeclarations.push({exportName:a,functionName:b})},getOrCreateDependencyIndex:function(a){var b=a.token.processedValue,c=this.dependencies.indexOf(b);return-1==c&&(c=this.dependencies.length,this.dependencies.push(b)),c},transformExportDeclaration:function(a){this.inExport_=!0,this.curDepIndex_=a.declaration.moduleSpecifier?this.getOrCreateDependencyIndex(a.declaration.moduleSpecifier):null;var b=this.transformAny(a.declaration);return this.inExport_=!1,b},transformVariableStatement:function(a){var b=this;return this.inExport_?(this.inExport_=!1,M(O(T,a.declarations.declarations.map(function(a){var c,d=a.lvalue.identifierToken.value;
return b.addLocalExportBinding(d),c=a.initializer?V(q,d,b.transformAny(a.initializer)):V(r,d,K(d)),N(d,c)})))):$traceurRuntime.superGet(this,hb.prototype,"transformVariableStatement").call(this,a)},transformExportStar:function(){return this.inExport_=!1,this.addExportStarBinding(this.curDepIndex_),new y(null,[])},transformClassDeclaration:function(a){if(!this.inExport_)return $traceurRuntime.superGet(this,hb.prototype,"transformClassDeclaration").call(this,a);this.inExport_=!1;var b=this.transformAny(a.name),c=this.transformAny(a.superClass),d=this.transformList(a.elements),e=this.transformList(a.annotations),f=this.transformAny(a.typeParameters),g=b.identifierToken.value,h=new A(a.location,b,c,d,e,f);return this.addLocalExportBinding(g),W(s,g,g,h)},transformFunctionDeclaration:function(a){if(this.inExport_){var b=a.name.getStringValue();this.addLocalExportBinding(b),this.addExportFunction(b),this.inExport_=!1}return $traceurRuntime.superGet(this,hb.prototype,"transformFunctionDeclaration").call(this,a)},transformNamedExport:function(a){this.transformAny(a.moduleSpecifier);var b=this.transformAny(a.specifierSet);return null===this.curDepIndex_?b:new y(null,[])},transformImportDeclaration:function(a){this.curDepIndex_=this.getOrCreateDependencyIndex(a.moduleSpecifier);this.transformAny(a.moduleSpecifier);if(!a.importClause)return new y(null,[]);var b=this.transformAny(a.importClause);if(a.importClause.type===H)return b;var c=a.importClause.binding.getStringValue();return this.addImportBinding(this.curDepIndex_,c,"default"),W(t,c)},transformImportSpecifierSet:function(a){return M(O(T,this.transformList(a.specifiers)))},transformExportDefault:function(a){this.inExport_=!1;var b=this.transformAny(a.expression);return this.addLocalExportBinding("default"),b.type===E&&(b=new A(b.location,b.name,b.superClass,b.elements,b.annotations,b.typeParameters)),b.type===F?(this.addExportFunction("default",b.name.identifierToken.value),b):W(u,b)},transformExportSpecifier:function(a){var b,c;return a.rhs?(b=a.rhs.value,c=a.lhs.value):(b=a.lhs.value,c=b),null===this.curDepIndex_?(this.addLocalExportBinding(b,c),V(v,b,K(c))):void this.addExternalExportBinding(this.curDepIndex_,b,c)},transformExportSpecifierSet:function(a){var b=this.transformList(a.specifiers);return new C(a.location,new B(a.location,b.filter(function(a){return a})))},transformImportSpecifier:function(a){var b=a.binding.binding,c=b.identifierToken,d=(a.name||c).value;return this.addImportBinding(this.curDepIndex_,c.value,d),N(b)},transformModuleDeclaration:function(a){this.transformAny(a.expression);var b=a.binding.binding,c=b.getStringValue();return this.addModuleBinding(this.curDepIndex_,c),W(w,b)},transformModuleSpecifier:function(a){return this.curDepIndex_=this.getOrCreateDependencyIndex(a),a}},{},P),{get InstantiateModuleTransformer(){return gb}}}),System.registerModule("traceur@0.0.79/src/codegeneration/MemberVariableTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["get ","():","\n { return this.","; }"],{raw:{value:Object.freeze(["get ","():","\n { return this.","; }"])}})),b=Object.freeze(Object.defineProperties(["set ","(value:",")\n { this."," = value; }"],{raw:{value:Object.freeze(["set ","(value:",")\n { this."," = value; }"])}})),c=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),d=c.AnonBlock,e=(c.ClassDeclaration,c.ClassExpression,System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js").PROPERTY_VARIABLE_DECLARATION,System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parsePropertyDefinition),f=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,g=function(a){$traceurRuntime.superConstructor(h).call(this),this.identifierGenerator_=a},h=g;return $traceurRuntime.createClass(g,{transformPropertyVariableDeclaration:function(a){var b=this.identifierGenerator_.generateUniqueIdentifier(),c=this.createGetAccessor_(b,a),e=this.createSetAccessor_(b,a);return new d(a.location,[c,e])},createGetAccessor_:function(b,c){var d=c.name.literalToken,f=c.typeAnnotation,g=e(a,d,f,b);return g.isStatic=c.isStatic,g},createSetAccessor_:function(a,c){var d=c.name.literalToken,f=c.typeAnnotation,g=e(b,d,f,a);return g.isStatic=c.isStatic,g}},{},f),{get MemberVariableTransformer(){return g}}}),System.registerModule("traceur@0.0.79/src/outputgeneration/ParseTreeWriter.js",[],function(){"use strict";function a(a,b){return!((a!==_&&a!==ab||b!==_&&b!==ab)&&(a!==ib&&a!==jb||b!==ib&&b!==jb))}function b(a){return v(a.charCodeAt(a.length-1))}var c=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),d=c.BLOCK,e=c.CLASS_DECLARATION,f=c.FUNCTION_DECLARATION,g=c.IF_STATEMENT,h=c.LITERAL_EXPRESSION,i=c.POSTFIX_EXPRESSION,j=c.UNARY_EXPRESSION,k=System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor,l=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),m=l.AS,n=l.ASYNC,o=l.AWAIT,p=l.FROM,q=l.GET,r=l.OF,s=l.SET,t=System.get("traceur@0.0.79/src/syntax/Scanner.js"),u=t.isIdentifierPart,v=t.isWhitespace,w=System.get("traceur@0.0.79/src/syntax/TokenType.js"),x=w.ARROW,y=w.AT,z=w.BACK_QUOTE,A=w.BAR,B=w.BREAK,C=w.CASE,D=w.CATCH,E=w.CLASS,F=w.CLOSE_ANGLE,G=w.CLOSE_CURLY,H=w.CLOSE_PAREN,I=w.CLOSE_SQUARE,J=w.COLON,K=w.COMMA,L=w.CONTINUE,M=w.DEBUGGER,N=w.DEFAULT,O=w.DO,P=w.DOT_DOT_DOT,Q=w.ELSE,R=w.EQUAL,S=w.EXPORT,T=w.EXTENDS,U=w.FINALLY,V=w.FOR,W=w.FUNCTION,X=w.IF,Y=w.IMPORT,Z=w.IN,$=w.INTERFACE,_=w.MINUS,ab=w.MINUS_MINUS,bb=w.NEW,cb=w.NUMBER,db=w.OPEN_ANGLE,eb=w.OPEN_CURLY,fb=w.OPEN_PAREN,gb=w.OPEN_SQUARE,hb=w.PERIOD,ib=w.PLUS,jb=w.PLUS_PLUS,kb=w.QUESTION,lb=w.RETURN,mb=w.SEMI_COLON,nb=w.STAR,ob=w.STATIC,pb=w.SUPER,qb=w.SWITCH,rb=w.THIS,sb=w.THROW,tb=w.TRY,ub=w.WHILE,vb=w.WITH,wb=w.YIELD,xb="\n",yb=80,zb=function(){var a,b,c,d=void 0!==arguments[0]?arguments[0]:{},e=void 0===(a=d.highlighted)?!1:a,f=void 0===(b=d.showLineNumbers)?!1:b,g=void 0===(c=d.prettyPrint)?!0:c;$traceurRuntime.superConstructor(Ab).call(this),this.highlighted_=e,this.showLineNumbers_=f,this.prettyPrint_=g,this.result_="",this.currentLine_="",this.currentLineComment_=null,this.indentDepth_=0,this.currentParameterTypeAnnotation_=null},Ab=zb;return $traceurRuntime.createClass(zb,{toString:function(){return this.currentLine_.length>0&&(this.result_+=this.currentLine_,this.currentLine_=""),this.result_},visitAny:function(a){if(a){if(a===this.highlighted_&&this.write_(""),null!==a.location&&null!==a.location.start&&this.showLineNumbers_){var b=a.location.start.line+1,c=a.location.start.column;this.currentLineComment_="Line: "+b+"."+c}$traceurRuntime.superGet(this,Ab.prototype,"visitAny").call(this,a),a===this.highlighted_&&this.write_("")}},visitAnnotation:function(a){this.write_(y),this.visitAny(a.name),null!==a.args&&(this.write_(fb),this.writeList_(a.args,K,!1),this.write_(H))},visitArgumentList:function(a){this.write_(fb),this.writeList_(a.args,K,!1),this.write_(H)},visitArrayComprehension:function(a){this.write_(gb),this.visitList(a.comprehensionList),this.visitAny(a.expression),this.write_(I)},visitArrayLiteralExpression:function(a){this.write_(gb),this.writeList_(a.elements,K,!1),this.write_(I)},visitArrayPattern:function(a){this.write_(gb),this.writeList_(a.elements,K,!1),this.write_(I)},visitArrayType:function(a){this.visitAny(a.elementType),this.write_(gb),this.write_(I)},visitArrowFunctionExpression:function(a){a.functionKind&&(this.write_(a.functionKind),this.writeSpace_()),this.write_(fb),this.visitAny(a.parameterList),this.write_(H),this.writeSpace_(),this.write_(x),this.writeSpace_(),this.visitAny(a.body)},visitAssignmentElement:function(a){this.visitAny(a.assignment),a.initializer&&(this.writeSpace_(),this.write_(R),this.writeSpace_(),this.visitAny(a.initializer))},visitAwaitExpression:function(a){this.write_(o),this.writeSpace_(),this.visitAny(a.expression)},visitBinaryExpression:function(b){var c=b.left;this.visitAny(c);var d=b.operator;c.type===i&&a(c.operator.type,d.type)?this.writeRequiredSpace_():this.writeSpace_(),this.write_(d);var e=b.right;e.type===j&&a(d.type,e.operator.type)?this.writeRequiredSpace_():this.writeSpace_(),this.visitAny(e)},visitBindingElement:function(a){var b=this.currentParameterTypeAnnotation_;this.currentParameterTypeAnnotation_=null,this.visitAny(a.binding),this.writeTypeAnnotation_(b),a.initializer&&(this.writeSpace_(),this.write_(R),this.writeSpace_(),this.visitAny(a.initializer))},visitBindingIdentifier:function(a){this.write_(a.identifierToken)},visitBlock:function(a){this.write_(eb),this.writelnList_(a.statements),this.write_(G)},visitBreakStatement:function(a){this.write_(B),null!==a.name&&(this.writeSpace_(),this.write_(a.name)),this.write_(mb)},visitCallExpression:function(a){this.visitAny(a.operand),this.visitAny(a.args)},visitCallSignature:function(a){a.typeParameters&&this.visitAny(a.typeParameters),this.write_(fb),this.visitAny(a.parameterList),this.write_(H),this.writeTypeAnnotation_(a.returnType)},visitCaseClause:function(a){this.write_(C),this.writeSpace_(),this.visitAny(a.expression),this.write_(J),this.indentDepth_++,this.writelnList_(a.statements),this.indentDepth_--},visitCatch:function(a){this.write_(D),this.writeSpace_(),this.write_(fb),this.visitAny(a.binding),this.write_(H),this.writeSpace_(),this.visitAny(a.catchBody)},visitClassShared_:function(a){this.writeAnnotations_(a.annotations),this.write_(E),this.writeSpace_(),this.visitAny(a.name),null!==a.typeParameters&&this.visitAny(a.typeParameters),null!==a.superClass&&(this.writeSpace_(),this.write_(T),this.writeSpace_(),this.visitAny(a.superClass)),this.writeSpace_(),this.write_(eb),this.writelnList_(a.elements),this.write_(G)},visitClassDeclaration:function(a){this.visitClassShared_(a)},visitClassExpression:function(a){this.visitClassShared_(a)},visitCommaExpression:function(a){this.writeList_(a.expressions,K,!1)},visitComprehensionFor:function(a){this.write_(V),this.writeSpace_(),this.write_(fb),this.visitAny(a.left),this.writeSpace_(),this.write_(r),this.writeSpace_(),this.visitAny(a.iterator),this.write_(H),this.writeSpace_()},visitComprehensionIf:function(a){this.write_(X),this.writeSpace_(),this.write_(fb),this.visitAny(a.expression),this.write_(H),this.writeSpace_()},visitComputedPropertyName:function(a){this.write_(gb),this.visitAny(a.expression),this.write_(I)},visitConstructSignature:function(a){this.write_(bb),this.writeSpace_(),this.visitCallSignature(a)},visitConstructorType:function(a){this.write_(bb),this.writeSpace_(),this.visitFunctionType(a)},visitConditionalExpression:function(a){this.visitAny(a.condition),this.writeSpace_(),this.write_(kb),this.writeSpace_(),this.visitAny(a.left),this.writeSpace_(),this.write_(J),this.writeSpace_(),this.visitAny(a.right)},visitContinueStatement:function(a){this.write_(L),null!==a.name&&(this.writeSpace_(),this.write_(a.name)),this.write_(mb)},visitCoverInitializedName:function(a){this.write_(a.name),this.writeSpace_(),this.write_(a.equalToken),this.writeSpace_(),this.visitAny(a.initializer)},visitDebuggerStatement:function(){this.write_(M),this.write_(mb)},visitDefaultClause:function(a){this.write_(N),this.write_(J),this.indentDepth_++,this.writelnList_(a.statements),this.indentDepth_--},visitDoWhileStatement:function(a){this.write_(O),this.visitAnyBlockOrIndent_(a.body),this.writeSpace_(),this.write_(ub),this.writeSpace_(),this.write_(fb),this.visitAny(a.condition),this.write_(H),this.write_(mb)},visitEmptyStatement:function(){this.write_(mb)},visitExportDeclaration:function(a){this.writeAnnotations_(a.annotations),this.write_(S),this.writeSpace_(),this.visitAny(a.declaration)},visitExportDefault:function(a){switch(this.write_(N),this.writeSpace_(),this.visitAny(a.expression),a.expression.type){case e:case f:break;default:this.write_(mb)}},visitNamedExport:function(a){this.visitAny(a.specifierSet),a.moduleSpecifier&&(this.writeSpace_(),this.write_(p),this.writeSpace_(),this.visitAny(a.moduleSpecifier)),this.write_(mb)},visitExportSpecifier:function(a){this.write_(a.lhs),a.rhs&&(this.writeSpace_(),this.write_(m),this.writeSpace_(),this.write_(a.rhs))},visitExportSpecifierSet:function(a){this.write_(eb),this.writeList_(a.specifiers,K,!1),this.write_(G)},visitExportStar:function(){this.write_(nb)},visitExpressionStatement:function(a){this.visitAny(a.expression),this.write_(mb)},visitFinally:function(a){this.write_(U),this.writeSpace_(),this.visitAny(a.block)},visitForOfStatement:function(a){this.write_(V),this.writeSpace_(),this.write_(fb),this.visitAny(a.initializer),this.writeSpace_(),this.write_(r),this.writeSpace_(),this.visitAny(a.collection),this.write_(H),this.visitAnyBlockOrIndent_(a.body)},visitForInStatement:function(a){this.write_(V),this.writeSpace_(),this.write_(fb),this.visitAny(a.initializer),this.writeSpace_(),this.write_(Z),this.writeSpace_(),this.visitAny(a.collection),this.write_(H),this.visitAnyBlockOrIndent_(a.body)},visitForStatement:function(a){this.write_(V),this.writeSpace_(),this.write_(fb),this.visitAny(a.initializer),this.write_(mb),this.writeSpace_(),this.visitAny(a.condition),this.write_(mb),this.writeSpace_(),this.visitAny(a.increment),this.write_(H),this.visitAnyBlockOrIndent_(a.body)},visitFormalParameterList:function(a){for(var b=!0,c=0;c<a.parameters.length;c++){var d=a.parameters[c];b?b=!1:(this.write_(K),this.writeSpace_()),this.visitAny(d)}},visitFormalParameter:function(a){this.writeAnnotations_(a.annotations,!1),this.currentParameterTypeAnnotation_=a.typeAnnotation,this.visitAny(a.parameter),this.currentParameterTypeAnnotation_=null},visitFunctionBody:function(a){this.write_(eb),this.writelnList_(a.statements),this.write_(G)},visitFunctionDeclaration:function(a){this.visitFunction_(a)},visitFunctionExpression:function(a){this.visitFunction_(a)},visitFunction_:function(a){this.writeAnnotations_(a.annotations),a.isAsyncFunction()&&this.write_(a.functionKind),this.write_(W),a.isGenerator()&&this.write_(a.functionKind),a.name&&(this.writeSpace_(),this.visitAny(a.name)),this.write_(fb),this.visitAny(a.parameterList),this.write_(H),this.writeTypeAnnotation_(a.typeAnnotation),this.writeSpace_(),this.visitAny(a.body)},visitFunctionType:function(a){null!==a.typeParameters&&this.visitAny(a.typeParameters),this.write_(fb),this.visitAny(a.parameterList),this.write_(H),this.writeSpace_(),this.write_(x),this.writeSpace_(),this.visitAny(a.returnType)},visitGeneratorComprehension:function(a){this.write_(fb),this.visitList(a.comprehensionList),this.visitAny(a.expression),this.write_(H)},visitGetAccessor:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(ob),this.writeSpace_()),this.write_(q),this.writeSpace_(),this.visitAny(a.name),this.write_(fb),this.write_(H),this.writeSpace_(),this.writeTypeAnnotation_(a.typeAnnotation),this.visitAny(a.body)},visitIdentifierExpression:function(a){this.write_(a.identifierToken)},visitIfStatement:function(a){this.write_(X),this.writeSpace_(),this.write_(fb),this.visitAny(a.condition),this.write_(H),this.visitAnyBlockOrIndent_(a.ifClause),a.elseClause&&(a.ifClause.type===d&&this.writeSpace_(),this.write_(Q),a.elseClause.type===g?(this.writeSpace_(),this.visitAny(a.elseClause)):this.visitAnyBlockOrIndent_(a.elseClause))},visitIndexSignature:function(a){this.write_(gb),this.write_(a.name),this.write_(J),this.writeSpace_(),this.visitAny(a.indexType),this.write_(I),this.writeTypeAnnotation_(a.typeAnnotation),this.write_(mb)},visitInterfaceDeclaration:function(a){this.write_($),this.writeSpace_(),this.write_(a.name),a.typeParameters&&this.visitAny(a.typeParameters),a.extendsClause.length>0&&(this.writeSpace_(),this.write_(T),this.writeSpace_(),this.writeList_(a.extendsClause,K,!1)),this.writeSpace_(),this.visitAny(a.objectType)},visitAnyBlockOrIndent_:function(a){a.type===d?(this.writeSpace_(),this.visitAny(a)):this.visitAnyIndented_(a)},visitAnyIndented_:function(a){var b=void 0!==arguments[1]?arguments[1]:1;this.prettyPrint_&&(this.indentDepth_+=b,this.writeln_()),this.visitAny(a),this.prettyPrint_&&(this.indentDepth_-=b,this.writeln_())},visitImportDeclaration:function(a){this.write_(Y),this.writeSpace_(),a.importClause&&(this.visitAny(a.importClause),this.writeSpace_(),this.write_(p),this.writeSpace_()),this.visitAny(a.moduleSpecifier),this.write_(mb)},visitImportSpecifier:function(a){a.name&&(this.write_(a.name),this.writeSpace_(),this.write_(m),this.writeSpace_()),this.visitAny(a.binding)},visitImportSpecifierSet:function(a){a.specifiers.type==nb?this.write_(nb):(this.write_(eb),this.writelnList_(a.specifiers,K),this.write_(G))},visitLabelledStatement:function(a){this.write_(a.name),this.write_(J),this.writeSpace_(),this.visitAny(a.statement)},visitLiteralExpression:function(a){this.write_(a.literalToken)},visitLiteralPropertyName:function(a){this.write_(a.literalToken)},visitMemberExpression:function(a){this.visitAny(a.operand),a.operand.type===h&&a.operand.literalToken.type===cb&&(/\.|e|E/.test(a.operand.literalToken.value)||this.writeRequiredSpace_()),this.write_(hb),this.write_(a.memberName)},visitMemberLookupExpression:function(a){this.visitAny(a.operand),this.write_(gb),this.visitAny(a.memberExpression),this.write_(I)},visitMethodSignature:function(a){this.visitAny(a.name),a.optional&&this.write_(kb),this.visitAny(a.callSignature),this.write_(mb)},visitSyntaxErrorTree:function(a){this.write_("(function() {"+("throw SyntaxError("+JSON.stringify(a.message)+");")+"})()")},visitModule:function(a){this.writelnList_(a.scriptItemList,null)},visitModuleSpecifier:function(a){this.write_(a.token)},visitModuleDeclaration:function(a){this.write_(Y),this.writeSpace_(),this.write_(nb),this.writeSpace_(),this.write_(m),this.visitAny(a.binding),this.writeSpace_(),this.write_(p),this.writeSpace_(),this.visitAny(a.expression),this.write_(mb)},visitNewExpression:function(a){this.write_(bb),this.writeSpace_(),this.visitAny(a.operand),this.visitAny(a.args)},visitObjectLiteralExpression:function(a){this.write_(eb),a.propertyNameAndValues.length>1&&this.writeln_(),this.writelnList_(a.propertyNameAndValues,K),a.propertyNameAndValues.length>1&&this.writeln_(),this.write_(G)},visitObjectPattern:function(a){this.write_(eb),this.writelnList_(a.fields,K),this.write_(G)},visitObjectPatternField:function(a){this.visitAny(a.name),null!==a.element&&(this.write_(J),this.writeSpace_(),this.visitAny(a.element))},visitObjectType:function(a){this.write_(eb),this.writelnList_(a.typeMembers),this.write_(G)},visitParenExpression:function(a){this.write_(fb),$traceurRuntime.superGet(this,Ab.prototype,"visitParenExpression").call(this,a),this.write_(H)},visitPostfixExpression:function(a){this.visitAny(a.operand),a.operand.type===i&&a.operand.operator.type===a.operator.type&&this.writeRequiredSpace_(),this.write_(a.operator)},visitPredefinedType:function(a){this.write_(a.typeToken)},visitScript:function(a){this.writelnList_(a.scriptItemList,null)},visitPropertyMethodAssignment:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(ob),this.writeSpace_()),a.isGenerator()&&this.write_(nb),a.isAsyncFunction()&&this.write_(n),this.visitAny(a.name),this.write_(fb),this.visitAny(a.parameterList),this.write_(H),this.writeSpace_(),this.writeTypeAnnotation_(a.typeAnnotation),this.visitAny(a.body)},visitPropertyNameAssignment:function(a){this.visitAny(a.name),this.write_(J),this.writeSpace_(),this.visitAny(a.value)},visitPropertyNameShorthand:function(a){this.write_(a.name)},visitPropertyVariableDeclaration:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(ob),this.writeSpace_()),this.visitAny(a.name),this.writeTypeAnnotation_(a.typeAnnotation),this.write_(mb)},visitPropertySignature:function(a){this.visitAny(a.name),a.optional&&this.write_(kb),this.writeTypeAnnotation_(a.typeAnnotation),this.write_(mb)},visitTemplateLiteralExpression:function(a){a.operand&&(this.visitAny(a.operand),this.writeSpace_()),this.writeRaw_(z),this.visitList(a.elements),this.writeRaw_(z)},visitTemplateLiteralPortion:function(a){this.writeRaw_(a.value)},visitTemplateSubstitution:function(a){this.writeRaw_("$"),this.writeRaw_(eb),this.visitAny(a.expression),this.writeRaw_(G)},visitReturnStatement:function(a){this.write_(lb),this.writeSpace_(a.expression),this.visitAny(a.expression),this.write_(mb)},visitRestParameter:function(a){this.write_(P),this.write_(a.identifier.identifierToken),this.writeTypeAnnotation_(a.typeAnnotation)},visitSetAccessor:function(a){this.writeAnnotations_(a.annotations),a.isStatic&&(this.write_(ob),this.writeSpace_()),this.write_(s),this.writeSpace_(),this.visitAny(a.name),this.write_(fb),this.visitAny(a.parameterList),this.write_(H),this.writeSpace_(),this.visitAny(a.body)},visitSpreadExpression:function(a){this.write_(P),this.visitAny(a.expression)},visitSpreadPatternElement:function(a){this.write_(P),this.visitAny(a.lvalue)},visitStateMachine:function(){throw new Error("State machines cannot be converted to source")},visitSuperExpression:function(){this.write_(pb)},visitSwitchStatement:function(a){this.write_(qb),this.writeSpace_(),this.write_(fb),this.visitAny(a.expression),this.write_(H),this.writeSpace_(),this.write_(eb),this.writelnList_(a.caseClauses),this.write_(G)},visitThisExpression:function(){this.write_(rb)},visitThrowStatement:function(a){this.write_(sb),this.writeSpace_(),this.visitAny(a.value),this.write_(mb)},visitTryStatement:function(a){this.write_(tb),this.writeSpace_(),this.visitAny(a.body),a.catchBlock&&(this.writeSpace_(),this.visitAny(a.catchBlock)),a.finallyBlock&&(this.writeSpace_(),this.visitAny(a.finallyBlock))},visitTypeArguments:function(a){this.write_(db);var b=a.args;this.visitAny(b[0]);for(var c=1;c<b.length;c++)this.write_(K),this.writeSpace_(),this.visitAny(b[c]);this.write_(F)},visitTypeName:function(a){a.moduleName&&(this.visitAny(a.moduleName),this.write_(hb)),this.write_(a.name)},visitTypeParameter:function(a){this.write_(a.identifierToken),a.extendsType&&(this.writeSpace_(),this.write_(T),this.writeSpace_(),this.visitAny(a.extendsType))},visitTypeParameters:function(a){this.write_(db),this.writeList_(a.parameters,K,!1),this.write_(F)},visitUnaryExpression:function(b){var c=b.operator;this.write_(c);var d=b.operand;d.type===j&&a(c.type,d.operator.type)&&this.writeRequiredSpace_(),this.visitAny(d)},visitUnionType:function(a){this.visitAny(a.types[0]);for(var b=1;b<a.types.length;b++)this.writeSpace_(),this.write_(A),this.writeSpace_(),this.visitAny(a.types[b])},visitVariableDeclarationList:function(a){this.write_(a.declarationType),this.writeSpace_(),this.writeList_(a.declarations,K,!0,2)},visitVariableDeclaration:function(a){this.visitAny(a.lvalue),this.writeTypeAnnotation_(a.typeAnnotation),null!==a.initializer&&(this.writeSpace_(),this.write_(R),this.writeSpace_(),this.visitAny(a.initializer))},visitVariableStatement:function(a){$traceurRuntime.superGet(this,Ab.prototype,"visitVariableStatement").call(this,a),this.write_(mb)},visitWhileStatement:function(a){this.write_(ub),this.writeSpace_(),this.write_(fb),this.visitAny(a.condition),this.write_(H),this.visitAnyBlockOrIndent_(a.body)},visitWithStatement:function(a){this.write_(vb),this.writeSpace_(),this.write_(fb),this.visitAny(a.expression),this.write_(H),this.writeSpace_(),this.visitAny(a.body)},visitYieldExpression:function(a){this.write_(wb),a.isYieldFor&&this.write_(nb),a.expression&&(this.writeSpace_(),this.visitAny(a.expression))},writeCurrentln_:function(){this.result_+=this.currentLine_+xb},writeln_:function(){if(this.currentLineComment_){for(;this.currentLine_.length<yb;)this.currentLine_+=" ";this.currentLine_+=" // "+this.currentLineComment_,this.currentLineComment_=null}this.currentLine_&&this.writeCurrentln_(),this.currentLine_=""},writelnList_:function(a,b){b?this.writeList_(a,b,!0):(a.length>0&&this.writeln_(),this.writeList_(a,null,!0),a.length>0&&this.writeln_())},writeList_:function(a,b,c){for(var d=void 0!==arguments[3]?arguments[3]:0,e=!0,f=0;f<a.length;f++){var g=a[f];e?e=!1:(null!==b&&(this.write_(b),c||this.writeSpace_()),c&&(1===f&&(this.indentDepth_+=d),this.writeln_())),this.visitAny(g)}c&&a.length>1&&(this.indentDepth_-=d)},writeRaw_:function(a){this.currentLine_+=a},write_:function(a){if(a===G&&this.indentDepth_--,null!==a){if(this.prettyPrint_&&!this.currentLine_)for(var b=0,c=this.indentDepth_;c>b;b++)this.currentLine_+=" ";this.needsSpace_(a)&&(this.currentLine_+=" "),this.currentLine_+=a}a===eb&&this.indentDepth_++},writeSpace_:function(){var a=void 0!==arguments[0]?arguments[0]:this.prettyPrint_;a&&!b(this.currentLine_)&&(this.currentLine_+=" ")},writeRequiredSpace_:function(){this.writeSpace_(!0)},writeTypeAnnotation_:function(a){null!==a&&(this.write_(J),this.writeSpace_(),this.visitAny(a))},writeAnnotations_:function(a){var b=void 0!==arguments[1]?arguments[1]:this.prettyPrint_;a.length>0&&(this.writeList_(a,null,b),b&&this.writeln_())},needsSpace_:function(a){var b=this.currentLine_;if(!b)return!1;var c=b.charCodeAt(b.length-1);if(v(c))return!1;var d=a.toString().charCodeAt(0);return u(d)&&(u(c)||47===c)}},{},k),{get ParseTreeWriter(){return zb}}}),System.registerModule("traceur@0.0.79/src/outputgeneration/ParseTreeMapWriter.js",[],function(){"use strict";function a(a,b){var c;if(!a||"@"===a[0])return a;if(!b)return a;var d=a.split("/"),e=b.split("/");e[e.length-1]&&e.push("");var f=0,g=[];if(d.forEach(function(a,b){return a===e[b]?(f++,!1):void g.push(a)}),1>f||f===e.length)return a;for(var h=e.length-f-1,i=[];h--;)i.push("..");return(c=i).push.apply(c,$traceurRuntime.spread(g)),i.join("/")}var b=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeWriter.js").ParseTreeWriter,c=function(a,b){var c=arguments[2];$traceurRuntime.superConstructor(d).call(this,c),this.sourceMapGenerator_=a,this.sourceRoot_=b,this.outputLineCount_=1,this.isFirstMapping_=!0},d=c;return $traceurRuntime.createClass(c,{visitAny:function(a){a&&(a.location&&this.enterBranch(a.location),$traceurRuntime.superGet(this,d.prototype,"visitAny").call(this,a),a.location&&this.exitBranch(a.location))},writeCurrentln_:function(){$traceurRuntime.superGet(this,d.prototype,"writeCurrentln_").call(this),this.flushMappings(),this.outputLineCount_++,this.generated_={line:this.outputLineCount_,column:0},this.flushMappings()},write_:function(a){this.entered_?(this.generate(),$traceurRuntime.superGet(this,d.prototype,"write_").call(this,a),this.generate()):(this.generate(),$traceurRuntime.superGet(this,d.prototype,"write_").call(this,a),this.generate())},generate:function(){var a=this.currentLine_.length?this.currentLine_.length-1:0;this.generated_={line:this.outputLineCount_,column:a},this.flushMappings()},enterBranch:function(a){this.originate(a.start),this.entered_=!0},exitBranch:function(a){var b=a.end,c={line:b.line,column:b.column?b.column-1:0,source:{name:b.source.name,contents:b.source.contents}};this.originate(c),this.entered_=!1},originate:function(b){var c=b.line+1;this.original_&&this.original_.line!==c&&this.flushMappings(),this.original_={line:c,column:b.column||0},b.source.name!==this.sourceName_&&(this.sourceName_=a(b.source.name,this.sourceRoot_),this.sourceMapGenerator_.setSourceContent(b.source.name,b.source.contents)),this.flushMappings()},flushMappings:function(){this.original_&&this.generated_&&(this.addMapping(),this.original_=null,this.generated_=null)},isSame:function(a,b){return a.line===b.line&&a.column===b.column},isSameMapping:function(){return this.previousMapping_?this.isSame(this.previousMapping_.generated,this.generated_)&&this.isSame(this.previousMapping_.original,this.original_)?!0:void 0:!1},addMapping:function(){if(!this.isSameMapping()){var a={generated:this.generated_,original:this.original_,source:this.sourceName_};this.sourceMapGenerator_.addMapping(a),this.previousMapping_=a}}},{},b),{get ParseTreeMapWriter(){return c},get relativeToSourceRoot(){return a}}}),System.registerModule("traceur@0.0.79/src/outputgeneration/SourceMapIntegration.js",[],function(){"use strict";function a(a,b){var c=function(b){return a[b]},d=a[b]={},e=null;return function(a){a(c,d,e)}}var b,c={};if(b=a(c,"./util"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){function c(a,b,c){if(b in a)return a[b];if(3===arguments.length)return c;throw new Error('"'+b+'" is a required argument.')}function d(a){var b=a.match(n);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}function e(a){var b="";return a.scheme&&(b+=a.scheme+":"),b+="//",a.auth&&(b+=a.auth+"@"),a.host&&(b+=a.host),a.port&&(b+=":"+a.port),a.path&&(b+=a.path),b}function f(a){var b=a,c=d(a);if(c){if(!c.path)return a;b=c.path}for(var f,g="/"===b.charAt(0),h=b.split(/\/+/),i=0,j=h.length-1;j>=0;j--)f=h[j],"."===f?h.splice(j,1):".."===f?i++:i>0&&(""===f?(h.splice(j+1,i),i=0):(h.splice(j,2),i--));return b=h.join("/"),""===b&&(b=g?"/":"."),c?(c.path=b,e(c)):b}function g(a,b){var c=d(b),g=d(a);if(g&&(a=g.path||"/"),c&&!c.scheme)return g&&(c.scheme=g.scheme),e(c);if(c||b.match(o))return b;if(g&&!g.host&&!g.path)return g.host=b,e(g);var h="/"===b.charAt(0)?b:f(a.replace(/\/+$/,"")+"/"+b);return g?(g.path=h,e(g)):h}function h(a){return"$"+a}function i(a){return a.substr(1)}function j(a,b){a=a.replace(/\/$/,"");var c=d(a);return"/"==b.charAt(0)&&c&&"/"==c.path?b.slice(1):0===b.indexOf(a+"/")?b.substr(a.length+1):b}function k(a,b){var c=a||"",d=b||"";return(c>d)-(d>c)}function l(a,b,c){var d;return(d=k(a.source,b.source))?d:(d=a.originalLine-b.originalLine)?d:(d=a.originalColumn-b.originalColumn,d||c?d:(d=k(a.name,b.name))?d:(d=a.generatedLine-b.generatedLine,d?d:a.generatedColumn-b.generatedColumn))}function m(a,b,c){var d;return(d=a.generatedLine-b.generatedLine)?d:(d=a.generatedColumn-b.generatedColumn,d||c?d:(d=k(a.source,b.source))?d:(d=a.originalLine-b.originalLine)?d:(d=a.originalColumn-b.originalColumn,d?d:k(a.name,b.name)))}b.getArg=c;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,o=/^data:.+\,.+$/;b.urlParse=d,b.urlGenerate=e,b.normalize=f,b.join=g,b.toSetString=h,b.fromSetString=i,b.relative=j,b.compareByOriginalPositions=l,b.compareByGeneratedPositions=m}),b=a(c,"./array-set"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){function c(){this._array=[],this._set={}}var d=a("./util");c.fromArray=function(a,b){for(var d=new c,e=0,f=a.length;f>e;e++)d.add(a[e],b);return d},c.prototype.add=function(a,b){var c=this.has(a),e=this._array.length;(!c||b)&&this._array.push(a),c||(this._set[d.toSetString(a)]=e)},c.prototype.has=function(a){return Object.prototype.hasOwnProperty.call(this._set,d.toSetString(a))},c.prototype.indexOf=function(a){if(this.has(a))return this._set[d.toSetString(a)];throw new Error('"'+a+'" is not in the set.')},c.prototype.at=function(a){if(a>=0&&a<this._array.length)return this._array[a];throw new Error("No element indexed by "+a)},c.prototype.toArray=function(){return this._array.slice()},b.ArraySet=c}),b=a(c,"./base64"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){var c={},d={};"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").forEach(function(a,b){c[a]=b,d[b]=a}),b.encode=function(a){if(a in d)return d[a];throw new TypeError("Must be between 0 and 63: "+a)},b.decode=function(a){if(a in c)return c[a];throw new TypeError("Not a valid base 64 digit: "+a)}}),b=a(c,"./base64-vlq"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){function c(a){return 0>a?(-a<<1)+1:(a<<1)+0}function d(a){var b=1===(1&a),c=a>>1;return b?-c:c}var e=a("./base64"),f=5,g=1<<f,h=g-1,i=g;b.encode=function(a){var b,d="",g=c(a);do b=g&h,g>>>=f,g>0&&(b|=i),d+=e.encode(b);while(g>0);return d},b.decode=function(a){var b,c,g=0,j=a.length,k=0,l=0;do{if(g>=j)throw new Error("Expected more digits in base 64 VLQ value.");c=e.decode(a.charAt(g++)),b=!!(c&i),c&=h,k+=c<<l,l+=f}while(b);return{value:d(k),rest:a.slice(g)}}}),b=a(c,"./binary-search"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){function c(a,b,d,e,f){var g=Math.floor((b-a)/2)+a,h=f(d,e[g],!0);
return 0===h?e[g]:h>0?b-g>1?c(g,b,d,e,f):e[g]:g-a>1?c(a,g,d,e,f):0>a?null:e[a]}b.search=function(a,b,d){return b.length>0?c(-1,b.length,a,b,d):null}}),b=a(c,"./source-map-generator"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){function c(a){a||(a={}),this._file=e.getArg(a,"file",null),this._sourceRoot=e.getArg(a,"sourceRoot",null),this._sources=new f,this._names=new f,this._mappings=[],this._sourcesContents=null}var d=a("./base64-vlq"),e=a("./util"),f=a("./array-set").ArraySet;c.prototype._version=3,c.fromSourceMap=function(a){var b=a.sourceRoot,d=new c({file:a.file,sourceRoot:b});return a.eachMapping(function(a){var c={generated:{line:a.generatedLine,column:a.generatedColumn}};a.source&&(c.source=a.source,b&&(c.source=e.relative(b,c.source)),c.original={line:a.originalLine,column:a.originalColumn},a.name&&(c.name=a.name)),d.addMapping(c)}),a.sources.forEach(function(b){var c=a.sourceContentFor(b);c&&d.setSourceContent(b,c)}),d},c.prototype.addMapping=function(a){var b=e.getArg(a,"generated"),c=e.getArg(a,"original",null),d=e.getArg(a,"source",null),f=e.getArg(a,"name",null);this._validateMapping(b,c,d,f),d&&!this._sources.has(d)&&this._sources.add(d),f&&!this._names.has(f)&&this._names.add(f),this._mappings.push({generatedLine:b.line,generatedColumn:b.column,originalLine:null!=c&&c.line,originalColumn:null!=c&&c.column,source:d,name:f})},c.prototype.setSourceContent=function(a,b){var c=a;this._sourceRoot&&(c=e.relative(this._sourceRoot,c)),null!==b?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[e.toSetString(c)]=b):(delete this._sourcesContents[e.toSetString(c)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},c.prototype.applySourceMap=function(a,b,c){if(!b){if(!a.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');b=a.file}var d=this._sourceRoot;d&&(b=e.relative(d,b));var g=new f,h=new f;this._mappings.forEach(function(f){if(f.source===b&&f.originalLine){var i=a.originalPositionFor({line:f.originalLine,column:f.originalColumn});null!==i.source&&(f.source=i.source,c&&(f.source=e.join(c,f.source)),d&&(f.source=e.relative(d,f.source)),f.originalLine=i.line,f.originalColumn=i.column,null!==i.name&&null!==f.name&&(f.name=i.name))}var j=f.source;j&&!g.has(j)&&g.add(j);var k=f.name;k&&!h.has(k)&&h.add(k)},this),this._sources=g,this._names=h,a.sources.forEach(function(b){var f=a.sourceContentFor(b);f&&(c&&(b=e.join(c,b)),d&&(b=e.relative(d,b)),this.setSourceContent(b,f))},this)},c.prototype._validateMapping=function(a,b,c,d){if(!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0&&!b&&!c&&!d||a&&"line"in a&&"column"in a&&b&&"line"in b&&"column"in b&&a.line>0&&a.column>=0&&b.line>0&&b.column>=0&&c))throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:c,original:b,name:d}))},c.prototype._serializeMappings=function(){var a,b=0,c=1,f=0,g=0,h=0,i=0,j="";this._mappings.sort(e.compareByGeneratedPositions);for(var k=0,l=this._mappings.length;l>k;k++){if(a=this._mappings[k],a.generatedLine!==c)for(b=0;a.generatedLine!==c;)j+=";",c++;else if(k>0){if(!e.compareByGeneratedPositions(a,this._mappings[k-1]))continue;j+=","}j+=d.encode(a.generatedColumn-b),b=a.generatedColumn,a.source&&(j+=d.encode(this._sources.indexOf(a.source)-i),i=this._sources.indexOf(a.source),j+=d.encode(a.originalLine-1-g),g=a.originalLine-1,j+=d.encode(a.originalColumn-f),f=a.originalColumn,a.name&&(j+=d.encode(this._names.indexOf(a.name)-h),h=this._names.indexOf(a.name)))}return j},c.prototype._generateSourcesContent=function(a,b){return a.map(function(a){if(!this._sourcesContents)return null;b&&(a=e.relative(b,a));var c=e.toSetString(a);return Object.prototype.hasOwnProperty.call(this._sourcesContents,c)?this._sourcesContents[c]:null},this)},c.prototype.toJSON=function(){var a={version:this._version,file:this._file,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._sourceRoot&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},c.prototype.toString=function(){return JSON.stringify(this)},b.SourceMapGenerator=c}),b=a(c,"./source-map-consumer"),"function"!=typeof b)var b=require("amdefine")(module,require);if(b(function(a,b){function c(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=d.getArg(b,"version"),e=d.getArg(b,"sources"),g=d.getArg(b,"names",[]),h=d.getArg(b,"sourceRoot",null),i=d.getArg(b,"sourcesContent",null),j=d.getArg(b,"mappings"),k=d.getArg(b,"file",null);if(c!=this._version)throw new Error("Unsupported version: "+c);this._names=f.fromArray(g,!0),this._sources=f.fromArray(e,!0),this.sourceRoot=h,this.sourcesContent=i,this._mappings=j,this.file=k}var d=a("./util"),e=a("./binary-search"),f=a("./array-set").ArraySet,g=a("./base64-vlq");c.fromSourceMap=function(a){var b=Object.create(c.prototype);return b._names=f.fromArray(a._names.toArray(),!0),b._sources=f.fromArray(a._sources.toArray(),!0),b.sourceRoot=a._sourceRoot,b.sourcesContent=a._generateSourcesContent(b._sources.toArray(),b.sourceRoot),b.file=a._file,b.__generatedMappings=a._mappings.slice().sort(d.compareByGeneratedPositions),b.__originalMappings=a._mappings.slice().sort(d.compareByOriginalPositions),b},c.prototype._version=3,Object.defineProperty(c.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return this.sourceRoot?d.join(this.sourceRoot,a):a},this)}}),c.prototype.__generatedMappings=null,Object.defineProperty(c.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__generatedMappings}}),c.prototype.__originalMappings=null,Object.defineProperty(c.prototype,"_originalMappings",{get:function(){return this.__originalMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__originalMappings}}),c.prototype._parseMappings=function(a){for(var b,c,e=1,f=0,h=0,i=0,j=0,k=0,l=/^[,;]/,m=a;m.length>0;)if(";"===m.charAt(0))e++,m=m.slice(1),f=0;else if(","===m.charAt(0))m=m.slice(1);else{if(b={},b.generatedLine=e,c=g.decode(m),b.generatedColumn=f+c.value,f=b.generatedColumn,m=c.rest,m.length>0&&!l.test(m.charAt(0))){if(c=g.decode(m),b.source=this._sources.at(j+c.value),j+=c.value,m=c.rest,0===m.length||l.test(m.charAt(0)))throw new Error("Found a source, but no line and column");if(c=g.decode(m),b.originalLine=h+c.value,h=b.originalLine,b.originalLine+=1,m=c.rest,0===m.length||l.test(m.charAt(0)))throw new Error("Found a source and line, but no column");c=g.decode(m),b.originalColumn=i+c.value,i=b.originalColumn,m=c.rest,m.length>0&&!l.test(m.charAt(0))&&(c=g.decode(m),b.name=this._names.at(k+c.value),k+=c.value,m=c.rest)}this.__generatedMappings.push(b),"number"==typeof b.originalLine&&this.__originalMappings.push(b)}this.__generatedMappings.sort(d.compareByGeneratedPositions),this.__originalMappings.sort(d.compareByOriginalPositions)},c.prototype._findMapping=function(a,b,c,d,f){if(a[c]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+a[c]);if(a[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+a[d]);return e.search(a,b,f)},c.prototype.originalPositionFor=function(a){var b={generatedLine:d.getArg(a,"line"),generatedColumn:d.getArg(a,"column")},c=this._findMapping(b,this._generatedMappings,"generatedLine","generatedColumn",d.compareByGeneratedPositions);if(c&&c.generatedLine===b.generatedLine){var e=d.getArg(c,"source",null);return e&&this.sourceRoot&&(e=d.join(this.sourceRoot,e)),{source:e,line:d.getArg(c,"originalLine",null),column:d.getArg(c,"originalColumn",null),name:d.getArg(c,"name",null)}}return{source:null,line:null,column:null,name:null}},c.prototype.sourceContentFor=function(a){if(!this.sourcesContent)return null;if(this.sourceRoot&&(a=d.relative(this.sourceRoot,a)),this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];var b;if(this.sourceRoot&&(b=d.urlParse(this.sourceRoot))){var c=a.replace(/^file:\/\//,"");if("file"==b.scheme&&this._sources.has(c))return this.sourcesContent[this._sources.indexOf(c)];if((!b.path||"/"==b.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}throw new Error('"'+a+'" is not in the SourceMap.')},c.prototype.generatedPositionFor=function(a){var b={source:d.getArg(a,"source"),originalLine:d.getArg(a,"line"),originalColumn:d.getArg(a,"column")};this.sourceRoot&&(b.source=d.relative(this.sourceRoot,b.source));var c=this._findMapping(b,this._originalMappings,"originalLine","originalColumn",d.compareByOriginalPositions);return c?{line:d.getArg(c,"generatedLine",null),column:d.getArg(c,"generatedColumn",null)}:{line:null,column:null}},c.GENERATED_ORDER=1,c.ORIGINAL_ORDER=2,c.prototype.eachMapping=function(a,b,e){var f,g=b||null,h=e||c.GENERATED_ORDER;switch(h){case c.GENERATED_ORDER:f=this._generatedMappings;break;case c.ORIGINAL_ORDER:f=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var i=this.sourceRoot;f.map(function(a){var b=a.source;return b&&i&&(b=d.join(i,b)),{source:b,generatedLine:a.generatedLine,generatedColumn:a.generatedColumn,originalLine:a.originalLine,originalColumn:a.originalColumn,name:a.name}}).forEach(a,g)},b.SourceMapConsumer=c}),b=a(c,"./source-node"),"function"!=typeof b)var b=require("amdefine")(module,require);b(function(a,b){function c(a,b,c,d,e){this.children=[],this.sourceContents={},this.line=void 0===a?null:a,this.column=void 0===b?null:b,this.source=void 0===c?null:c,this.name=void 0===e?null:e,null!=d&&this.add(d)}var d=a("./source-map-generator").SourceMapGenerator,e=a("./util"),f=/(\r?\n)/g,g=/\r\n|[\s\S]/g;c.fromStringWithSourceMap=function(a,b){function d(a,b){e.add(null===a||void 0===a.source?b:new c(a.originalLine,a.originalColumn,a.source,b,a.name))}var e=new c,g=a.split(f),h=function(){var a=g.shift(),b=g.shift()||"";return a+b},i=1,j=0,k=null;return b.eachMapping(function(a){if(null!==k){if(!(i<a.generatedLine)){var b=g[0],c=b.substr(0,a.generatedColumn-j);return g[0]=b.substr(a.generatedColumn-j),j=a.generatedColumn,d(k,c),void(k=a)}var c="";d(k,h()),i++,j=0}for(;i<a.generatedLine;)e.add(h()),i++;if(j<a.generatedColumn){var b=g[0];e.add(b.substr(0,a.generatedColumn)),g[0]=b.substr(a.generatedColumn),j=a.generatedColumn}k=a},this),g.length>0&&(k&&d(k,h()),e.add(g.join(""))),b.sources.forEach(function(a){var c=b.sourceContentFor(a);c&&e.setSourceContent(a,c)}),e},c.prototype.add=function(a){if(Array.isArray(a))a.forEach(function(a){this.add(a)},this);else{if(!(a instanceof c||"string"==typeof a))throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);a&&this.children.push(a)}return this},c.prototype.prepend=function(a){if(Array.isArray(a))for(var b=a.length-1;b>=0;b--)this.prepend(a[b]);else{if(!(a instanceof c||"string"==typeof a))throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);this.children.unshift(a)}return this},c.prototype.walk=function(a){for(var b,d=0,e=this.children.length;e>d;d++)b=this.children[d],b instanceof c?b.walk(a):""!==b&&a(b,{source:this.source,line:this.line,column:this.column,name:this.name})},c.prototype.join=function(a){var b,c,d=this.children.length;if(d>0){for(b=[],c=0;d-1>c;c++)b.push(this.children[c]),b.push(a);b.push(this.children[c]),this.children=b}return this},c.prototype.replaceRight=function(a,b){var d=this.children[this.children.length-1];return d instanceof c?d.replaceRight(a,b):"string"==typeof d?this.children[this.children.length-1]=d.replace(a,b):this.children.push("".replace(a,b)),this},c.prototype.setSourceContent=function(a,b){this.sourceContents[e.toSetString(a)]=b},c.prototype.walkSourceContents=function(a){for(var b=0,d=this.children.length;d>b;b++)this.children[b]instanceof c&&this.children[b].walkSourceContents(a);for(var f=Object.keys(this.sourceContents),b=0,d=f.length;d>b;b++)a(e.fromSetString(f[b]),this.sourceContents[f[b]])},c.prototype.toString=function(){var a="";return this.walk(function(b){a+=b}),a},c.prototype.toStringWithSourceMap=function(a){var b={code:"",line:1,column:0},c=new d(a),e=!1,h=null,i=null,j=null,k=null;return this.walk(function(a,d){b.code+=a,null!==d.source&&null!==d.line&&null!==d.column?((h!==d.source||i!==d.line||j!==d.column||k!==d.name)&&c.addMapping({source:d.source,original:{line:d.line,column:d.column},generated:{line:b.line,column:b.column},name:d.name}),h=d.source,i=d.line,j=d.column,k=d.name,e=!0):e&&(c.addMapping({generated:{line:b.line,column:b.column}}),h=null,e=!1),a.match(g).forEach(function(a,g,i){f.test(a)?(b.line++,b.column=0,g+1===i.length?(h=null,e=!1):e&&c.addMapping({source:d.source,original:{line:d.line,column:d.column},generated:{line:b.line,column:b.column},name:d.name})):b.column+=a.length})}),this.walkSourceContents(function(a,b){c.setSourceContent(a,b)}),{code:b.code,map:c}},b.SourceNode=c});var d=c["./source-map-generator"].SourceMapGenerator,e=c["./source-map-consumer"].SourceMapConsumer,f=c["./source-node"].SourceNode,g=c["./util"].join;return{get SourceMapGenerator(){return d},get SourceMapConsumer(){return e},get SourceNode(){return f},get join(){return g}}}),System.registerModule("traceur@0.0.79/src/outputgeneration/toSource.js",[],function(){"use strict";function a(a){var e=arguments[1],f=void 0!==arguments[2]?arguments[2]:"<toSourceOutput>",g=arguments[3],h=e&&e.sourceMapGenerator,i=e&&e.sourceMaps;!h&&i&&(h=new d({file:f,sourceRoot:g}));var j;return j=h?new b(h,g,e):new c(e),j.visitAny(a),[j.toString(),h&&h.toString()]}var b=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeMapWriter.js").ParseTreeMapWriter,c=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeWriter.js").ParseTreeWriter,d=System.get("traceur@0.0.79/src/outputgeneration/SourceMapIntegration.js").SourceMapGenerator;return{get toSource(){return a}}}),System.registerModule("traceur@0.0.79/src/outputgeneration/TreeWriter.js",[],function(){"use strict";function a(a){var c=arguments[1],d=void 0!==arguments[2]?arguments[2]:"<TreeWriter-output>",e=arguments[3],f=b(a,c,d,e),g=f[0],h=f[1];return h&&(c.generatedSourceMap=h),g}var b=System.get("traceur@0.0.79/src/outputgeneration/toSource.js").toSource,c=function(){};return $traceurRuntime.createClass(c,{},{}),c.write=a,{get write(){return a},get TreeWriter(){return c}}}),System.registerModule("traceur@0.0.79/src/syntax/ParseTreeValidator.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").NewExpression,b=System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor,c=System.get("traceur@0.0.79/src/outputgeneration/TreeWriter.js").TreeWriter,d=System.get("traceur@0.0.79/src/syntax/TokenType.js"),e=d.AMPERSAND,f=d.AMPERSAND_EQUAL,g=d.AND,h=d.BAR,i=d.BAR_EQUAL,j=d.CARET,k=d.CARET_EQUAL,l=d.CLOSE_ANGLE,m=d.EQUAL,n=d.EQUAL_EQUAL,o=d.EQUAL_EQUAL_EQUAL,p=d.GREATER_EQUAL,q=d.IDENTIFIER,r=d.IN,s=d.INSTANCEOF,t=d.LEFT_SHIFT,u=d.LEFT_SHIFT_EQUAL,v=d.LESS_EQUAL,w=d.MINUS,x=d.MINUS_EQUAL,y=d.NOT_EQUAL,z=d.NOT_EQUAL_EQUAL,A=d.NUMBER,B=d.OPEN_ANGLE,C=d.OR,D=d.PERCENT,E=d.PERCENT_EQUAL,F=d.PLUS,G=d.PLUS_EQUAL,H=d.RIGHT_SHIFT,I=d.RIGHT_SHIFT_EQUAL,J=d.SLASH,K=d.SLASH_EQUAL,L=d.STAR,M=d.STAR_EQUAL,N=d.STAR_STAR,O=d.STAR_STAR_EQUAL,P=d.STRING,Q=d.UNSIGNED_RIGHT_SHIFT,R=d.UNSIGNED_RIGHT_SHIFT_EQUAL,S=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),T=S.ARRAY_PATTERN,U=S.ASSIGNMENT_ELEMENT,V=S.BINDING_ELEMENT,W=S.BINDING_IDENTIFIER,X=S.BLOCK,Y=S.CASE_CLAUSE,Z=S.CATCH,$=S.CLASS_DECLARATION,_=S.COMPUTED_PROPERTY_NAME,ab=S.DEFAULT_CLAUSE,bb=S.EXPORT_DEFAULT,cb=S.EXPORT_SPECIFIER,db=S.EXPORT_SPECIFIER_SET,eb=S.EXPORT_STAR,fb=S.FINALLY,gb=S.FORMAL_PARAMETER,hb=S.FORMAL_PARAMETER_LIST,ib=S.FUNCTION_BODY,jb=S.FUNCTION_DECLARATION,kb=S.GET_ACCESSOR,lb=S.IDENTIFIER_EXPRESSION,mb=S.IMPORTED_BINDING,nb=S.LITERAL_PROPERTY_NAME,ob=S.MODULE_DECLARATION,pb=S.MODULE_SPECIFIER,qb=S.NAMED_EXPORT,rb=S.OBJECT_PATTERN,sb=S.OBJECT_PATTERN_FIELD,tb=S.PROPERTY_METHOD_ASSIGNMENT,ub=S.PROPERTY_NAME_ASSIGNMENT,vb=S.PROPERTY_NAME_SHORTHAND,wb=S.PROPERTY_VARIABLE_DECLARATION,xb=S.REST_PARAMETER,yb=S.SET_ACCESSOR,zb=S.TEMPLATE_LITERAL_PORTION,Ab=S.TEMPLATE_SUBSTITUTION,Bb=S.TYPE_ARGUMENTS,Cb=S.TYPE_NAME,Db=S.TYPE_PARAMETER,Eb=S.TYPE_PARAMETERS,Fb=S.VARIABLE_DECLARATION_LIST,Gb=S.VARIABLE_STATEMENT,Hb=System.get("traceur@0.0.79/src/util/assert.js").assert,Ib=function(a,b){this.tree=a,this.message=b};$traceurRuntime.createClass(Ib,{},{},Error);var Jb=function(){$traceurRuntime.superConstructor(Kb).apply(this,arguments)},Kb=Jb;return $traceurRuntime.createClass(Jb,{fail_:function(a,b){throw new Ib(a,b)},check_:function(a,b,c){a||this.fail_(b,c)},checkVisit_:function(a,b,c){this.check_(a,b,c),this.visitAny(b)},checkType_:function(a,b,c){this.checkVisit_(b.type===a,b,c)},visitArgumentList:function(a){for(var b=0;b<a.args.length;b++){var c=a.args[b];this.checkVisit_(c.isAssignmentOrSpread(),c,"assignment or spread expected")}},visitArrayLiteralExpression:function(a){for(var b=0;b<a.elements.length;b++){var c=a.elements[b];this.checkVisit_(null===c||c.isAssignmentOrSpread(),c,"assignment or spread expected")}},visitArrayPattern:function(a){for(var b=0;b<a.elements.length;b++){var c=a.elements[b];this.checkVisit_(null===c||c.type===V||c.type==U||c.isLeftHandSideExpression()||c.isPattern()||c.isSpreadPatternElement(),c,"null, sub pattern, left hand side expression or spread expected"),c&&c.isSpreadPatternElement()&&this.check_(b===a.elements.length-1,c,"spread in array patterns must be the last element")}},visitBinaryExpression:function(a){switch(a.operator.type){case m:case M:case O:case K:case E:case G:case x:case u:case I:case R:case f:case k:case i:this.check_(a.left.isLeftHandSideExpression()||a.left.isPattern(),a.left,"left hand side expression or pattern expected"),this.check_(a.right.isAssignmentExpression(),a.right,"assignment expression expected");break;case g:case C:case h:case j:case e:case n:case y:case o:case z:case B:case l:case p:case v:case s:case r:case t:case H:case Q:case F:case w:case L:case J:case D:case N:this.check_(a.left.isAssignmentExpression(),a.left,"assignment expression expected"),this.check_(a.right.isAssignmentExpression(),a.right,"assignment expression expected");break;default:this.fail_(a,"unexpected binary operator")}this.visitAny(a.left),this.visitAny(a.right)},visitBindingElement:function(a){var b=a.binding;this.checkVisit_(b.type==W||b.type==rb||b.type==T,b,"expected valid binding element"),this.visitAny(a.initializer)},visitAssignmentElement:function(a){var b=a.assignment;this.checkVisit_(b.type==rb||b.type==T||b.isLeftHandSideExpression(),b,"expected valid assignment element"),this.visitAny(a.initializer)},visitBlock:function(a){for(var b=0;b<a.statements.length;b++){var c=a.statements[b];this.checkVisit_(c.isStatementListItem(),c,"statement or function declaration expected")}},visitCallExpression:function(b){this.check_(b.operand.isMemberExpression(),b.operand,"member expression expected"),b.operand instanceof a&&this.check_(null!==b.operand.args,b.operand,"new args expected"),this.visitAny(b.operand),this.visitAny(b.args)},visitCaseClause:function(a){this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected");for(var b=0;b<a.statements.length;b++){var c=a.statements[b];this.checkVisit_(c.isStatement(),c,"statement expected")}},visitCatch:function(a){this.checkVisit_(a.binding.isPattern()||a.binding.type==W,a.binding,"binding identifier expected"),this.checkVisit_(a.catchBody.type===X,a.catchBody,"block expected")},visitClassDeclaration:function(a){this.visitClassShared_(a)},visitClassExpression:function(a){this.visitClassShared_(a)},visitClassShared_:function(a){a.typeParameters&&this.checkVisit_(a.typeParameters.type==Eb,a.typeParameters,"type parameters expected");for(var b=0;b<a.elements.length;b++){var c=a.elements[b];switch(c.type){case kb:case yb:case tb:case wb:break;default:this.fail_(c,"class element expected")}this.visitAny(c)}},visitCommaExpression:function(a){for(var b=0;b<a.expressions.length;b++){var c=a.expressions[b];this.checkVisit_(c.isAssignmentExpression(),c,"expression expected")}},visitConditionalExpression:function(a){this.checkVisit_(a.condition.isAssignmentExpression(),a.condition,"expression expected"),this.checkVisit_(a.left.isAssignmentExpression(),a.left,"expression expected"),this.checkVisit_(a.right.isAssignmentExpression(),a.right,"expression expected")},visitCoverFormals:function(a){this.fail_(a,"CoverFormals should have been removed")},visitCoverInitializedName:function(a){this.fail_(a,"CoverInitializedName should have been removed")},visitDefaultClause:function(a){for(var b=0;b<a.statements.length;b++){var c=a.statements[b];this.checkVisit_(c.isStatement(),c,"statement expected")}},visitDoWhileStatement:function(a){this.checkVisit_(a.body.isStatement(),a.body,"statement expected"),this.checkVisit_(a.condition.isExpression(),a.condition,"expression expected")},visitExportDeclaration:function(a){var b=a.declaration.type;this.checkVisit_(b==Gb||b==jb||b==ob||b==$||b==qb||b==bb,a.declaration,"expected valid export tree")},visitNamedExport:function(a){a.moduleSpecifier&&this.checkVisit_(a.moduleSpecifier.type==pb,a.moduleSpecifier,"module expression expected");var b=a.specifierSet.type;this.checkVisit_(b==db||b==eb,a.specifierSet,"specifier set or identifier expected")},visitExportSpecifierSet:function(a){this.check_(a.specifiers.length>0,a,"expected at least one identifier");for(var b=0;b<a.specifiers.length;b++){var c=a.specifiers[b];this.checkVisit_(c.type==cb||c.type==lb,c,"expected valid export specifier")}},visitExpressionStatement:function(a){this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected")},visitFinally:function(a){this.checkVisit_(a.block.type===X,a.block,"block expected")},visitForOfStatement:function(a){this.checkVisit_(a.initializer.isPattern()||a.initializer.type===lb||a.initializer.type===Fb&&1===a.initializer.declarations.length,a.initializer,"for-each statement may not have more than one variable declaration"),this.checkVisit_(a.collection.isExpression(),a.collection,"expression expected"),this.checkVisit_(a.body.isStatement(),a.body,"statement expected")},visitForInStatement:function(a){a.initializer.type===Fb?this.checkVisit_(a.initializer.declarations.length<=1,a.initializer,"for-in statement may not have more than one variable declaration"):this.checkVisit_(a.initializer.isPattern()||a.initializer.isExpression(),a.initializer,"variable declaration, expression or pattern expected"),this.checkVisit_(a.collection.isExpression(),a.collection,"expression expected"),this.checkVisit_(a.body.isStatement(),a.body,"statement expected")},visitFormalParameterList:function(a){for(var b=0;b<a.parameters.length;b++){var c=a.parameters[b];switch(Hb(c.type===gb),c=c.parameter,c.type){case V:break;case xb:this.checkVisit_(b===a.parameters.length-1,c,"rest parameters must be the last parameter in a parameter list"),this.checkType_(W,c.identifier,"binding identifier expected");break;default:this.fail_(c,"parameters must be identifiers or rest parameters. Found: "+c.type)}this.visitAny(c)}},visitForStatement:function(a){null!==a.initializer&&this.checkVisit_(a.initializer.isExpression()||a.initializer.type===Fb,a.initializer,"variable declaration list or expression expected"),null!==a.condition&&this.checkVisit_(a.condition.isExpression(),a.condition,"expression expected"),null!==a.increment&&this.checkVisit_(a.increment.isExpression(),a.increment,"expression expected"),this.checkVisit_(a.body.isStatement(),a.body,"statement expected")},visitFunctionBody:function(a){for(var b=0;b<a.statements.length;b++){var c=a.statements[b];this.checkVisit_(c.isStatementListItem(),c,"statement expected")}},visitFunctionDeclaration:function(a){this.checkType_(W,a.name,"binding identifier expected"),this.visitFunction_(a)},visitFunctionExpression:function(a){null!==a.name&&this.checkType_(W,a.name,"binding identifier expected"),this.visitFunction_(a)},visitFunction_:function(a){this.checkType_(hb,a.parameterList,"formal parameters expected"),this.checkType_(ib,a.body,"function body expected")},visitGetAccessor:function(a){this.checkPropertyName_(a.name),this.checkType_(ib,a.body,"function body expected")},visitIfStatement:function(a){this.checkVisit_(a.condition.isExpression(),a.condition,"expression expected"),this.checkVisit_(a.ifClause.isStatement(),a.ifClause,"statement expected"),null!==a.elseClause&&this.checkVisit_(a.elseClause.isStatement(),a.elseClause,"statement expected")},visitImportSpecifier:function(a){this.checkType_(mb,a.binding,"ImportedBinding expected")},visitImportedBinding:function(a){this.checkType_(W,a.binding,"binding identifier expected")},visitLabelledStatement:function(a){this.checkVisit_(a.statement.isStatement(),a.statement,"statement expected")},visitMemberExpression:function(b){this.check_(b.operand.isMemberExpression(),b.operand,"member expression expected"),b.operand instanceof a&&this.check_(null!==b.operand.args,b.operand,"new args expected"),this.visitAny(b.operand)},visitMemberLookupExpression:function(b){this.check_(b.operand.isMemberExpression(),b.operand,"member expression expected"),b.operand instanceof a&&this.check_(null!==b.operand.args,b.operand,"new args expected"),this.visitAny(b.operand)},visitSyntaxErrorTree:function(a){this.fail_(a,"parse tree contains SyntaxError: "+a.message)},visitModuleSpecifier:function(a){this.check_(a.token.type==P||a.moduleName,"string or identifier expected")},visitModuleDeclaration:function(a){this.checkType_(mb,a.binding,"ImportedBinding expected"),this.checkType_(pb,a.expression,"module expression expected")},visitNewExpression:function(a){this.checkVisit_(a.operand.isMemberExpression(),a.operand,"member expression expected"),this.visitAny(a.args)},visitObjectLiteralExpression:function(a){for(var b=0;b<a.propertyNameAndValues.length;b++){var c=a.propertyNameAndValues[b];switch(c.type){case kb:case yb:case tb:this.check_(!c.isStatic,c,"static is not allowed in object literal expression");case ub:case vb:break;default:this.fail_(c,"accessor, property name assignment or property method assigment expected")}this.visitAny(c)}},visitObjectPattern:function(a){for(var b=0;b<a.fields.length;b++){var c=a.fields[b];this.checkVisit_(c.type===sb||c.type===U||c.type===V,c,"object pattern field expected")}},visitObjectPatternField:function(a){this.checkPropertyName_(a.name),this.checkVisit_(a.element.type===U||a.element.type===V||a.element.isPattern()||a.element.isLeftHandSideExpression(),a.element,"binding element expected")},visitParenExpression:function(a){a.expression.isPattern()?this.visitAny(a.expression):this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected")},visitPostfixExpression:function(a){this.checkVisit_(a.operand.isAssignmentExpression(),a.operand,"assignment expression expected")},visitPredefinedType:function(){},visitScript:function(a){for(var b=0;b<a.scriptItemList.length;b++){var c=a.scriptItemList[b];this.checkVisit_(c.isScriptElement(),c,"global script item expected")}},checkPropertyName_:function(a){this.checkVisit_(a.type===nb||a.type===_,a,"property name expected")},visitPropertyNameAssignment:function(a){this.checkPropertyName_(a.name),this.checkVisit_(a.value.isAssignmentExpression(),a.value,"assignment expression expected")},visitPropertyNameShorthand:function(a){this.check_(a.name.type===q,a,"identifier token expected")},visitLiteralPropertyName:function(a){var b=a.literalToken.type;this.check_(a.literalToken.isKeyword()||b===q||b===A||b===P,a,"Unexpected token in literal property name")},visitTemplateLiteralExpression:function(a){a.operand&&this.checkVisit_(a.operand.isMemberExpression(),a.operand,"member or call expression expected");for(var b=0;b<a.elements.length;b++){var c=a.elements[b];b%2?this.checkType_(Ab,c,"Template literal substitution expected"):this.checkType_(zb,c,"Template literal portion expected")}},visitReturnStatement:function(a){null!==a.expression&&this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected")},visitSetAccessor:function(a){this.checkPropertyName_(a.name),this.checkType_(ib,a.body,"function body expected")},visitSpreadExpression:function(a){this.checkVisit_(a.expression.isAssignmentExpression(),a.expression,"assignment expression expected")},visitStateMachine:function(a){this.fail_(a,"State machines are never valid outside of the GeneratorTransformer pass.")},visitSwitchStatement:function(a){this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected");for(var b=0,c=0;c<a.caseClauses.length;c++){var d=a.caseClauses[c];d.type===ab?(++b,this.checkVisit_(1>=b,d,"no more than one default clause allowed")):this.checkType_(Y,d,"case or default clause expected")}},visitThrowStatement:function(a){null!==a.value&&this.checkVisit_(a.value.isExpression(),a.value,"expression expected")},visitTryStatement:function(a){this.checkType_(X,a.body,"block expected"),null!==a.catchBlock&&this.checkType_(Z,a.catchBlock,"catch block expected"),null!==a.finallyBlock&&this.checkType_(fb,a.finallyBlock,"finally block expected"),null===a.catchBlock&&null===a.finallyBlock&&this.fail_(a,"either catch or finally must be present")},visitTypeArguments:function(a){for(var b=a.args,c=0;c<b.length;c++)this.checkVisit_(b[c].isType(),b[c],"Type arguments must be type expressions")},visitTypeName:function(a){this.checkVisit_(null===a.moduleName||a.moduleName.type===Cb,a.moduleName,"moduleName must be null or a TypeName"),this.check_(a.name.type===q,a,"name must be an identifier")},visitTypeReference:function(a){this.checkType_(Cb,a.typeName,"typeName must be a TypeName"),this.checkType_(Bb,a.args,"args must be a TypeArguments")},visitTypeParameters:function(a){for(var b=a.parameters,c=0;c<b.length;c++)this.checkType_(Db,b[c],"Type parameters must all be type parameters")},visitTypeParameter:function(a){this.check_(a.identifierToken.type===q,a,"Type parameter must be an identifier token"),a.extendsType&&this.checkVisit_(a.extendsType.isType(),a.extendsType,"extends type must be a type expression")},visitUnaryExpression:function(a){this.checkVisit_(a.operand.isAssignmentExpression(),a.operand,"assignment expression expected")},visitVariableDeclaration:function(a){this.checkVisit_(a.lvalue.isPattern()||a.lvalue.type==W,a.lvalue,"binding identifier expected, found: "+a.lvalue.type),null!==a.initializer&&this.checkVisit_(a.initializer.isAssignmentExpression(),a.initializer,"assignment expression expected")},visitWhileStatement:function(a){this.checkVisit_(a.condition.isExpression(),a.condition,"expression expected"),this.checkVisit_(a.body.isStatement(),a.body,"statement expected")},visitWithStatement:function(a){this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected"),this.checkVisit_(a.body.isStatement(),a.body,"statement expected")},visitYieldExpression:function(a){null!==a.expression&&this.checkVisit_(a.expression.isExpression(),a.expression,"expression expected")}},{},b),Jb.validate=function(a){var b=new Jb;try{b.visitAny(a)}catch(d){if(!(d instanceof Ib))throw d;var e=null;null!==d.tree&&(e=d.tree.location),null===e&&(e=a.location);var f=null!==e?e.start.toString():"(unknown)";throw new Error("Parse tree validation failure '"+d.message+"' at "+f+":\n\n"+c.write(a,{highlighted:d.tree,showLineNumbers:!0})+"\n")}},{get ParseTreeValidator(){return Jb}}}),System.registerModule("traceur@0.0.79/src/codegeneration/MultiTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/ParseTreeValidator.js").ParseTreeValidator,b=function(a,b){this.reporter_=a,this.validate_=b,this.treeTransformers_=[]};
return $traceurRuntime.createClass(b,{append:function(a){this.treeTransformers_.push(a)},transform:function(b){var c=this.reporter_,d=this.validate_;return this.treeTransformers_.every(function(e){return b=e(b),c.hadError()?!1:(d&&a.validate(b),!0)}),b}},{}),{get MultiTransformer(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/NumericLiteralTransformer.js",[],function(){"use strict";function a(a){return a.type===h&&/^0[bBoO]/.test(a.value)}function b(a){return new g(h,String(a.processedValue),a.location)}var c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,d=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),e=d.LiteralExpression,f=d.LiteralPropertyName,g=System.get("traceur@0.0.79/src/syntax/LiteralToken.js").LiteralToken,h=System.get("traceur@0.0.79/src/syntax/TokenType.js").NUMBER,i=function(){$traceurRuntime.superConstructor(j).apply(this,arguments)},j=i;return $traceurRuntime.createClass(i,{transformLiteralExpression:function(c){var d=c.literalToken;return a(d)?new e(c.location,b(d)):c},transformLiteralPropertyName:function(c){var d=c.literalToken;return a(d)?new f(c.location,b(d)):c}},{},c),{get NumericLiteralTransformer(){return i}}}),System.registerModule("traceur@0.0.79/src/codegeneration/ObjectLiteralTransformer.js",[],function(){"use strict";function a(a){return"__proto__"===x(a)}var b=System.get("traceur@0.0.79/src/codegeneration/FindVisitor.js").FindVisitor,c=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),d=c.FunctionExpression,e=c.IdentifierExpression,f=c.LiteralExpression,g=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,h=System.get("traceur@0.0.79/src/syntax/TokenType.js").IDENTIFIER,i=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),j=i.COMPUTED_PROPERTY_NAME,k=i.LITERAL_PROPERTY_NAME,l=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),m=l.createAssignmentExpression,n=l.createCommaExpression,o=l.createDefineProperty,p=l.createEmptyParameterList,q=l.createFunctionExpression,r=l.createIdentifierExpression,s=l.createObjectCreate,t=l.createObjectLiteralExpression,u=l.createParenExpression,v=l.createPropertyNameAssignment,w=l.createStringLiteral,x=System.get("traceur@0.0.79/src/staticsemantics/PropName.js").propName,y=System.get("traceur@0.0.79/src/Options.js").transformOptions,z=function(){$traceurRuntime.superConstructor(A).call(this,!0),this.protoExpression=null},A=z;$traceurRuntime.createClass(z,{visitPropertyNameAssignment:function(b){a(b.name)?this.protoExpression=b.value:$traceurRuntime.superGet(this,A.prototype,"visitPropertyNameAssignment").call(this,b)},visitComputedPropertyName:function(){y.computedPropertyNames&&(this.found=!0)}},{},b);var B=function(a){$traceurRuntime.superConstructor(C).call(this,a),this.protoExpression=null,this.needsAdvancedTransform=!1,this.seenAccessors=null},C=B;return $traceurRuntime.createClass(B,{findSeenAccessor_:function(a){if(a.type===j)return null;var b=x(a);return this.seenAccessors[b]},removeSeenAccessor_:function(a){if(a.type!==j){var b=x(a);delete this.seenAccessors[b]}},addSeenAccessor_:function(a,b){if(a.type!==j){var c=x(a);this.seenAccessors[c]=b}},createProperty_:function(a,b){var c;if(c=a.type===k?this.needsAdvancedTransform?this.getPropertyName_(a):a:a.expression,b.get||b.set){var d=this.findSeenAccessor_(a);if(d)return d.get=b.get||d.get,d.set=b.set||d.set,this.removeSeenAccessor_(a),null;this.addSeenAccessor_(a,b)}return[c,b]},getPropertyName_:function(a){var b=a.literalToken;switch(b.type){case h:return w(b.value);default:return b.isKeyword()?w(b.type):new f(b.location,b)}},transformClassDeclaration:function(a){return a},transformClassExpression:function(a){return a},transformObjectLiteralExpression:function(a){var b=this.needsAdvancedTransform,c=this.seenAccessors;try{var d=new z;if(d.visitAny(a),!d.found)return this.needsAdvancedTransform=!1,$traceurRuntime.superGet(this,C.prototype,"transformObjectLiteralExpression").call(this,a);this.needsAdvancedTransform=!0,this.seenAccessors=Object.create(null);var e=this.transformList(a.propertyNameAndValues);e=e.filter(function(a){return a});var f,g=this.addTempVar(),h=r(g),i=e.map(function(a){var b=a[0],c=a[1];return o(h,b,c)}),j=this.transformAny(d.protoExpression);return f=j?s(j):t([]),i.unshift(m(h,f)),i.push(h),u(n(i))}finally{this.needsAdvancedTransform=b,this.seenAccessors=c}},transformPropertyNameAssignment:function(b){return this.needsAdvancedTransform?a(b.name)?null:this.createProperty_(b.name,{value:this.transformAny(b.value),configurable:!0,enumerable:!0,writable:!0}):$traceurRuntime.superGet(this,C.prototype,"transformPropertyNameAssignment").call(this,b)},transformGetAccessor:function(a){if(!this.needsAdvancedTransform)return $traceurRuntime.superGet(this,C.prototype,"transformGetAccessor").call(this,a);var b=this.transformAny(a.body),c=q(p(),b);return this.createProperty_(a.name,{get:c,configurable:!0,enumerable:!0})},transformSetAccessor:function(a){if(!this.needsAdvancedTransform)return $traceurRuntime.superGet(this,C.prototype,"transformSetAccessor").call(this,a);var b=this.transformAny(a.body),c=this.transformAny(a.parameterList),d=q(c,b);return this.createProperty_(a.name,{set:d,configurable:!0,enumerable:!0})},transformPropertyMethodAssignment:function(a){var b=new d(a.location,null,a.functionKind,this.transformAny(a.parameterList),a.typeAnnotation,[],this.transformAny(a.body));if(!this.needsAdvancedTransform)return v(a.name,b);this.transformAny(a.name);return this.createProperty_(a.name,{value:b,configurable:!0,enumerable:!0,writable:!0})},transformPropertyNameShorthand:function(a){if(!this.needsAdvancedTransform)return $traceurRuntime.superGet(this,C.prototype,"transformPropertyNameShorthand").call(this,a);this.transformAny(a.name);return this.createProperty_(a.name,{value:new e(a.location,a.name.identifierToken),configurable:!0,enumerable:!1,writable:!0})}},{},g),{get ObjectLiteralTransformer(){return B}}}),System.registerModule("traceur@0.0.79/src/codegeneration/PropertyNameShorthandTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),b=a.IdentifierExpression,c=a.LiteralPropertyName,d=a.PropertyNameAssignment,e=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,f=function(){$traceurRuntime.superConstructor(g).apply(this,arguments)},g=f;return $traceurRuntime.createClass(f,{transformPropertyNameShorthand:function(a){return new d(a.location,new c(a.location,a.name),new b(a.location,a.name))}},{},e),{get PropertyNameShorthandTransformer(){return f}}}),System.registerModule("traceur@0.0.79/src/outputgeneration/regexpuRewritePattern.js",[],function(){"use strict";function a(a){return y?x?q.UNICODE_IGNORE_CASE[a]:q.UNICODE[a]:q.REGULAR[a]}function b(a,b){return s.call(a,b)}function c(a,b){for(var c in b)a[c]=b[c]}function d(a,b){var d=o(b,"");switch(d.type){case"characterClass":case"group":case"value":break;default:d=e(d,b)}c(a,d)}function e(a,b){return{type:"group",behavior:"ignore",body:[a],raw:"(?:"+b+")"}}function f(a){return b(p,a)?p[a]:!1}function g(b){{var c=m();b.body.forEach(function(b){switch(b.type){case"value":if(c.add(b.codePoint),x&&y){var d=f(b.codePoint);d&&c.add(d)}break;case"characterClassRange":var e=b.min.codePoint,g=b.max.codePoint;c.addRange(e,g),x&&y&&c.iuAddRange(e,g);break;case"characterClassEscape":c.add(a(b.value));break;default:throw Error("Unknown term type: "+b.type)}})}return b.negative&&(c=(y?t:u).clone().remove(c)),d(b,c.toString()),b}function h(b){switch(b.type){case"dot":d(b,(y?v:w).toString());break;case"characterClass":b=g(b);break;case"characterClassEscape":d(b,a(b.value).toString());break;case"alternative":case"disjunction":case"group":case"quantifier":b.body=b.body.map(h);break;case"value":var c=b.codePoint,e=m(c);if(x&&y){var i=f(c);i&&e.add(i)}d(b,e.toString());break;case"anchor":case"empty":case"group":case"reference":break;default:throw Error("Unknown term type: "+b.type)}return b}var i={},j={},k=j.exports={},l=function(a){return i[a]};!function(a){var b="object"==typeof k&&k,c="object"==typeof j&&j&&j.exports==b&&j,d="object"==typeof global&&global;(d.global===d||d.window===d)&&(a=d);var e={rangeOrder:"A ranges `stop` value must be greater than or equal to the `start` value.",codePointRange:"Invalid code point value. Code points range from U+000000 to U+10FFFF."},f=55296,g=56319,h=56320,i=57343,l=/\\x00([^0123456789]|$)/g,m={},n=m.hasOwnProperty,o=function(a,b){var c;for(c in b)n.call(b,c)&&(a[c]=b[c]);return a},p=function(a,b){for(var c=-1,d=a.length;++c<d;)b(a[c],c)},q=m.toString,r=function(a){return"[object Array]"==q.call(a)},s=function(a){return"number"==typeof a||"[object Number]"==q.call(a)},t="0000",u=function(a,b){var c=String(a);return c.length<b?(t+c).slice(-b):c},v=function(a){return Number(a).toString(16).toUpperCase()},w=[].slice,x=function(a){for(var b,c=-1,d=a.length,e=d-1,f=[],g=!0,h=0;++c<d;)if(b=a[c],g)f.push(b),h=b,g=!1;else if(b==h+1){if(c!=e){h=b;continue}g=!0,f.push(b+1)}else f.push(h+1,b),h=b;return g||f.push(b+1),f},y=function(a,b){for(var c,d,e=0,f=a.length;f>e;){if(c=a[e],d=a[e+1],b>=c&&d>b)return b==c?d==c+1?(a.splice(e,2),a):(a[e]=b+1,a):b==d-1?(a[e+1]=b,a):(a.splice(e,2,c,b,b+1,d),a);e+=2}return a},z=function(a,b,c){if(b>c)throw Error(e.rangeOrder);for(var d,f,g=0;g<a.length;){if(d=a[g],f=a[g+1]-1,d>c)return a;if(d>=b&&c>=f)a.splice(g,2);else{if(b>=d&&f>c)return b==d?(a[g]=c+1,a[g+1]=f+1,a):(a.splice(g,2,d,b,c+1,f+1),a);if(b>=d&&f>=b)a[g+1]=b;else if(c>=d&&f>=c)return a[g]=c+1,a;g+=2}}return a},A=function(a,b){var c,d,f=0,g=null,h=a.length;if(0>b||b>1114111)throw RangeError(e.codePointRange);for(;h>f;){if(c=a[f],d=a[f+1],b>=c&&d>b)return a;if(b==c-1)return a[f]=b,a;if(c>b)return a.splice(null!=g?g+2:0,0,b,b+1),a;if(b==d)return b+1==a[f+2]?(a.splice(f,4,c,a[f+3]),a):(a[f+1]=b+1,a);g=f,f+=2}return a.push(b,b+1),a},B=function(a,b){for(var c,d,e=0,f=a.slice(),g=b.length;g>e;)c=b[e],d=b[e+1]-1,f=c==d?A(f,c):D(f,c,d),e+=2;return f},C=function(a,b){for(var c,d,e=0,f=a.slice(),g=b.length;g>e;)c=b[e],d=b[e+1]-1,f=c==d?y(f,c):z(f,c,d),e+=2;return f},D=function(a,b,c){if(b>c)throw Error(e.rangeOrder);if(0>b||b>1114111||0>c||c>1114111)throw RangeError(e.codePointRange);for(var d,f,g=0,h=!1,i=a.length;i>g;){if(d=a[g],f=a[g+1],h){if(d==c+1)return a.splice(g-1,2),a;if(d>c)return a;d>=b&&c>=d&&(f>b&&c>=f-1?(a.splice(g,2),g-=2):(a.splice(g-1,2),g-=2))}else{if(d==c+1)return a[g]=b,a;if(d>c)return a.splice(g,0,b,c+1),a;if(b>=d&&f>b&&f>=c+1)return a;b>=d&&f>b||f==b?(a[g+1]=c+1,h=!0):d>=b&&c+1>=f&&(a[g]=b,a[g+1]=c+1,h=!0)}g+=2}return h||a.push(b,c+1),a},E=function(a,b){for(var c,d,e=0,f=a.length;f>e;){if(c=a[e],d=a[e+1],b>=c&&d>b)return!0;e+=2}return!1},F=function(a,b){for(var c,d=0,e=b.length,f=[];e>d;)c=b[d],E(a,c)&&f.push(c),++d;return x(f)},G=function(a){return!a.length},H=function(a){return 2==a.length&&a[0]+1==a[1]},I=function(a){for(var b,c,d=0,e=[],f=a.length;f>d;){for(b=a[d],c=a[d+1];c>b;)e.push(b),++b;d+=2}return e},J=Math.floor,K=function(a){return parseInt(J((a-65536)/1024)+f,10)},L=function(a){return parseInt((a-65536)%1024+h,10)},M=String.fromCharCode,N=function(a){var b;return b=9==a?"\\t":10==a?"\\n":12==a?"\\f":13==a?"\\r":92==a?"\\\\":36==a||a>=40&&43>=a||45==a||46==a||63==a||a>=91&&94>=a||a>=123&&125>=a?"\\"+M(a):a>=32&&126>=a?M(a):255>=a?"\\x"+u(v(a),2):"\\u"+u(v(a),4)},O=function(a){var b,c=a.length,d=a.charCodeAt(0);return d>=f&&g>=d&&c>1?(b=a.charCodeAt(1),1024*(d-f)+b-h+65536):d},P=function(a){var b,c,d="",e=0,f=a.length;if(H(a))return N(a[0]);for(;f>e;)b=a[e],c=a[e+1]-1,d+=b==c?N(b):b+1==c?N(b)+N(c):N(b)+"-"+N(c),e+=2;return"["+d+"]"},Q=function(a){for(var b,c,d=[],e=[],h=[],i=0,j=a.length;j>i;)b=a[i],c=a[i+1]-1,65535>=b&&65535>=c?b>=f&&g>=b?g>=c?d.push(b,c+1):(d.push(b,g+1),e.push(g+1,c+1)):c>=f&&g>=c?(e.push(b,f),d.push(f,c+1)):f>b&&c>g?(e.push(b,f,g+1,c+1),d.push(f,g+1)):e.push(b,c+1):65535>=b&&c>65535?(b>=f&&g>=b?(d.push(b,g+1),e.push(g+1,65536)):f>b?(e.push(b,f,g+1,65536),d.push(f,g+1)):e.push(b,65536),h.push(65536,c+1)):h.push(b,c+1),i+=2;return{loneHighSurrogates:d,bmp:e,astral:h}},R=function(a){for(var b,c,d,e,f,g,h=[],i=[],j=!1,k=-1,l=a.length;++k<l;)if(b=a[k],c=a[k+1]){for(d=b[0],e=b[1],f=c[0],g=c[1],i=e;f&&d[0]==f[0]&&d[1]==f[1];)i=H(g)?A(i,g[0]):D(i,g[0],g[1]-1),++k,b=a[k],d=b[0],e=b[1],c=a[k+1],f=c&&c[0],g=c&&c[1],j=!0;h.push([d,j?i:e]),j=!1}else h.push(b);return S(h)},S=function(a){if(1==a.length)return a;for(var b=-1,c=-1;++b<a.length;){var d=a[b],e=d[1],f=e[0],g=e[1];for(c=b;++c<a.length;){var h=a[c],i=h[1],j=i[0],k=i[1];f==j&&g==k&&(d[0]=H(h[0])?A(d[0],h[0][0]):D(d[0],h[0][0],h[0][1]-1),a.splice(c,1),--c)}}return a},T=function(a){if(!a.length)return[];for(var b,c,d,e,f,g,j=0,k=0,l=0,m=[],n=a.length;n>j;){b=a[j],c=a[j+1]-1,d=K(b),e=L(b),f=K(c),g=L(c);var o=e==h,p=g==i,q=!1;d==f||o&&p?(m.push([[d,f+1],[e,g+1]]),q=!0):m.push([[d,d+1],[e,i+1]]),!q&&f>d+1&&(p?(m.push([[d+1,f+1],[h,g+1]]),q=!0):m.push([[d+1,f],[h,i+1]])),q||m.push([[f,f+1],[h,g+1]]),k=d,l=f,j+=2}return R(m)},U=function(a){var b=[];return p(a,function(a){var c=a[0],d=a[1];b.push(P(c)+P(d))}),b.join("|")},V=function(a){var b=[],c=Q(a),d=c.loneHighSurrogates,e=c.bmp,f=c.astral,g=!G(c.astral),h=!G(d),i=T(f);return!g&&h&&(e=B(e,d)),G(e)||b.push(P(e)),i.length&&b.push(U(i)),g&&h&&b.push(P(d)),b.join("|")},W=function(a){return arguments.length>1&&(a=w.call(arguments)),this instanceof W?(this.data=[],a?this.add(a):this):(new W).add(a)};W.version="1.0.1";var X=W.prototype;o(X,{add:function(a){var b=this;return null==a?b:a instanceof W?(b.data=B(b.data,a.data),b):(arguments.length>1&&(a=w.call(arguments)),r(a)?(p(a,function(a){b.add(a)}),b):(b.data=A(b.data,s(a)?a:O(a)),b))},remove:function(a){var b=this;return null==a?b:a instanceof W?(b.data=C(b.data,a.data),b):(arguments.length>1&&(a=w.call(arguments)),r(a)?(p(a,function(a){b.remove(a)}),b):(b.data=y(b.data,s(a)?a:O(a)),b))},addRange:function(a,b){var c=this;return c.data=D(c.data,s(a)?a:O(a),s(b)?b:O(b)),c},removeRange:function(a,b){var c=this,d=s(a)?a:O(a),e=s(b)?b:O(b);return c.data=z(c.data,d,e),c},intersection:function(a){var b=this,c=a instanceof W?I(a.data):a;return b.data=F(b.data,c),b},contains:function(a){return E(this.data,s(a)?a:O(a))},clone:function(){var a=new W;return a.data=this.data.slice(0),a},toString:function(){var a=V(this.data);return a.replace(l,"\\0$1")},toRegExp:function(a){return RegExp(this.toString(),a||"")},valueOf:function(){return I(this.data)}}),X.toArray=X.valueOf,"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return W}):b&&!b.nodeType?c?c.exports=W:b.regenerate=W:a.regenerate=W}(this),i.regenerate=j.exports||window.regenerate,function(){function a(){var a,b,c=16384,d=[],e=-1,f=arguments.length;if(!f)return"";for(var g="";++e<f;){var h=Number(arguments[e]);if(!isFinite(h)||0>h||h>1114111||z(h)!=h)throw RangeError("Invalid code point: "+h);65535>=h?d.push(h):(h-=65536,a=(h>>10)+55296,b=h%1024+56320,d.push(a,b)),(e+1==f||d.length>c)&&(g+=y.apply(null,d),d.length=0)}return g}function b(a,c){if(-1==c.indexOf("|")){if(a==c)return;throw Error("Invalid node type: "+a)}if(c=b.hasOwnProperty(c)?b[c]:b[c]=RegExp("^(?:"+c+")$"),!c.test(a))throw Error("Invalid node type: "+a)}function c(a){var b=a.type;if(c.hasOwnProperty(b)&&"function"==typeof c[b])return c[b](a);throw Error("Invalid node type: "+b)}function d(a){b(a.type,"alternative");var c=a.body,d=c?c.length:0;if(1==d)return r(c[0]);for(var e=-1,f="";++e<d;)f+=r(c[e]);return f}function e(a){switch(b(a.type,"anchor"),a.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}function f(a){return b(a.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),c(a)}function g(a){b(a.type,"characterClass");var c=a.body,d=c?c.length:0,e=-1,f="[";for(a.negative&&(f+="^");++e<d;)f+=l(c[e]);return f+="]"}function h(a){return b(a.type,"characterClassEscape"),"\\"+a.value}function i(a){b(a.type,"characterClassRange");var c=a.min,d=a.max;if("characterClassRange"==c.type||"characterClassRange"==d.type)throw Error("Invalid character class range");return l(c)+"-"+l(d)}function l(a){return b(a.type,"anchor|characterClassEscape|characterClassRange|dot|value"),c(a)}function m(a){b(a.type,"disjunction");var d=a.body,e=d?d.length:0;if(0==e)throw Error("No body");if(1==e)return c(d[0]);for(var f=-1,g="";++f<e;)0!=f&&(g+="|"),g+=c(d[f]);return g}function n(a){return b(a.type,"dot"),"."}function o(a){b(a.type,"group");var d="(";switch(a.behavior){case"normal":break;case"ignore":d+="?:";break;case"lookahead":d+="?=";break;case"negativeLookahead":d+="?!";break;default:throw Error("Invalid behaviour: "+a.behaviour)}var e=a.body,f=e?e.length:0;if(1==f)d+=c(e[0]);else for(var g=-1;++g<f;)d+=c(e[g]);return d+=")"}function p(a){b(a.type,"quantifier");var c="",d=a.min,e=a.max;switch(e){case void 0:case null:switch(d){case 0:c="*";break;case 1:c="+";break;default:c="{"+d+",}"}break;default:c=d==e?"{"+d+"}":0==d&&1==e?"?":"{"+d+","+e+"}"}return a.greedy||(c+="?"),f(a.body[0])+c}function q(a){return b(a.type,"reference"),"\\"+a.matchIndex}function r(a){return b(a.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|value"),c(a)}function s(c){b(c.type,"value");var d=c.kind,e=c.codePoint;switch(d){case"controlLetter":return"\\c"+a(e+64);case"hexadecimalEscape":return"\\x"+("00"+e.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+a(e);case"null":return"\\"+e;case"octal":return"\\"+e.toString(8);case"singleEscape":switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";default:throw Error("Invalid codepoint: "+e)}case"symbol":return a(e);case"unicodeEscape":return"\\u"+("0000"+e.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+e.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+d)}}var t={"function":!0,object:!0},u=t[typeof window]&&window||this,v=t[typeof k]&&k,w=t[typeof j]&&j&&!j.nodeType&&j,x=v&&w&&"object"==typeof global&&global;!x||x.global!==x&&x.window!==x&&x.self!==x||(u=x);var y=String.fromCharCode,z=Math.floor;c.alternative=d,c.anchor=e,c.characterClass=g,c.characterClassEscape=h,c.characterClassRange=i,c.disjunction=m,c.dot=n,c.group=o,c.quantifier=p,c.reference=q,c.value=s,"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return{generate:c}}):v&&w?v.generate=c:u.regjsgen={generate:c}}.call(this),i.regjsgen={generate:k.generate||window.regjsgen},function(){function a(a,b){function c(b){return b.raw=a.substring(b.range[0],b.range[1]),b}function d(a,b){return a.range[0]=b,c(a)}function e(a,b){return c({type:"anchor",kind:a,range:[V-b,V]})}function f(a,b,d,e){return c({type:"value",kind:a,codePoint:b,range:[d,e]})}function g(a,b,c,d){return d=d||0,f(a,b,V-(c.length+d),V)}function h(a){var b=a[0],c=b.charCodeAt(0);if(U){var d;if(1===b.length&&c>=55296&&56319>=c&&(d=v().charCodeAt(0),d>=56320&&57343>=d))return V++,f("symbol",1024*(c-55296)+d-56320+65536,V-2,V)}return f("symbol",c,V-1,V)}function i(a,b,d){return c({type:"disjunction",body:a,range:[b,d]})}function j(){return c({type:"dot",range:[V-1,V]})}function k(a){return c({type:"characterClassEscape",value:a,range:[V-2,V]})}function l(a){return c({type:"reference",matchIndex:parseInt(a,10),range:[V-1-a.length,V]})}function m(a,b,d,e){return c({type:"group",behavior:a,body:b,range:[d,e]})}function n(a,b,d,e){return null==e&&(d=V-1,e=V),c({type:"quantifier",min:a,max:b,greedy:!0,body:null,range:[d,e]})}function o(a,b,d){return c({type:"alternative",body:a,range:[b,d]})}function p(a,b,d,e){return c({type:"characterClass",body:a,negative:b,range:[d,e]})}function q(a,b,d,e){if(a.codePoint>b.codePoint)throw SyntaxError("invalid range in character class");return c({type:"characterClassRange",min:a,max:b,range:[d,e]})}function r(a){return"alternative"===a.type?a.body:[a]}function s(b){b=b||1;var c=a.substring(V,V+b);return V+=b||1,c}function t(a){if(!u(a))throw SyntaxError("character: "+a)}function u(b){return a.indexOf(b,V)===V?s(b.length):void 0}function v(){return a[V]}function w(b){return a.indexOf(b,V)===V}function x(b){return a[V+1]===b}function y(b){var c=a.substring(V),d=c.match(b);return d&&(d.range=[],d.range[0]=V,s(d[0].length),d.range[1]=V),d}function z(){var a=[],b=V;for(a.push(A());u("|");)a.push(A());return 1===a.length?a[0]:i(a,b,V)}function A(){for(var a,b=[],c=V;a=B();)b.push(a);return 1===b.length?b[0]:o(b,c,V)}function B(){if(V>=a.length||w("|")||w(")"))return null;var b=D();if(b)return b;var c=F();if(!c)throw SyntaxError("Expected atom");var e=E()||!1;return e?(e.body=r(c),d(e,c.range[0]),e):c}function C(a,b,c,d){var e=null,f=V;if(u(a))e=b;else{if(!u(c))return!1;e=d}var g=z();if(!g)throw SyntaxError("Expected disjunction");t(")");var h=m(e,r(g),f,V);return"normal"==e&&W++,h}function D(){return u("^")?e("start",1):u("$")?e("end",1):u("\\b")?e("boundary",2):u("\\B")?e("not-boundary",2):C("(?=","lookahead","(?!","negativeLookahead")}function E(){var a,b,c,d;if(u("*"))b=n(0);else if(u("+"))b=n(1);else if(u("?"))b=n(0,1);else if(a=y(/^\{([0-9]+)\}/))c=parseInt(a[1],10),b=n(c,c,a.range[0],a.range[1]);else if(a=y(/^\{([0-9]+),\}/))c=parseInt(a[1],10),b=n(c,void 0,a.range[0],a.range[1]);else if(a=y(/^\{([0-9]+),([0-9]+)\}/)){if(c=parseInt(a[1],10),d=parseInt(a[2],10),c>d)throw SyntaxError("numbers out of order in {} quantifier");b=n(c,d,a.range[0],a.range[1])}return b&&u("?")&&(b.greedy=!1,b.range[1]+=1),b}function F(){var a;if(a=y(/^[^^$\\.*+?(){[|]/))return h(a);if(u("."))return j();if(u("\\")){if(a=I(),!a)throw SyntaxError("atomEscape");return a}return(a=N())?a:C("(?:","ignore","(","normal")}function G(a){if(U){var b,d;if("unicodeEscape"==a.kind&&(b=a.codePoint)>=55296&&56319>=b&&w("\\")&&x("u")){var e=V;V++;var f=H();"unicodeEscape"==f.kind&&(d=f.codePoint)>=56320&&57343>=d?(a.range[1]=f.range[1],a.codePoint=1024*(b-55296)+d-56320+65536,a.type="value",a.kind="unicodeCodePointEscape",c(a)):V=e}}return a}function H(){return I(!0)}function I(a){var b;if(b=J())return b;if(a){if(u("b"))return g("singleEscape",8,"\\b");if(u("B"))throw SyntaxError("\\B not possible inside of CharacterClass")}return b=K()}function J(){var a,b;if(a=y(/^(?!0)\d+/)){b=a[0];var c=parseInt(a[0],10);return W>=c?l(a[0]):(s(-a[0].length),(a=y(/^[0-7]{1,3}/))?g("octal",parseInt(a[0],8),a[0],1):(a=h(y(/^[89]/)),d(a,a.range[0]-1)))}return(a=y(/^[0-7]{1,3}/))?(b=a[0],/^0{1,3}$/.test(b)?g("null",0,"0",b.length+1):g("octal",parseInt(b,8),b,1)):(a=y(/^[dDsSwW]/))?k(a[0]):!1}function K(){var a;if(a=y(/^[fnrtv]/)){var b=0;switch(a[0]){case"t":b=9;break;case"n":b=10;break;case"v":b=11;break;case"f":b=12;break;case"r":b=13}return g("singleEscape",b,"\\"+a[0])}return(a=y(/^c([a-zA-Z])/))?g("controlLetter",a[1].charCodeAt(0)%32,a[1],2):(a=y(/^x([0-9a-fA-F]{2})/))?g("hexadecimalEscape",parseInt(a[1],16),a[1],2):(a=y(/^u([0-9a-fA-F]{4})/))?G(g("unicodeEscape",parseInt(a[1],16),a[1],2)):U&&(a=y(/^u\{([0-9a-fA-F]{1,})\}/))?g("unicodeCodePointEscape",parseInt(a[1],16),a[1],4):M()}function L(a){var b=new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ--ℝℤΩℨK--ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0--_-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]");return 36===a||95===a||a>=65&&90>=a||a>=97&&122>=a||a>=48&&57>=a||92===a||a>=128&&b.test(String.fromCharCode(a))}function M(){var a,b="",c="";return L(v())?u(b)?g("identifier",8204,b):u(c)?g("identifier",8205,c):null:(a=s(),g("identifier",a.charCodeAt(0),a,1))}function N(){var a,b=V;return(a=y(/^\[\^/))?(a=O(),t("]"),p(a,!0,b,V)):u("[")?(a=O(),t("]"),p(a,!1,b,V)):null}function O(){var a;if(w("]"))return[];if(a=Q(),!a)throw SyntaxError("nonEmptyClassRanges");return a}function P(a){var b,c,d;if(w("-")&&!x("]")){if(t("-"),d=S(),!d)throw SyntaxError("classAtom");c=V;var e=O();if(!e)throw SyntaxError("classRanges");return b=a.range[0],"empty"===e.type?[q(a,d,b,c)]:[q(a,d,b,c)].concat(e)}if(d=R(),!d)throw SyntaxError("nonEmptyClassRangesNoDash");return[a].concat(d)}function Q(){var a=S();if(!a)throw SyntaxError("classAtom");return w("]")?[a]:P(a)}function R(){var a=S();if(!a)throw SyntaxError("classAtom");return w("]")?a:P(a)}function S(){return u("-")?h("-"):T()}function T(){var a;if(a=y(/^[^\\\]-]/))return h(a[0]);if(u("\\")){if(a=H(),!a)throw SyntaxError("classEscape");return G(a)}}var U=-1!==(b||"").indexOf("u"),V=0,W=0;a=String(a),""===a&&(a="(?:)");var X=z();if(X.range[1]!==a.length)throw SyntaxError("Could not parse entire input - got stuck: "+a);return X}var b={parse:a};"undefined"!=typeof j&&j.exports?j.exports=b:window.regjsparser=b}(),i.regjsparser=j.exports||window.regjsparser,i["./data/iu-mappings.json"]={75:8490,83:383,107:8490,115:383,181:924,197:8491,383:83,452:453,453:452,455:456,456:455,458:459,459:458,497:498,498:497,837:8126,914:976,917:1013,920:1012,921:8126,922:1008,924:181,928:982,929:1009,931:962,934:981,937:8486,962:931,976:914,977:1012,981:934,982:928,1008:922,1009:929,1012:[920,977],1013:917,7776:7835,7835:7776,8126:[837,921],8486:937,8490:75,8491:197,66560:66600,66561:66601,66562:66602,66563:66603,66564:66604,66565:66605,66566:66606,66567:66607,66568:66608,66569:66609,66570:66610,66571:66611,66572:66612,66573:66613,66574:66614,66575:66615,66576:66616,66577:66617,66578:66618,66579:66619,66580:66620,66581:66621,66582:66622,66583:66623,66584:66624,66585:66625,66586:66626,66587:66627,66588:66628,66589:66629,66590:66630,66591:66631,66592:66632,66593:66633,66594:66634,66595:66635,66596:66636,66597:66637,66598:66638,66599:66639,66600:66560,66601:66561,66602:66562,66603:66563,66604:66564,66605:66565,66606:66566,66607:66567,66608:66568,66609:66569,66610:66570,66611:66571,66612:66572,66613:66573,66614:66574,66615:66575,66616:66576,66617:66577,66618:66578,66619:66579,66620:66580,66621:66581,66622:66582,66623:66583,66624:66584,66625:66585,66626:66586,66627:66587,66628:66588,66629:66589,66630:66590,66631:66591,66632:66592,66633:66593,66634:66594,66635:66595,66636:66596,66637:66597,66638:66598,66639:66599,71840:71872,71841:71873,71842:71874,71843:71875,71844:71876,71845:71877,71846:71878,71847:71879,71848:71880,71849:71881,71850:71882,71851:71883,71852:71884,71853:71885,71854:71886,71855:71887,71856:71888,71857:71889,71858:71890,71859:71891,71860:71892,71861:71893,71862:71894,71863:71895,71864:71896,71865:71897,71866:71898,71867:71899,71868:71900,71869:71901,71870:71902,71871:71903,71872:71840,71873:71841,71874:71842,71875:71843,71876:71844,71877:71845,71878:71846,71879:71847,71880:71848,71881:71849,71882:71850,71883:71851,71884:71852,71885:71853,71886:71854,71887:71855,71888:71856,71889:71857,71890:71858,71891:71859,71892:71860,71893:71861,71894:71862,71895:71863,71896:71864,71897:71865,71898:71866,71899:71867,71900:71868,71901:71869,71902:71870,71903:71871};var m=l("regenerate");k.REGULAR={d:m().addRange(48,57),D:m().addRange(0,47).addRange(58,65535),s:m(32,160,5760,6158,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:m().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,6157).addRange(6159,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535),w:m(95).addRange(48,57).addRange(65,90).addRange(97,122),W:m(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)},k.UNICODE={d:m().addRange(48,57),D:m().addRange(0,47).addRange(58,1114111),s:m(32,160,5760,6158,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:m().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,6157).addRange(6159,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:m(95).addRange(48,57).addRange(65,90).addRange(97,122),W:m(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},k.UNICODE_IGNORE_CASE={d:m().addRange(48,57),D:m().addRange(0,47).addRange(58,1114111),s:m(32,160,5760,6158,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:m().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,6157).addRange(6159,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:m(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122),W:m(75,83,96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},i["./data/character-class-escape-sets.js"]={REGULAR:k.REGULAR,UNICODE:k.UNICODE,UNICODE_IGNORE_CASE:k.UNICODE_IGNORE_CASE};var n=l("regjsgen").generate,o=l("regjsparser").parse,m=l("regenerate"),p=l("./data/iu-mappings.json"),q=l("./data/character-class-escape-sets.js"),r={},s=r.hasOwnProperty,t=m().addRange(0,1114111),u=m().addRange(0,65535),v=t.clone().remove(10,13,8232,8233),w=v.clone().intersection(u);m.prototype.iuAddRange=function(a,b){var c=this;do{var d=f(a);d&&c.add(d)}while(++a<=b);return c};var x=!1,y=!1;j.exports=function(a,b){var d=o(a,b);return x=b?b.indexOf("i")>-1:!1,y=b?b.indexOf("u")>-1:!1,c(d,h(d)),n(d)};var z=j.exports;return{get regexpuRewritePattern(){return z}}}),System.registerModule("traceur@0.0.79/src/codegeneration/RegularExpressionTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").LiteralExpression,c=System.get("traceur@0.0.79/src/syntax/LiteralToken.js").LiteralToken,d=System.get("traceur@0.0.79/src/syntax/TokenType.js").REGULAR_EXPRESSION,e=System.get("traceur@0.0.79/src/outputgeneration/regexpuRewritePattern.js").regexpuRewritePattern,f=function(){$traceurRuntime.superConstructor(g).apply(this,arguments)},g=f;return $traceurRuntime.createClass(f,{transformLiteralExpression:function(a){var f=a.literalToken;if(f.type===d){var g=f.value,h=g.lastIndexOf("/"),i=g.slice(1,h),j=g.slice(h+1);if(-1!==j.indexOf("u")){var k="/"+e(i,j)+"/"+j.replace("u","");return new b(a.location,new c(d,k,f.location))}}return a}},{},a),{get RegularExpressionTransformer(){return f}}}),System.registerModule("traceur@0.0.79/src/codegeneration/RestParameterTransformer.js",[],function(){"use strict";function a(a){var b=a.parameters;return b.length>0&&b[b.length-1].isRestParameter()}function b(a){var b=a.parameters;return b[b.length-1].parameter.identifier.identifierToken}var c=Object.freeze(Object.defineProperties(["\n for (var "," = [], "," = ",";\n "," < arguments.length; ","++)\n ","["," - ","] = arguments[","];"],{raw:{value:Object.freeze(["\n for (var "," = [], "," = ",";\n "," < arguments.length; ","++)\n ","["," - ","] = arguments[","];"])}})),d=Object.freeze(Object.defineProperties(["\n for (var "," = [], "," = 0;\n "," < arguments.length; ","++)\n ","[","] = arguments[","];"],{raw:{value:Object.freeze(["\n for (var "," = [], "," = 0;\n "," < arguments.length; ","++)\n ","[","] = arguments[","];"])}})),e=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").FormalParameterList,f=System.get("traceur@0.0.79/src/codegeneration/ParameterTransformer.js").ParameterTransformer,g=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js").createIdentifierToken,h=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement,i=function(){$traceurRuntime.superConstructor(j).apply(this,arguments)
},j=i;return $traceurRuntime.createClass(i,{transformFormalParameterList:function(f){var i=$traceurRuntime.superGet(this,j.prototype,"transformFormalParameterList").call(this,f);if(a(i)){var k,l=new e(i.location,i.parameters.slice(0,-1)),m=i.parameters.length-1,n=g(this.getTempIdentifier()),o=b(i);return k=m?h(c,o,n,m,n,n,o,n,m,n):h(d,o,n,n,n,o,n,n),this.parameterStatements.push(k),l}return i},transformConstructorType:function(a){return a},transformFunctionType:function(a){return a}},{},f),{get RestParameterTransformer(){return i}}}),System.registerModule("traceur@0.0.79/src/codegeneration/SpreadTransformer.js",[],function(){"use strict";function a(a){return a.some(function(a){return a&&a.type==k})}var b=Object.freeze(Object.defineProperties(["$traceurRuntime.spread(",")"],{raw:{value:Object.freeze(["$traceurRuntime.spread(",")"])}})),c=System.get("traceur@0.0.79/src/syntax/PredefinedName.js"),d=c.APPLY,e=c.BIND,f=c.FUNCTION,g=c.PROTOTYPE,h=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),i=h.MEMBER_EXPRESSION,j=h.MEMBER_LOOKUP_EXPRESSION,k=h.SPREAD_EXPRESSION,l=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,m=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),n=m.createArgumentList,o=m.createArrayLiteralExpression,p=m.createAssignmentExpression,q=m.createCallExpression,r=m.createEmptyArgumentList,s=m.createIdentifierExpression,t=m.createMemberExpression,u=m.createMemberLookupExpression,v=m.createNewExpression,w=m.createNullLiteral,x=m.createParenExpression,y=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,z=function(){$traceurRuntime.superConstructor(A).apply(this,arguments)},A=z;return $traceurRuntime.createClass(z,{createArrayFromElements_:function(a){for(var c,d=a.length,e=[],f=0;d>f;f++)a[f]&&a[f].type===k?(c&&(e.push(o(c)),c=null),e.push(this.transformAny(a[f].expression))):(c||(c=[]),c.push(this.transformAny(a[f])));return c&&e.push(o(c)),y(b,n(e))},desugarCallSpread_:function(a){var b,c,e=this.transformAny(a.operand);if(this.pushTempScope(),e.type==i){var f=s(this.addTempVar()),g=x(p(f,e.operand)),h=e.memberName;c=f,b=t(g,h)}else if(a.operand.type==j){var f=s(this.addTempVar()),g=x(p(f,e.operand)),k=this.transformAny(e.memberExpression);c=f,b=u(g,k)}else c=w(),b=e;this.popTempScope();var l=this.createArrayFromElements_(a.args.args);return q(t(b,d),n([c,l]))},desugarNewSpread_:function(a){var b=$traceurRuntime.spread([w()],a.args.args);return b=this.createArrayFromElements_(b),v(x(q(t(f,g,e,d),n([this.transformAny(a.operand),b]))),r())},transformArrayLiteralExpression:function(b){return a(b.elements)?this.createArrayFromElements_(b.elements):$traceurRuntime.superGet(this,A.prototype,"transformArrayLiteralExpression").call(this,b)},transformCallExpression:function(b){return a(b.args.args)?this.desugarCallSpread_(b):$traceurRuntime.superGet(this,A.prototype,"transformCallExpression").call(this,b)},transformNewExpression:function(b){return null!=b.args&&a(b.args.args)?this.desugarNewSpread_(b):$traceurRuntime.superGet(this,A.prototype,"transformNewExpression").call(this,b)}},{},l),{get SpreadTransformer(){return z}}}),System.registerModule("traceur@0.0.79/src/codegeneration/SymbolTransformer.js",[],function(){"use strict";function a(a){switch(a.operator.type){case v:case w:case y:case z:return!0}return!1}function b(a){return a.type===r&&a.operator.type===B}function c(a){if(a.type!==q)return!1;var b=a.literalToken.processedValue;switch(b){case"symbol":case"object":return!1}return!0}var d=Object.freeze(Object.defineProperties(["$traceurRuntime.toProperty(",") in ",""],{raw:{value:Object.freeze(["$traceurRuntime.toProperty(",") in ",""])}})),e=Object.freeze(Object.defineProperties(["","[$traceurRuntime.toProperty(",")]"],{raw:{value:Object.freeze(["","[$traceurRuntime.toProperty(",")]"])}})),f=Object.freeze(Object.defineProperties(["(typeof "," === 'undefined' ?\n 'undefined' : ",")"],{raw:{value:Object.freeze(["(typeof "," === 'undefined' ?\n 'undefined' : ",")"])}})),g=Object.freeze(Object.defineProperties(["$traceurRuntime.typeof(",")"],{raw:{value:Object.freeze(["$traceurRuntime.typeof(",")"])}})),h=Object.freeze(Object.defineProperties(["if (!$traceurRuntime.isSymbolString(",")) ",""],{raw:{value:Object.freeze(["if (!$traceurRuntime.isSymbolString(",")) ",""])}})),i=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),j=i.BinaryExpression,k=i.MemberLookupExpression,l=i.ForInStatement,m=i.UnaryExpression,n=System.get("traceur@0.0.79/src/codegeneration/ExplodeExpressionTransformer.js").ExplodeExpressionTransformer,o=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),p=o.IDENTIFIER_EXPRESSION,q=o.LITERAL_EXPRESSION,r=o.UNARY_EXPRESSION,s=o.VARIABLE_DECLARATION_LIST,t=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,u=System.get("traceur@0.0.79/src/syntax/TokenType.js"),v=u.EQUAL_EQUAL,w=u.EQUAL_EQUAL_EQUAL,x=u.IN,y=u.NOT_EQUAL,z=u.NOT_EQUAL_EQUAL,A=u.STRING,B=u.TYPEOF,C=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),D=C.parseExpression,E=C.parseStatement,F=function(){$traceurRuntime.superConstructor(G).apply(this,arguments)},G=F;$traceurRuntime.createClass(F,{transformArrowFunctionExpression:function(a){return a},transformClassExpression:function(a){return a},transformFunctionBody:function(a){return a}},{},n);var H=function(){$traceurRuntime.superConstructor(I).apply(this,arguments)},I=H;return $traceurRuntime.createClass(H,{transformTypeofOperand_:function(a){var b=this.transformAny(a.operand);return new m(a.location,a.operator,b)},transformBinaryExpression:function(e){if(e.operator.type===x){var f=this.transformAny(e.left),g=this.transformAny(e.right);return f.type===q?new j(e.location,f,e.operator,g):D(d,f,g)}if(a(e)){if(b(e.left)&&c(e.right)){var h=this.transformTypeofOperand_(e.left),i=e.right;return new j(e.location,h,e.operator,i)}if(b(e.right)&&c(e.left)){var h=e.left,i=this.transformTypeofOperand_(e.right);return new j(e.location,h,e.operator,i)}}return $traceurRuntime.superGet(this,I.prototype,"transformBinaryExpression").call(this,e)},transformMemberLookupExpression:function(a){var b=this.transformAny(a.operand),c=this.transformAny(a.memberExpression);return c.type===q&&c.literalToken.type!==A?new k(a.location,b,c):D(e,b,c)},transformUnaryExpression:function(a){if(a.operator.type!==B)return $traceurRuntime.superGet(this,I.prototype,"transformUnaryExpression").call(this,a);var b=this.transformAny(a.operand),c=this.getRuntimeTypeof(b);return b.type===p?D(f,b,c):c},getRuntimeTypeof:function(a){return D(g,a)},transformForInStatement:function(a){var b,c=this.transformAny(a.initializer),d=this.transformAny(a.collection),e=this.transformAny(a.body);if(b=c.type===s?c.declarations[0].lvalue.identifierToken:c.identifierToken,!b)throw new Error("Not implemented");return e=E(h,b,e),new l(a.location,c,d,e)}},{},t),{get SymbolTransformer(){return H}}}),System.registerModule("traceur@0.0.79/src/codegeneration/TemplateLiteralTransformer.js",[],function(){"use strict";function a(a){var b=a.elements,d=e(b),f=c(b);return H(h,d,f)}function b(a,b){var c=a.length;c&&a[c-1].type===m||b.push(G(""))}function c(a){for(var c=[],d=0;d<a.length;d+=2){var e=a[d].value.value;e=e.replace(/\r\n?/g,"\n"),e=JSON.stringify(e),e=f(e);var g=a[d].location,h=new o(g,new q(y,e,g));c.push(h)}return b(a,c),B(c)}function d(a){var b=g(a.value.value),c=a.location;return new o(c,new q(y,b,c))}function e(a){for(var c=[],e=0;e<a.length;e+=2)c.push(d(a[e]));return b(a,c),B(c)}function f(a){return a.replace(/\u2028|\u2029/g,function(a){switch(a){case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw Error("Not reachable")}})}function g(a){for(var b,c,d=['"'],e=0,f=1;e<a.length;)switch(b=a[e++]){case"\\":switch(c=a[e++]){case"\n":case"\u2028":case"\u2029":break;case"\r":"\n"===a[e+1]&&e++;break;default:d[f++]=b,d[f++]=c}break;case'"':d[f++]='\\"';break;case"\n":d[f++]="\\n";break;case"\r":"\n"===a[e]&&e++,d[f++]="\\n";break;case" ":d[f++]="\\t";break;case"\f":d[f++]="\\f";break;case"\b":d[f++]="\\b";break;case"\u2028":d[f++]="\\u2028";break;case"\u2029":d[f++]="\\u2029";break;default:d[f++]=b}return d[f++]='"',d.join("")}var h=Object.freeze(Object.defineProperties(["Object.freeze(Object.defineProperties(",", {\n raw: {\n value: Object.freeze(",")\n }\n }))"],{raw:{value:Object.freeze(["Object.freeze(Object.defineProperties(",", {\n raw: {\n value: Object.freeze(",")\n }\n }))"])}})),i=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),j=i.BINARY_EXPRESSION,k=i.COMMA_EXPRESSION,l=i.CONDITIONAL_EXPRESSION,m=i.TEMPLATE_LITERAL_PORTION,n=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),o=n.LiteralExpression,p=n.ParenExpression,q=System.get("traceur@0.0.79/src/syntax/LiteralToken.js").LiteralToken,r=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,s=System.get("traceur@0.0.79/src/codegeneration/TempVarTransformer.js").TempVarTransformer,t=System.get("traceur@0.0.79/src/syntax/TokenType.js"),u=t.PERCENT,v=t.PLUS,w=t.SLASH,x=t.STAR,y=t.STRING,z=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),A=z.createArgumentList,B=z.createArrayLiteralExpression,C=z.createBinaryExpression,D=z.createCallExpression,E=z.createIdentifierExpression,F=z.createOperatorToken,G=z.createStringLiteral,H=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,I=function(){$traceurRuntime.superConstructor(J).apply(this,arguments)},J=I;return $traceurRuntime.createClass(I,{transformFunctionBody:function(a){return r.prototype.transformFunctionBody.call(this,a)},transformTemplateLiteralExpression:function(b){if(!b.operand)return this.createDefaultTemplateLiteral(b);for(var c=this.transformAny(b.operand),d=b.elements,e=a(b),f=this.addTempVar(e),g=[E(f)],h=1;h<d.length;h+=2)g.push(this.transformAny(d[h]));return D(c,A(g))},transformTemplateSubstitution:function(a){var b=this.transformAny(a.expression);switch(b.type){case j:switch(b.operator.type){case x:case u:case w:return b}case k:case l:return new p(null,b)}return b},transformTemplateLiteralPortion:function(a){return d(a)},createDefaultTemplateLiteral:function(a){var b=a.elements.length;if(0===b){var c=a.location;return new o(c,new q(y,'""',c))}var d=""===a.elements[0].value.value?-1:0,e=this.transformAny(a.elements[0]);if(1==b)return e;for(var f=F(v),g=1;b>g;g++){var h=a.elements[g];if(h.type===m){if(""===h.value.value)continue;0>d&&2===g&&(e=e.right)}var i=this.transformAny(a.elements[g]);e=C(e,f,i)}return new p(null,e)}},{},s),{get TemplateLiteralTransformer(){return I}}}),System.registerModule("traceur@0.0.79/src/codegeneration/TypeAssertionTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["assert.type(",", ",")"],{raw:{value:Object.freeze(["assert.type(",", ",")"])}})),b=Object.freeze(Object.defineProperties(["assert.argumentTypes(",")"],{raw:{value:Object.freeze(["assert.argumentTypes(",")"])}})),c=Object.freeze(Object.defineProperties(["return assert.returnType((","), ",")"],{raw:{value:Object.freeze(["return assert.returnType((","), ",")"])}})),d=Object.freeze(Object.defineProperties(["$traceurRuntime.type.any"],{raw:{value:Object.freeze(["$traceurRuntime.type.any"])}})),e=System.get("traceur@0.0.79/src/syntax/trees/ParseTreeType.js"),f=e.BINDING_ELEMENT,g=e.REST_PARAMETER,h=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),i=h.ImportDeclaration,j=h.ImportSpecifier,k=h.ImportSpecifierSet,l=h.Module,m=h.ModuleSpecifier,n=h.Script,o=h.VariableDeclaration,p=System.get("traceur@0.0.79/src/codegeneration/ParseTreeFactory.js"),q=p.createArgumentList,r=p.createIdentifierExpression,s=p.createImportedBinding,t=p.createStringLiteralToken,u=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),v=u.parseExpression,w=u.parseStatement,x=System.get("traceur@0.0.79/src/codegeneration/ParameterTransformer.js").ParameterTransformer,y=System.get("traceur@0.0.79/src/Options.js").options,z=function(a){$traceurRuntime.superConstructor(A).call(this,a),this.returnTypeStack_=[],this.parametersStack_=[],this.assertionAdded_=!1},A=z;return $traceurRuntime.createClass(z,{transformScript:function(a){return this.prependAssertionImport_($traceurRuntime.superGet(this,A.prototype,"transformScript").call(this,a),n)},transformModule:function(a){return this.prependAssertionImport_($traceurRuntime.superGet(this,A.prototype,"transformModule").call(this,a),l)},transformVariableDeclaration:function(b){if(b.typeAnnotation&&b.initializer){var c=v(a,b.initializer,b.typeAnnotation);b=new o(b.location,b.lvalue,b.typeAnnotation,c),this.assertionAdded_=!0}return $traceurRuntime.superGet(this,A.prototype,"transformVariableDeclaration").call(this,b)},transformFormalParameterList:function(a){this.parametersStack_.push({atLeastOneParameterTyped:!1,arguments:[]});var c=$traceurRuntime.superGet(this,A.prototype,"transformFormalParameterList").call(this,a),d=this.parametersStack_.pop();if(d.atLeastOneParameterTyped){var e=q(d.arguments),f=w(b,e);this.parameterStatements.push(f),this.assertionAdded_=!0}return c},transformFormalParameter:function(a){var b=$traceurRuntime.superGet(this,A.prototype,"transformFormalParameter").call(this,a);switch(b.parameter.type){case f:this.transformBindingElementParameter_(b.parameter,b.typeAnnotation);break;case g:}return b},transformGetAccessor:function(a){return this.pushReturnType_(a.typeAnnotation),a=$traceurRuntime.superGet(this,A.prototype,"transformGetAccessor").call(this,a),this.popReturnType_(),a},transformPropertyMethodAssignment:function(a){return this.pushReturnType_(a.typeAnnotation),a=$traceurRuntime.superGet(this,A.prototype,"transformPropertyMethodAssignment").call(this,a),this.popReturnType_(),a},transformFunctionDeclaration:function(a){return this.pushReturnType_(a.typeAnnotation),a=$traceurRuntime.superGet(this,A.prototype,"transformFunctionDeclaration").call(this,a),this.popReturnType_(),a},transformFunctionExpression:function(a){return this.pushReturnType_(a.typeAnnotation),a=$traceurRuntime.superGet(this,A.prototype,"transformFunctionExpression").call(this,a),this.popReturnType_(),a},transformArrowFunctionExpression:function(a){return this.pushReturnType_(null),a=$traceurRuntime.superGet(this,A.prototype,"transformArrowFunctionExpression").call(this,a),this.popReturnType_(),a},transformReturnStatement:function(a){return a=$traceurRuntime.superGet(this,A.prototype,"transformReturnStatement").call(this,a),this.returnType_&&a.expression?(this.assertionAdded_=!0,w(c,a.expression,this.returnType_)):a},transformBindingElementParameter_:function(a,b){return a.binding.isPattern()?void 0:(b?this.paramTypes_.atLeastOneParameterTyped=!0:b=v(d),void this.paramTypes_.arguments.push(r(a.binding.identifierToken),b))},pushReturnType_:function(a){this.returnTypeStack_.push(this.transformAny(a))},prependAssertionImport_:function(a,b){if(!this.assertionAdded_||null===y.typeAssertionModule)return a;var c=s("assert"),d=new i(null,new k(null,[new j(null,c,null)]),new m(null,t(y.typeAssertionModule)));return a=new b(a.location,$traceurRuntime.spread([d],a.scriptItemList),a.moduleName)},popReturnType_:function(){return this.returnTypeStack_.pop()},get returnType_(){return this.returnTypeStack_.length>0?this.returnTypeStack_[this.returnTypeStack_.length-1]:null},get paramTypes_(){return this.parametersStack_[this.parametersStack_.length-1]}},{},x),{get TypeAssertionTransformer(){return z}}}),System.registerModule("traceur@0.0.79/src/codegeneration/TypeToExpressionTransformer.js",[],function(){"use strict";var a=Object.freeze(Object.defineProperties(["$traceurRuntime.type.",")"],{raw:{value:Object.freeze(["$traceurRuntime.type.",")"])}})),b=Object.freeze(Object.defineProperties(["$traceurRuntime.genericType(",")"],{raw:{value:Object.freeze(["$traceurRuntime.genericType(",")"])}})),c=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,d=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),e=d.ArgumentList,f=d.IdentifierExpression,g=d.MemberExpression,h=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseExpression,i=function(){$traceurRuntime.superConstructor(j).apply(this,arguments)},j=i;return $traceurRuntime.createClass(i,{transformTypeName:function(a){if(a.moduleName){var b=this.transformAny(a.moduleName);return new g(a.location,b,a.name)}return new f(a.location,a.name)},transformPredefinedType:function(b){return h(a,b.typeToken)},transformTypeReference:function(a){var c=this.transformAny(a.typeName),d=this.transformAny(a.args),f=new e(a.location,$traceurRuntime.spread([c],d));return h(b,f)},transformTypeArguments:function(a){return this.transformList(a.args)}},{},c),{get TypeToExpressionTransformer(){return i}}}),System.registerModule("traceur@0.0.79/src/codegeneration/TypeTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),b=a.AnonBlock,c=a.FormalParameter,d=a.FunctionDeclaration,e=a.FunctionExpression,f=a.GetAccessor,g=a.PropertyMethodAssignment,h=a.VariableDeclaration,i=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,j=function(){$traceurRuntime.superConstructor(k).apply(this,arguments)},k=j;return $traceurRuntime.createClass(j,{transformVariableDeclaration:function(a){return a.typeAnnotation&&(a=new h(a.location,a.lvalue,null,a.initializer)),$traceurRuntime.superGet(this,k.prototype,"transformVariableDeclaration").call(this,a)},transformFormalParameter:function(a){return null!==a.typeAnnotation?new c(a.location,a.parameter,null,[]):a},transformFunctionDeclaration:function(a){return a.typeAnnotation&&(a=new d(a.location,a.name,a.functionKind,a.parameterList,null,a.annotations,a.body)),$traceurRuntime.superGet(this,k.prototype,"transformFunctionDeclaration").call(this,a)},transformFunctionExpression:function(a){return a.typeAnnotation&&(a=new e(a.location,a.name,a.functionKind,a.parameterList,null,a.annotations,a.body)),$traceurRuntime.superGet(this,k.prototype,"transformFunctionExpression").call(this,a)},transformPropertyMethodAssignment:function(a){return a.typeAnnotation&&(a=new g(a.location,a.isStatic,a.functionKind,a.name,a.parameterList,null,a.annotations,a.body)),$traceurRuntime.superGet(this,k.prototype,"transformPropertyMethodAssignment").call(this,a)},transformGetAccessor:function(a){return a.typeAnnotation&&(a=new f(a.location,a.isStatic,a.name,null,a.annotations,a.body)),$traceurRuntime.superGet(this,k.prototype,"transformGetAccessor").call(this,a)},transformInterfaceDeclaration:function(){return new b(null,[])}},{},i),{get TypeTransformer(){return j}}}),System.registerModule("traceur@0.0.79/src/codegeneration/UnicodeEscapeSequenceTransformer.js",[],function(){"use strict";function a(a){return"0000".slice(a.length)+a}function b(a){return a.type===f&&g.test(a.value)}function c(b){return b.value.replace(g,function(b,c,d){var e=c.length%2===1;if(e)return b;var f,g=parseInt(d,16);if(65535>=g)f="\\u"+a(g.toString(16).toUpperCase());else{var h=Math.floor((g-65536)/1024)+55296,i=(g-65536)%1024+56320;f="\\u"+h.toString(16).toUpperCase()+"\\u"+i.toString(16).toUpperCase()}return c+f})}var d=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,e=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").LiteralExpression,f=System.get("traceur@0.0.79/src/syntax/TokenType.js").STRING,g=/(\\*)\\u{([0-9a-fA-F]+)}/g,h=function(){$traceurRuntime.superConstructor(i).apply(this,arguments)},i=h;return $traceurRuntime.createClass(h,{transformLiteralExpression:function(a){var d=a.literalToken;return b(d)?new e(a.location,c(d)):a}},{},d),{get UnicodeEscapeSequenceTransformer(){return h}}}),System.registerModule("traceur@0.0.79/src/codegeneration/UniqueIdentifierGenerator.js",[],function(){"use strict";var a=function(){this.identifierIndex=0};return $traceurRuntime.createClass(a,{generateUniqueIdentifier:function(){return"$__"+this.identifierIndex++}},{}),{get UniqueIdentifierGenerator(){return a}}}),System.registerModule("traceur@0.0.79/src/codegeneration/FromOptionsTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/AmdTransformer.js").AmdTransformer,b=System.get("traceur@0.0.79/src/codegeneration/AnnotationsTransformer.js").AnnotationsTransformer,c=System.get("traceur@0.0.79/src/codegeneration/ArrayComprehensionTransformer.js").ArrayComprehensionTransformer,d=System.get("traceur@0.0.79/src/codegeneration/ArrowFunctionTransformer.js").ArrowFunctionTransformer,e=System.get("traceur@0.0.79/src/codegeneration/BlockBindingTransformer.js").BlockBindingTransformer,f=System.get("traceur@0.0.79/src/codegeneration/ClassTransformer.js").ClassTransformer,g=System.get("traceur@0.0.79/src/codegeneration/CommonJsModuleTransformer.js").CommonJsModuleTransformer,h=System.get("traceur@0.0.79/src/codegeneration/ExponentiationTransformer.js").ExponentiationTransformer,i=System.get("traceur@0.0.79/src/semantics/ConstChecker.js").validate,j=System.get("traceur@0.0.79/src/codegeneration/DefaultParametersTransformer.js").DefaultParametersTransformer,k=System.get("traceur@0.0.79/src/codegeneration/DestructuringTransformer.js").DestructuringTransformer,l=System.get("traceur@0.0.79/src/codegeneration/ForOfTransformer.js").ForOfTransformer,m=System.get("traceur@0.0.79/src/semantics/FreeVariableChecker.js").validate,n=System.get("traceur@0.0.79/src/codegeneration/GeneratorComprehensionTransformer.js").GeneratorComprehensionTransformer,o=System.get("traceur@0.0.79/src/codegeneration/GeneratorTransformPass.js").GeneratorTransformPass,p=System.get("traceur@0.0.79/src/codegeneration/InlineModuleTransformer.js").InlineModuleTransformer,q=System.get("traceur@0.0.79/src/codegeneration/MemberVariableTransformer.js").MemberVariableTransformer,r=System.get("traceur@0.0.79/src/codegeneration/ModuleTransformer.js").ModuleTransformer,s=System.get("traceur@0.0.79/src/codegeneration/MultiTransformer.js").MultiTransformer,t=System.get("traceur@0.0.79/src/codegeneration/NumericLiteralTransformer.js").NumericLiteralTransformer,u=System.get("traceur@0.0.79/src/codegeneration/ObjectLiteralTransformer.js").ObjectLiteralTransformer,v=System.get("traceur@0.0.79/src/codegeneration/PropertyNameShorthandTransformer.js").PropertyNameShorthandTransformer,w=System.get("traceur@0.0.79/src/codegeneration/InstantiateModuleTransformer.js").InstantiateModuleTransformer,x=System.get("traceur@0.0.79/src/codegeneration/RegularExpressionTransformer.js").RegularExpressionTransformer,y=System.get("traceur@0.0.79/src/codegeneration/RestParameterTransformer.js").RestParameterTransformer,z=System.get("traceur@0.0.79/src/codegeneration/SpreadTransformer.js").SpreadTransformer,A=System.get("traceur@0.0.79/src/codegeneration/SymbolTransformer.js").SymbolTransformer,B=System.get("traceur@0.0.79/src/codegeneration/TemplateLiteralTransformer.js").TemplateLiteralTransformer,C=System.get("traceur@0.0.79/src/codegeneration/TypeTransformer.js").TypeTransformer,D=System.get("traceur@0.0.79/src/codegeneration/TypeAssertionTransformer.js").TypeAssertionTransformer,E=System.get("traceur@0.0.79/src/codegeneration/TypeToExpressionTransformer.js").TypeToExpressionTransformer,F=System.get("traceur@0.0.79/src/codegeneration/UnicodeEscapeSequenceTransformer.js").UnicodeEscapeSequenceTransformer,G=System.get("traceur@0.0.79/src/codegeneration/UniqueIdentifierGenerator.js").UniqueIdentifierGenerator,H=System.get("traceur@0.0.79/src/Options.js"),I=H.options,J=H.transformOptions,K=function(s){var H=void 0!==arguments[1]?arguments[1]:new G,K=this;$traceurRuntime.superConstructor(L).call(this,s,I.validate);var M=function(a){K.append(function(b){return new a(H,s).transformAny(b)})};if(J.blockBinding&&this.append(function(a){return i(a,s),a}),I.freeVariableChecker&&this.append(function(a){return m(a,s),a}),J.exponentiation&&M(h),J.numericLiterals&&M(t),J.unicodeExpressions&&M(x),J.templateLiterals&&M(B),J.types&&M(E),J.unicodeEscapeSequences&&M(F),J.annotations&&M(b),I.memberVariables&&M(q),I.typeAssertions&&M(D),J.propertyNameShorthand&&M(v),J.modules)switch(J.modules){case"commonjs":M(g);break;case"amd":M(a);break;case"inline":M(p);break;case"instantiate":M(w);break;case"register":M(r);break;default:throw new Error("Invalid modules transform option")}J.arrowFunctions&&M(d),J.classes&&M(f),(J.propertyMethods||J.computedPropertyNames)&&M(u),J.generatorComprehension&&M(n),J.arrayComprehension&&M(c),J.forOf&&M(l),J.restParameters&&M(y),J.defaultParameters&&M(j),J.destructuring&&M(k),J.types&&M(C),J.spread&&M(z),J.blockBinding&&this.append(function(a){var b=new e(H,s,a);return b.transformAny(a)}),(J.generators||J.asyncFunctions)&&M(o),J.symbols&&M(A)},L=K;return $traceurRuntime.createClass(K,{},{},s),{get FromOptionsTransformer(){return K}}}),System.registerModule("traceur@0.0.79/src/codegeneration/PureES6Transformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/AnnotationsTransformer.js").AnnotationsTransformer,b=System.get("traceur@0.0.79/src/codegeneration/MemberVariableTransformer.js").MemberVariableTransformer,c=System.get("traceur@0.0.79/src/codegeneration/MultiTransformer.js").MultiTransformer,d=System.get("traceur@0.0.79/src/codegeneration/TypeAssertionTransformer.js").TypeAssertionTransformer,e=System.get("traceur@0.0.79/src/codegeneration/TypeTransformer.js").TypeTransformer,f=System.get("traceur@0.0.79/src/codegeneration/UniqueIdentifierGenerator.js").UniqueIdentifierGenerator,g=System.get("traceur@0.0.79/src/Options.js").options,h=System.get("traceur@0.0.79/src/semantics/FreeVariableChecker.js").validate,i=function(c){var i=void 0!==arguments[1]?arguments[1]:new f,k=this;$traceurRuntime.superConstructor(j).call(this,c,g.validate);var l=function(a){k.append(function(b){return new a(i,c).transformAny(b)})};g.freeVariableChecker&&this.append(function(a){return h(a,c),a}),g.memberVariables&&l(b),g.typeAssertions&&l(d),l(a),l(e)},j=i;return $traceurRuntime.createClass(i,{},{},c),{get PureES6Transformer(){return i}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/AttachModuleNameTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),c=b.Module,d=b.Script,e=function(a){this.moduleName_=a};return $traceurRuntime.createClass(e,{transformModule:function(a){return new c(a.location,a.scriptItemList,this.moduleName_)},transformScript:function(a){return new d(a.location,a.scriptItemList,this.moduleName_)}},{},a),{get AttachModuleNameTransformer(){return e}}}),System.registerModule("traceur@0.0.79/src/Compiler.js",[],function(){"use strict";function a(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];var c=Object.create(null);return a.forEach(function(a){Object.keys(a).forEach(function(b){c[b]=a[b]});var b=a.modules;"undefined"!=typeof b&&(c.modules=b)}),c}function b(a){if(!a)return null;var b=a.lastIndexOf("/");return 0>b?null:a.substring(0,b+1)}var c=System.get("traceur@0.0.79/src/codegeneration/module/AttachModuleNameTransformer.js").AttachModuleNameTransformer,d=System.get("traceur@0.0.79/src/codegeneration/FromOptionsTransformer.js").FromOptionsTransformer,e=System.get("traceur@0.0.79/src/syntax/Parser.js").Parser,f=System.get("traceur@0.0.79/src/codegeneration/PureES6Transformer.js").PureES6Transformer,g=System.get("traceur@0.0.79/src/syntax/SourceFile.js").SourceFile,h=System.get("traceur@0.0.79/src/util/CollectingErrorReporter.js").CollectingErrorReporter,i=System.get("traceur@0.0.79/src/Options.js"),j=i.Options,k=i.options,l=i.versionLockedOptions,m=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeMapWriter.js").ParseTreeMapWriter,n=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeWriter.js").ParseTreeWriter,o=System.get("traceur@0.0.79/src/outputgeneration/SourceMapIntegration.js").SourceMapGenerator,p=function(){var a=void 0!==arguments[0]?arguments[0]:{};this.options_=new j(this.defaultOptions()),this.options_.setFromObject(a),this.sourceMapGenerator_=null,this.sourceMapInfo_=null,this.inputFileExtension_=this.options_.atscript?/\.ats$/:/\.js$/},q=p;return $traceurRuntime.createClass(p,{compile:function(a){var b=void 0!==arguments[1]?arguments[1]:"<compileSource>",c=void 0!==arguments[2]?arguments[2]:"<compileOutput>",d=arguments[3];b=this.normalize(b),c=this.normalize(c);var e=this.parse(a,b),f=this.options_.moduleName;f&&"string"!=typeof f&&(f=b),e=this.transform(e,f);return this.write(e,c,d,b)},throwIfErrors:function(a){if(a.hadError())throw a.errors},parse:function(a){var b=void 0!==arguments[1]?arguments[1]:"<compiler-parse-input>";b=this.normalize(b),this.sourceMapGenerator_=null,k.setFromObject(this.options_);var c=new h,d=new g(b,a),f=new e(d,c),i=this.options_.script?f.parseScript():f.parseModule();return this.throwIfErrors(c),i},transform:function(a){var b,e=arguments[1];if(e){var b=new c(e);a=b.transformAny(a)}var g=new h;b="es6"===this.options_.outputLanguage.toLowerCase()?new f(g):new d(g);var i=b.transform(a);return this.throwIfErrors(g),i},createSourceMapGenerator_:function(a){var c=arguments[1];if(this.options_.sourceMaps){var c=c||b(a);return new o({file:a,sourceRoot:c})}},getSourceMap:function(){return this.sourceMapGenerator_?this.sourceMapGenerator_.toString():void 0},get sourceMapInfo(){return this.sourceMapInfo_},write:function(a){var b=arguments[1],c=arguments[2],d=arguments[3];b=this.normalize(b),c=this.normalize(c);var e;this.sourceMapGenerator_=this.createSourceMapGenerator_(b,c),e=this.sourceMapGenerator_?new m(this.sourceMapGenerator_,c,this.options_):new n(this.options_),e.visitAny(a);var f=e.toString();if(this.sourceMapGenerator_){var g=this.sourceMappingURL(b);f+="\n//# sourceMappingURL="+g+"\n",this.sourceMapInfo_={url:d,outputName:b,map:this.getSourceMap()}}return d&&(f+="//# sourceURL="+d),f},sourceName:function(a){return a},sourceMappingURL:function(a){return"inline"===this.options_.sourceMaps&&Reflect.global.btoa?"data:application/json;base64,"+btoa(unescape(encodeURIComponent(this.getSourceMap()))):a.split("/").pop().replace(this.inputFileExtension_,".map")},sourceNameFromTree:function(a){return a.location.start.source.name},defaultOptions:function(){return l},normalize:function(a){return a&&a.replace(/\\/g,"/")}},{script:function(a){var b=void 0!==arguments[1]?arguments[1]:{};return b=new j(b),b.script=!0,new q(b).compile(a)},module:function(a){var b=void 0!==arguments[1]?arguments[1]:{};return b=new j(b),b.modules="register",new q(b).compile(a)},amdOptions:function(){var b=void 0!==arguments[0]?arguments[0]:{},c={modules:"amd",sourceMaps:!1,moduleName:!1};return a(c,b)},commonJSOptions:function(){var b=void 0!==arguments[0]?arguments[0]:{},c={modules:"commonjs",sourceMaps:!1,moduleName:!1};return a(c,b)}}),{get Compiler(){return p}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/ValidationVisitor.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/module/ModuleVisitor.js").ModuleVisitor,b=function(){$traceurRuntime.superConstructor(c).apply(this,arguments)},c=b;return $traceurRuntime.createClass(b,{checkExport_:function(a,b){var c=this.validatingModuleDescription_;if(c&&!c.getExport(b)){var d=c.normalizedName;this.reportError(a,"'"+b+"' is not exported by '"+d+"'")}},checkImport_:function(a,b){var c=this.moduleSymbol.getImport(b);c?this.reportError(a,"'"+b+"' was previously imported at "+c.location.start):this.moduleSymbol.addImport(b,a)},visitAndValidate_:function(a,b){var c=this.validatingModuleDescription_;this.validatingModuleDescription_=a,this.visitAny(b),this.validatingModuleDescription_=c},visitNamedExport:function(a){if(a.moduleSpecifier){var b=a.moduleSpecifier.token.processedValue,c=this.getExportsListForModuleSpecifier(b);
this.visitAndValidate_(c,a.specifierSet)}},visitExportSpecifier:function(a){this.checkExport_(a,a.lhs.value)},visitImportDeclaration:function(a){var b=a.moduleSpecifier.token.processedValue,c=this.getExportsListForModuleSpecifier(b);this.visitAndValidate_(c,a.importClause)},visitImportSpecifier:function(a){var b=a.binding.getStringValue(),c=a.name?a.name.value:b;this.checkImport_(a,b),this.checkExport_(a,c)},visitImportedBinding:function(a){var b=a.binding.getStringValue();this.checkImport_(a,b),this.checkExport_(a,"default")}},{},a),{get ValidationVisitor(){return b}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/ExportListBuilder.js",[],function(){"use strict";function a(a,e,f){function g(b){for(var c=0;c<a.length;c++){var d=new b(f,e,a[c]);d.visitAny(a[c].tree)}}function h(b){for(var c=a.length-1;c>=0;c--){var d=new b(f,e,a[c]);d.visitAny(a[c].tree)}}d.modules&&(h(b),g(c))}var b=System.get("traceur@0.0.79/src/codegeneration/module/ExportVisitor.js").ExportVisitor,c=System.get("traceur@0.0.79/src/codegeneration/module/ValidationVisitor.js").ValidationVisitor,d=System.get("traceur@0.0.79/src/Options.js").transformOptions;return{get buildExportList(){return a}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/ModuleSpecifierVisitor.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/syntax/ParseTreeVisitor.js").ParseTreeVisitor,b=System.get("traceur@0.0.79/src/Options.js").options,c=function(){$traceurRuntime.superConstructor(d).call(this),this.moduleSpecifiers_=Object.create(null)},d=c;return $traceurRuntime.createClass(c,{get moduleSpecifiers(){return Object.keys(this.moduleSpecifiers_)},visitModuleSpecifier:function(a){this.moduleSpecifiers_[a.token.processedValue]=!0},visitVariableDeclaration:function(a){return this.addTypeAssertionDependency_(a.typeAnnotation),$traceurRuntime.superGet(this,d.prototype,"visitVariableDeclaration").call(this,a)},visitFormalParameter:function(a){return this.addTypeAssertionDependency_(a.typeAnnotation),$traceurRuntime.superGet(this,d.prototype,"visitFormalParameter").call(this,a)},visitGetAccessor:function(a){return this.addTypeAssertionDependency_(a.typeAnnotation),$traceurRuntime.superGet(this,d.prototype,"visitGetAccessor").call(this,a)},visitPropertyMethodAssignment:function(a){return this.addTypeAssertionDependency_(a.typeAnnotation),$traceurRuntime.superGet(this,d.prototype,"visitPropertyMethodAssignment").call(this,a)},visitFunctionDeclaration:function(a){return this.addTypeAssertionDependency_(a.typeAnnotation),$traceurRuntime.superGet(this,d.prototype,"visitFunctionDeclaration").call(this,a)},visitFunctionExpression:function(a){return this.addTypeAssertionDependency_(a.typeAnnotation),$traceurRuntime.superGet(this,d.prototype,"visitFunctionExpression").call(this,a)},addTypeAssertionDependency_:function(a){null!==a&&null!==b.typeAssertionModule&&(this.moduleSpecifiers_[b.typeAssertionModule]=!0)}},{},a),{get ModuleSpecifierVisitor(){return c}}}),System.registerModule("traceur@0.0.79/src/runtime/system-map.js",[],function(){"use strict";function a(a,b){var c=b.split("/"),d=a.split("/");if(c.length>d.length)return 0;for(var e=0;e<c.length;e++)if(d[e]!=c[e])return 0;return c.length}function b(b,c,d){var e,f,g=0,h=0;if(d){var i;Object.getOwnPropertyNames(b).some(function(j){var k=b[j];if(k&&"object"==typeof k){if(a(d,j)<=h)return;Object.getOwnPropertyNames(k).forEach(function(b){a(c,b)>g&&(e=b,g=b.split("/").length,f=j,h=j.split("/").length)})}if(e){var l=c.split("/").splice(g).join("/");return i=b[f][e]+(l?"/"+l:"")}})}if(i)return i;if(Object.getOwnPropertyNames(b).forEach(function(d){var f=b[d];f&&"string"==typeof f&&a(c,d)>g&&(e=d,g=d.split("/").length)}),!e)return c;var j=c.split("/").splice(g).join("/");return b[e]+(j?"/"+j:"")}var c={applyMap:b};return{get systemjs(){return c}}}),System.registerModule("traceur@0.0.79/src/util/url.js",[],function(){"use strict";var a=$traceurRuntime.canonicalizeUrl,b=$traceurRuntime.isAbsolute,c=$traceurRuntime.removeDotSegments,d=$traceurRuntime.resolveUrl;return{get canonicalizeUrl(){return a},get isAbsolute(){return b},get removeDotSegments(){return c},get resolveUrl(){return d}}}),System.registerModule("traceur@0.0.79/src/runtime/LoaderCompiler.js",[],function(){"use strict";var a=(System.get("traceur@0.0.79/src/codegeneration/module/AttachModuleNameTransformer.js").AttachModuleNameTransformer,System.get("traceur@0.0.79/src/codegeneration/FromOptionsTransformer.js").FromOptionsTransformer,System.get("traceur@0.0.79/src/codegeneration/module/ExportListBuilder.js").buildExportList),b=System.get("traceur@0.0.79/src/util/CollectingErrorReporter.js").CollectingErrorReporter,c=System.get("traceur@0.0.79/src/Compiler.js").Compiler,d=System.get("traceur@0.0.79/src/codegeneration/module/ModuleSpecifierVisitor.js").ModuleSpecifierVisitor,e=System.get("traceur@0.0.79/src/codegeneration/module/ModuleSymbol.js").ModuleSymbol,f=(System.get("traceur@0.0.79/src/syntax/Parser.js").Parser,System.get("traceur@0.0.79/src/Options.js").options,System.get("traceur@0.0.79/src/syntax/SourceFile.js").SourceFile,System.get("traceur@0.0.79/src/runtime/system-map.js").systemjs,System.get("traceur@0.0.79/src/outputgeneration/toSource.js").toSource,System.get("traceur@0.0.79/src/codegeneration/UniqueIdentifierGenerator.js").UniqueIdentifierGenerator),g=System.get("traceur@0.0.79/src/util/url.js"),h=(g.isAbsolute,g.resolveUrl,System.get("traceur@0.0.79/src/util/assert.js").assert),i=3,j=(new f,0),k=function(){};return $traceurRuntime.createClass(k,{getModuleSpecifiers:function(a){this.parse(a),a.state=i;var b=new d;return b.visit(a.metadata.tree),b.moduleSpecifiers},parse:function(a){h(!a.metadata.tree);var b=a.metadata,d=b.traceurOptions;"script"===a.type&&(d.script=!0),b.compiler=new c(d);var e=a.metadata.sourceName=a.address||a.normalizedName||String(++j);b.tree=b.compiler.parse(a.source,e)},transform:function(a){var b=a.metadata;b.transformedTree=b.compiler.transform(b.tree,a.normalizedName)},write:function(a){{var b=a.metadata,c=b.outputName||b.sourceName||"<loaderOutput>";b.sourceRoot}b.transcoded=b.compiler.write(b.transformedTree,c,void 0,a.address)},evaluateCodeUnit:function(a){var b=("global",eval)(a.metadata.transcoded);return a.metadata.transformedTree=null,b},analyzeDependencies:function(b,c){for(var d=[],f=0;f<b.length;f++){var g=b[f];if(h(g.state>=i),g.state==i){var j=g.metadata.moduleSymbol=new e(g.metadata.tree,g.normalizedName);d.push(j)}}this.checkForErrors(function(b){return a(d,c,b)})},checkForErrors:function(a){var c=new b,d=a(c);if(c.hadError())throw c.toError();return d}},{}),{get LoaderCompiler(){return k}}}),System.registerModule("traceur@0.0.79/src/runtime/InternalLoader.js",[],function(){"use strict";function a(a){var b=[];return a.forEach(function(a){b.push(a)}),b}var b=System.get("traceur@0.0.79/src/util/assert.js").assert,c=System.get("traceur@0.0.79/src/runtime/LoaderCompiler.js").LoaderCompiler,d=System.get("traceur@0.0.79/src/codegeneration/module/ModuleSymbol.js").ExportsList,e=System.get("traceur@0.0.79/src/runtime/polyfills/Map.js").Map,f=System.get("traceur@0.0.79/src/util/url.js"),g=f.isAbsolute,h=(f.resolveUrl,System.get("traceur@0.0.79/src/Options.js").Options),i=0,j=1,k=2,l=3,m=4,n=5,o=6,p=7,q=function(a,b){this.message=a,this.tree=b,this.name="LoaderError"};$traceurRuntime.createClass(q,{},{},Error);var r=function(a,b,c,d,e,f,g){var h=this;this.promise=new Promise(function(j,k){h.loaderCompiler=a,h.normalizedName=b,h.type=c,h.name_=e,h.referrerName_=f,h.address=g,h.state_=d||i,h.error=null,h.result=null,h.metadata_={},h.dependencies=[],h.resolve=j,h.reject=k})};$traceurRuntime.createClass(r,{get state(){return this.state_},set state(a){if(a<this.state_)throw new Error("Invalid state change");this.state_=a},get metadata(){return this.metadata_},set metadata(a){b(a),this.metadata_=a},nameTrace:function(){var a=this.specifiedAs();return g(this.name_)?a+"An absolute name.\n":this.referrerName_?a+this.importedBy()+this.normalizesTo():a+this.normalizesTo()},specifiedAs:function(){return"Specified as "+this.name_+".\n"},importedBy:function(){return"Imported by "+this.referrerName_+".\n"},normalizesTo:function(){return"Normalizes to "+this.normalizedName+"\n"}},{});var s=function(a,b,c,d,e,f){$traceurRuntime.superConstructor(t).call(this,a,b,"module",o,c,d,e),this.result=f,this.resolve(this.result)},t=s;$traceurRuntime.createClass(s,{},{},r);var u=function(a,b,c,d,e,f,g){$traceurRuntime.superConstructor(v).call(this,a,b,"module",n,c,d,e),this.deps=f,this.execute=g},v=u;$traceurRuntime.createClass(u,{getModuleSpecifiers:function(){return this.deps},evaluate:function(){var a=this,b=this.deps.map(function(b){return a.loader_.normalize(b)}),c=this.execute.apply(Reflect.global,b);return System.set(this.normalizedName,c),c}},{},r);var w=function(){$traceurRuntime.superConstructor(x).apply(this,arguments)},x=w;$traceurRuntime.createClass(w,{getModuleSpecifiers:function(){return this.loaderCompiler.getModuleSpecifiers(this)},evaluate:function(){return this.loaderCompiler.evaluateCodeUnit(this)}},{},r);var y=function(a,b,c,d,e){$traceurRuntime.superConstructor(z).call(this,a,b,"module",i,c,d,e)},z=y;$traceurRuntime.createClass(y,{},{},w);var A=function(a,b){var c=void 0!==arguments[2]?arguments[2]:"script",d=arguments[3],e=arguments[4],f=arguments[5];$traceurRuntime.superConstructor(B).call(this,a,d,c,k,null,e,f),this.source=b},B=A;$traceurRuntime.createClass(A,{},{},w);var C=function(a,c){b(c),this.loader_=a,this.loaderCompiler=c,this.cache=new e,this.urlToKey=Object.create(null),this.sync_=!1,this.sourceMapsByURL_=Object.create(null),this.sourceMapsByOutputName_=Object.create(null)};$traceurRuntime.createClass(C,{defaultMetadata_:function(){var a=void 0!==arguments[0]?arguments[0]:{};return a.traceurOptions=a.traceurOptions||new h,a},defaultModuleMetadata_:function(){var a=void 0!==arguments[0]?arguments[0]:{},a=this.defaultMetadata_(a);return a.traceurOptions.script=!1,a},getSourceMap:function(a){return this.sourceMapsByURL_[a]||this.sourceMapsByOutputName_[a]},load:function(a){var b=void 0!==arguments[1]?arguments[1]:this.loader_.baseURL,c=arguments[2],d=void 0!==arguments[3]?arguments[3]:{};d=this.defaultMetadata_(d);var e=this.getOrCreateCodeUnit_(a,b,c,d);return this.load_(e),e.promise.then(function(){return e})},load_:function(a){var b=this;if(a.state===p)return a;if(a.state===n)this.handleCodeUnitLoaded(a);else{if(a.state!==i)return a;a.state=j,a.address=this.loader_.locate(a),this.loader_.fetch(a).then(function(b){return a.source=b,a}).then(function(a){return b.loader_.translate(a)}).then(function(c){return a.source=c,a.state=k,b.handleCodeUnitLoaded(a),a}).catch(function(c){try{a.state=p,a.error=c,b.handleCodeUnitLoadError(a)}catch(d){console.error("Internal Error "+(d.stack||d))}})}return a},module:function(a,b,c,d){var e=new A(this.loaderCompiler,a,"module",null,b,c);return e.metadata=this.defaultMetadata_(d),this.cache.set({},e),this.handleCodeUnitLoaded(e),e.promise},define:function(a,b,c,d){var e=new A(this.loaderCompiler,b,"module",a,null,c),f=this.getKey(a,"module");return e.metadata=this.defaultMetadata_(d),this.cache.set(f,e),this.handleCodeUnitLoaded(e),e.promise},script:function(a,b,c,d,e){var f=System.normalize(b||"",c,d),g=new A(this.loaderCompiler,a,"script",f,c,d),h={};return b&&(h=this.getKey(f,"script")),g.metadata=this.defaultMetadata_(e),this.cache.set(h,g),this.handleCodeUnitLoaded(g),g.promise},getKey:function(a,b){var c=b+":"+a;return c in this.urlToKey?this.urlToKey[c]:this.urlToKey[c]={}},getCodeUnit_:function(a,b){var c=this.getKey(a,b),d=this.cache.get(c);return{key:c,codeUnit:d}},getOrCreateCodeUnit_:function(a,c,d,e){var f=System.normalize(a,c,d),g="module";e&&e.traceurOptions&&e.traceurOptions.script&&(g="script");var h=this.getCodeUnit_(f,g),i=h.key,j=h.codeUnit;if(!j){b(e&&e.traceurOptions);var k=this.loader_.get(f);if(k)j=new s(this.loaderCompiler,f,a,c,d,k),j.type="module";else{var l=this.loader_.bundledModule(a);l?j=new u(this.loaderCompiler,f,a,c,d,l.deps,l.execute):(j=new y(this.loaderCompiler,f,a,c,d),j.type=g)}j.metadata={traceurOptions:e.traceurOptions,outputName:e.outputName},this.cache.set(i,j)}return j},areAll:function(b){return a(this.cache).every(function(a){return a.state>=b})},getCodeUnitForModuleSpecifier:function(a,b){var c=this.loader_.normalize(a,b);return this.getCodeUnit_(c,"module").codeUnit},getExportsListForModuleSpecifier:function(a,b){var c=this.getCodeUnitForModuleSpecifier(a,b),e=c.metadata.moduleSymbol;if(!e){if(!c.result)throw new Error("InternalError: "+a+" is not a module, required by "+b);e=new d(c.normalizedName),e.addExportsFromModule(c.result)}return e},handleCodeUnitLoaded:function(a){var b=this,c=a.normalizedName;try{var d=a.getModuleSpecifiers();if(!d)return void this.abortAll("No module specifiers in "+c);a.dependencies=d.sort().map(function(d){return b.getOrCreateCodeUnit_(d,c,null,b.defaultModuleMetadata_(a.metadata))})}catch(e){return void this.rejectOneAndAll(a,e)}if(a.dependencies.forEach(function(a){b.load_(a)}),this.areAll(l))try{this.analyze(),this.transform(),this.evaluate()}catch(e){this.rejectOneAndAll(a,e)}},rejectOneAndAll:function(a,b){a.state.ERROR,a.error=b,a.reject(b),this.abortAll(b)},handleCodeUnitLoadError:function(a){var b=a.error?String(a.error)+"\n":"Failed to load '"+a.address+"'.\n";b+=a.nameTrace()+this.loader_.nameTrace(a),this.rejectOneAndAll(a,new Error(b))},abortAll:function(a){this.cache.forEach(function(b){b.state!==p&&b.reject(a)})},analyze:function(){this.loaderCompiler.analyzeDependencies(a(this.cache),this)},transform:function(){this.transformDependencies_(a(this.cache))},transformDependencies_:function(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(!(d.state>=n)){if(d.state===m){var e=d.normalizedName,f=b;return void this.rejectOneAndAll(d,new Error("Unsupported circular dependency between "+e+" and "+f))}d.state=m;try{this.transformCodeUnit_(d)}catch(g){return void this.rejectOneAndAll(d,g)}}}},transformCodeUnit_:function(a){if(this.transformDependencies_(a.dependencies,a.normalizedName),a.state!==p){this.loaderCompiler.transform(a),a.state=n,this.loaderCompiler.write(a);var b=a.metadata.compiler.sourceMapInfo;b&&(this.sourceMapsByURL_[b.url]=b.map,this.sourceMapsByOutputName_[b.outputName]=b.map),this.loader_.instantiate(a)}},orderDependencies:function(){function a(d){b.has(d)||(b.set(d,!0),d.dependencies.forEach(a),c.push(d))}var b=new e,c=[];return this.cache.forEach(a),c},evaluate:function(){for(var a=this.orderDependencies(),b=0;b<a.length;b++){var c=a[b];if(!(c.state>=o)){var d;try{d=c.evaluate()}catch(e){return void this.rejectOneAndAll(c,e)}c.result=d,c.source=null}}for(var b=0;b<a.length;b++){var c=a[b];c.state>=o||(c.state=o,c.resolve(c.result))}}},{});var D={CodeUnit:r,EvalCodeUnit:A,LoadCodeUnit:y,LoaderCompiler:c};return{get InternalLoader(){return C},get internals(){return D}}}),System.registerModule("traceur@0.0.79/src/runtime/Loader.js",[],function(){"use strict";function a(){throw new Error("Unimplemented Loader function, see extended class")}var b=System.get("traceur@0.0.79/src/runtime/InternalLoader.js").InternalLoader,c=function(a){this.internalLoader_=new b(this,a),this.loaderCompiler_=a};return $traceurRuntime.createClass(c,{"import":function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata,f=this;return this.internalLoader_.load(a,c,d,e).then(function(a){return f.get(a.normalizedName)})},module:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata;return this.internalLoader_.module(a,c,d,e)},define:function(a,b){var c=void 0!==arguments[2]?arguments[2]:{},d=c.address,e=c.metadata,e=c.metadata;return this.internalLoader_.define(a,b,d,e)},get:function(){a()},set:function(){a()},normalize:function(){a()},locate:function(){a()},fetch:function(){a()},translate:function(){a()},instantiate:function(){a()}},{}),{get Loader(){return c},get LoaderCompiler(){return LoaderCompiler}}}),System.registerModule("traceur@0.0.79/src/runtime/TraceurLoader.js",[],function(){"use strict";var a="traceur@0.0.79/src/runtime/TraceurLoader.js",b=System.get("traceur@0.0.79/src/util/url.js"),c=b.isAbsolute,d=b.resolveUrl,e=System.get("traceur@0.0.79/src/runtime/Loader.js").Loader,f=System.get("traceur@0.0.79/src/runtime/LoaderCompiler.js").LoaderCompiler,g=System.get("traceur@0.0.79/src/runtime/system-map.js").systemjs,h=a.slice(0,a.indexOf("/")),i=0,j=function(a,b){var c=void 0!==arguments[2]?arguments[2]:new f;$traceurRuntime.superConstructor(k).call(this,c),this.fileLoader_=a,this.baseURL_=b&&String(b),this.moduleStore_=$traceurRuntime.ModuleStore},k=j;return $traceurRuntime.createClass(j,{get baseURL(){return this.baseURL_},set baseURL(a){this.baseURL_=String(a)},get:function(a){return this.moduleStore_.get(a)},set:function(a,b){this.moduleStore_.set(a,b)},normalize:function(a,b,c){var d=this.moduleStore_.normalize(a,b,c);return"undefined"!=typeof g&&System.map?g.applyMap(System.map,d,b):d},locate:function(a){var b=a.normalizedName;a.metadata.traceurOptions=a.metadata.traceurOptions||{};var e,f=a.metadata.traceurOptions;e=/\.js$/.test(b)||f&&f.script?b:b+".js";var g=a.metadata&&a.metadata.baseURL;g=g||this.baseURL;var h=f&&f.referrer;if(h){for(var i=Math.min(h.length,g.length),j=0,k=0;i>k;k++){var l=h[h.length-1-k];if(l!==g[g.length-1-k])break;j++}if(j){var m=h.slice(0,-j),n=g.slice(0,-j);0===e.indexOf(m)&&(e=e.replace(m,n))}}return c(e)||g&&(a.metadata.baseURL=g,e=d(g,e)),e},sourceName:function(a){var b=a.metadata.traceurOptions,c=a.address;if(b.sourceMaps){var d=this.baseURL;c?d&&0===c.indexOf(d)&&(c=c.substring(d.length)):c=this.baseURL+String(i++)}return a.metadata.sourceRoot=this.baseURL,c},nameTrace:function(a){var b="";a.metadata.locateMap&&(b+=this.locateMapTrace(a));var c=a.metadata.baseURL||this.baseURL;return b+=c?this.baseURLTrace(c):"No baseURL\n"},locateMapTrace:function(a){var b=a.metadata.locateMap;return"locate found '"+b.pattern+"' -> '"+b.replacement+"'\n"},baseURLTrace:function(a){return"locate resolved against base '"+a+"'\n"},fetch:function(a){var b=this;return new Promise(function(c,d){a?a.address&&"string"==typeof a.address?b.fileLoader_.load(a.address,c,d):d(new TypeError("fetch({address}) missing required string.")):d(new TypeError("fetch requires argument object"))})},translate:function(a){return a.source},instantiate:function(a){{var b=a;b.name,b.metadata,b.address,b.source,b.sourceMap}return new Promise(function(a){a(void 0)})},bundledModule:function(a){return this.moduleStore_.bundleStore[a]},importAll:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata,f=this;return Promise.all(a.map(function(a){return f.import(a,{referrerName:c,address:d,metadata:e})}))},loadAsScript:function(a){var b,c=void 0!==arguments[1]?arguments[1]:{},d=c.referrerName,e=c.address,f=void 0===(b=c.metadata)?{}:b;return f.traceurOptions=f.traceurOptions||{},f.traceurOptions.script=!0,this.internalLoader_.load(a,d,e,f).then(function(a){return a.result})},loadAsScriptAll:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.referrerName,d=b.address,e=b.metadata,f=this;return Promise.all(a.map(function(a){return f.loadAsScript(a,{referrerName:c,address:d,metadata:e})}))},script:function(a){var b=void 0!==arguments[1]?arguments[1]:{},c=b.name,d=b.referrerName,e=b.address,f=b.metadata;return this.internalLoader_.script(a,c,d,e,f)},semVerRegExp_:function(){return/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/},semverMap:function(a){var b=a.indexOf("/"),c=a.slice(0,b),d=c.indexOf("@");if(-1!==d){var e=c.slice(d+1),f=this.semVerRegExp_().exec(e);if(f){var g=f[1],h=f[2],i=c.slice(0,d),j=Object.create(null);j[i]=c,j[i+"@"+g]=c,j[i+"@"+g+"."+h]=c}}return j},get version(){return h},getSourceMap:function(a){return this.internalLoader_.getSourceMap(a)},register:function(a,b,c){$traceurRuntime.ModuleStore.register(a,b,c)},registerModule:function(a,b,c){$traceurRuntime.ModuleStore.registerModule(a,b,c)}},{},e),{get TraceurLoader(){return j}}}),System.registerModule("traceur@0.0.79/src/runtime/webLoader.js",[],function(){"use strict";var a={load:function(a,b,c){var d=new XMLHttpRequest;return d.onload=function(){if(200==d.status||0==d.status)b(d.responseText);else{var e;e=404===d.status?"File not found '"+a+"'":d.status+d.statusText,c(e)}d=null},d.onerror=function(a){c(a)},d.open("GET",a,!0),d.send(),function(){d&&d.abort()}}};return{get webLoader(){return a}}}),System.registerModule("traceur@0.0.79/src/WebPageTranscoder.js",[],function(){"use strict";var a=(System.get("traceur@0.0.79/src/runtime/Loader.js").Loader,System.get("traceur@0.0.79/src/runtime/TraceurLoader.js").TraceurLoader),b=System.get("traceur@0.0.79/src/util/ErrorReporter.js").ErrorReporter,c=System.get("traceur@0.0.79/src/runtime/webLoader.js").webLoader,d=function(a){this.url=a,this.numPending_=0,this.numberInlined_=0};return $traceurRuntime.createClass(d,{asyncLoad_:function(a,b,d){var e=this;this.numPending_++,c.load(a,function(c){c?b(c):console.warn("Failed to load",a),--e.numPending_<=0&&d()},function(b){console.error("WebPageTranscoder FAILED to load "+a,b.stack||b)})},addFileFromScriptElement:function(a,b,c){var d,e=traceur.options,f={address:b,referrerName:window.location.href,name:b,metadata:{traceurOptions:e}};d="module"===a.type?this.loader.module(c,f):this.loader.script(c,f),d.catch(function(a){console.error(a.stack||a)})},nextInlineScriptName_:function(){if(this.numberInlined_+=1,!this.inlineScriptNameBase_){var a=this.url.split(".");a.pop(),this.inlineScriptNameBase_=a.join(".")}return this.inlineScriptNameBase_+"_"+this.numberInlined_+".js"},addFilesFromScriptElements:function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(e.src){var f=e.src;this.asyncLoad_(f,this.addFileFromScriptElement.bind(this,e,f),b)}else{var f=this.nextInlineScriptName_(),g=e.textContent;this.addFileFromScriptElement(e,f,g)}}this.numPending_<=0&&b()},get reporter(){return this.reporter_||(this.reporter_=new b),this.reporter_},get loader(){return this.loader_||(this.loader_=new a(c,this.url)),this.loader_},putFile:function(a){var b=document.createElement("script");b.setAttribute("data-traceur-src-url",a.name),b.textContent=a.generatedSource;var c=a.scriptElement.parentNode;c.insertBefore(b,a.scriptElement||null)},selectAndProcessScripts:function(a){var b='script[type="module"],script[type="text/traceur"]',c=document.querySelectorAll(b);return c.length?void this.addFilesFromScriptElements(c,function(){a()}):void a()},run:function(){var a=void 0!==arguments[0]?arguments[0]:function(){},b=this,c=document.readyState;"complete"===c||"loaded"===c?this.selectAndProcessScripts(a):document.addEventListener("DOMContentLoaded",function(){return b.selectAndProcessScripts(a)},!1)}},{}),{get WebPageTranscoder(){return d}}}),System.registerModule("traceur@0.0.79/src/codegeneration/CloneTreeTransformer.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/codegeneration/ParseTreeTransformer.js").ParseTreeTransformer,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js"),c=b.BindingIdentifier,d=b.BreakStatement,e=b.ContinueStatement,f=b.DebuggerStatement,g=b.EmptyStatement,h=b.ExportSpecifier,i=b.ExportStar,j=b.IdentifierExpression,k=b.LiteralExpression,l=b.ModuleSpecifier,m=b.PredefinedType,n=b.PropertyNameShorthand,o=b.TemplateLiteralPortion,p=b.SuperExpression,q=b.ThisExpression,r=function(){$traceurRuntime.superConstructor(s).apply(this,arguments)},s=r;return $traceurRuntime.createClass(r,{transformBindingIdentifier:function(a){return new c(a.location,a.identifierToken)},transformBreakStatement:function(a){return new d(a.location,a.name)},transformContinueStatement:function(a){return new e(a.location,a.name)},transformDebuggerStatement:function(a){return new f(a.location)},transformEmptyStatement:function(a){return new g(a.location)},transformExportSpecifier:function(a){return new h(a.location,a.lhs,a.rhs)},transformExportStar:function(a){return new i(a.location)},transformIdentifierExpression:function(a){return new j(a.location,a.identifierToken)},transformList:function(a){return a?0==a.length?[]:$traceurRuntime.superGet(this,s.prototype,"transformList").call(this,a):null},transformLiteralExpression:function(a){return new k(a.location,a.literalToken)},transformModuleSpecifier:function(a){return new l(a.location,a.token)},transformPredefinedType:function(a){return new m(a.location,a.typeToken)},transformPropertyNameShorthand:function(a){return new n(a.location,a.name)},transformTemplateLiteralPortion:function(a){return new o(a.location,a.value)},transformSuperExpression:function(a){return new p(a.location)},transformThisExpression:function(a){return new q(a.location)}},{},a),r.cloneTree=function(a){return(new r).transformAny(a)},{get CloneTreeTransformer(){return r}}}),System.registerModule("traceur@0.0.79/src/codegeneration/module/createModuleEvaluationStatement.js",[],function(){"use strict";function a(a){return c(b,a)}var b=Object.freeze(Object.defineProperties(["System.get("," +'')"],{raw:{value:Object.freeze(["System.get("," +'')"])}})),c=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js").parseStatement;return{get createModuleEvaluationStatement(){return a}}}),System.registerModule("traceur@0.0.79/src/runtime/InlineLoaderCompiler.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/runtime/LoaderCompiler.js").LoaderCompiler,b=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").Script,c=function(a){$traceurRuntime.superConstructor(d).call(this),this.elements=a},d=c;return $traceurRuntime.createClass(c,{evaluateCodeUnit:function(a){var b,c=a.metadata.transformedTree;(b=this.elements).push.apply(b,$traceurRuntime.spread(c.scriptItemList))},toTree:function(){return new b(null,this.elements)}},{},a),{get InlineLoaderCompiler(){return c}}}),System.registerModule("traceur@0.0.79/src/runtime/System.js",[],function(){"use strict";var a,b,c="traceur@0.0.79/src/runtime/System.js",d=(System.get("traceur@0.0.79/src/util/ErrorReporter.js").ErrorReporter,System.get("traceur@0.0.79/src/runtime/TraceurLoader.js").TraceurLoader),e=(System.get("traceur@0.0.79/src/runtime/LoaderCompiler.js").LoaderCompiler,System.get("traceur@0.0.79/src/runtime/webLoader.js").webLoader);"undefined"!=typeof window&&window.location&&(a=window.location.href,b=e);var f=new d(b,a);return Reflect.global.System=f,f.map=f.semverMap(c),{get System(){return f}}}),System.registerModule("traceur@0.0.79/src/util/MutedErrorReporter.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/util/ErrorReporter.js").ErrorReporter,b=function(){$traceurRuntime.superConstructor(c).apply(this,arguments)},c=b;return $traceurRuntime.createClass(b,{reportMessageInternal:function(){}},{},a),{get MutedErrorReporter(){return b}}}),System.registerModule("traceur@0.0.79/src/traceur.js",[],function(){"use strict";function a(a){return k.get(k.normalize("./"+a,b))}var b="traceur@0.0.79/src/traceur.js",c=System.get("traceur@0.0.79/src/runtime/System.js");System.get("traceur@0.0.79/src/util/MutedErrorReporter.js");var d=System.get("@traceur/src/runtime/ModuleStore"),e=System.get("traceur@0.0.79/src/WebPageTranscoder.js"),f=System.get("traceur@0.0.79/src/Options.js"),g=System.get("traceur@0.0.79/src/Options.js"),h=g.addOptions,i=g.CommandOptions,j=g.Options,k=System.get("@traceur/src/runtime/ModuleStore").ModuleStore,l=System.get("traceur@0.0.79/src/Compiler.js"),m=System.get("traceur@0.0.79/src/util/ErrorReporter.js").ErrorReporter,n=System.get("traceur@0.0.79/src/util/CollectingErrorReporter.js").CollectingErrorReporter,o={addOptions:h,CommandOptions:i,CollectingErrorReporter:n,ErrorReporter:m,Options:j},p=System.get("traceur@0.0.79/src/syntax/Parser.js").Parser,q=System.get("traceur@0.0.79/src/syntax/Scanner.js").Scanner,r=System.get("traceur@0.0.79/src/syntax/trees/ParseTrees.js").Script,s=System.get("traceur@0.0.79/src/syntax/SourceFile.js").SourceFile,t={Parser:p,Scanner:q,SourceFile:s,trees:{Script:r}},u=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeMapWriter.js").ParseTreeMapWriter,v=System.get("traceur@0.0.79/src/outputgeneration/ParseTreeWriter.js").ParseTreeWriter,w=System.get("traceur@0.0.79/src/outputgeneration/regexpuRewritePattern.js").regexpuRewritePattern,x=System.get("traceur@0.0.79/src/outputgeneration/SourceMapIntegration.js").SourceMapConsumer,y=System.get("traceur@0.0.79/src/outputgeneration/SourceMapIntegration.js").SourceMapGenerator,z=System.get("traceur@0.0.79/src/outputgeneration/TreeWriter.js").TreeWriter,A={ParseTreeMapWriter:u,ParseTreeWriter:v,regexpuRewritePattern:w,SourceMapConsumer:x,SourceMapGenerator:y,TreeWriter:z},B=System.get("traceur@0.0.79/src/codegeneration/module/AttachModuleNameTransformer.js").AttachModuleNameTransformer,C=System.get("traceur@0.0.79/src/codegeneration/CloneTreeTransformer.js").CloneTreeTransformer,D=System.get("traceur@0.0.79/src/codegeneration/FromOptionsTransformer.js").FromOptionsTransformer,E=System.get("traceur@0.0.79/src/codegeneration/PureES6Transformer.js").PureES6Transformer,F=System.get("traceur@0.0.79/src/codegeneration/module/createModuleEvaluationStatement.js").createModuleEvaluationStatement,G=System.get("traceur@0.0.79/src/codegeneration/PlaceholderParser.js"),H=G.parseExpression,I=G.parseModule,J=G.parseScript,K=G.parseStatement,L={CloneTreeTransformer:C,FromOptionsTransformer:D,PureES6Transformer:E,parseExpression:H,parseModule:I,parseScript:J,parseStatement:K,module:{AttachModuleNameTransformer:B,createModuleEvaluationStatement:F}},M=System.get("traceur@0.0.79/src/runtime/Loader.js").Loader,N=System.get("traceur@0.0.79/src/runtime/LoaderCompiler.js").LoaderCompiler,O=System.get("traceur@0.0.79/src/runtime/InlineLoaderCompiler.js").InlineLoaderCompiler,P=System.get("traceur@0.0.79/src/runtime/TraceurLoader.js").TraceurLoader,Q={InlineLoaderCompiler:O,Loader:M,LoaderCompiler:N,TraceurLoader:P};return{get System(){return c.System},get ModuleStore(){return d.ModuleStore},get WebPageTranscoder(){return e.WebPageTranscoder},get options(){return f.options},get get(){return a},get Compiler(){return l.Compiler},get util(){return o},get syntax(){return t},get outputgeneration(){return A},get codegeneration(){return L},get runtime(){return Q}}}),System.registerModule("traceur@0.0.79/src/traceur-import.js",[],function(){"use strict";var a=System.get("traceur@0.0.79/src/traceur.js");return Reflect.global.traceur=a,$traceurRuntime.ModuleStore.set("traceur@",a),{}}),System.get("traceur@0.0.79/src/traceur-import.js");
//# sourceMappingURL=traceur.js.map