!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;c3?("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;g0;)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;ed&&(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;ca;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=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(;++eg||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;bf;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;bc;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 ","Bracket output code with System.referrerName=",function(a){return b.setOption("referrer",a),System.map=System.semverMap(a),a}),a.option("--type-assertion-module ","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 ","__moduleName value, + sign to use source name, or empty to omit",function(a){"+"===a&&(a=!0),b.moduleName=a}),a.option("--outputLanguage ","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;b0},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=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;ea)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;ce;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;b1||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;c1?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;ba)return 0;var b;if(a=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=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;c2?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;j0)&&(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_&&b0},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;g0},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=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;i0&&(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;c0&&(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;c0&&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;f1&&(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&&aa?(-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,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<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(!(i0&&(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]:"",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]:"",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;b0,a,"expected at least one identifier");for(var b=0;b=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;ce;){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;gc)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;++kj;){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="";++eh||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=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-9A-Z_a-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;dg;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;bb?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]:"",c=void 0!==arguments[2]?arguments[2]:"",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]:"";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=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;eg&&(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||"";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=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=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=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=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=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