diff --git a/config.js b/config.js new file mode 100644 index 0000000..fa826d2 --- /dev/null +++ b/config.js @@ -0,0 +1,35 @@ +System.config({ + "baseURL": "/", + "transpiler": "babel", + "babelOptions": { + "optional": [ + "runtime" + ] + }, + "paths": { + "*": "*.js", + "github:*": "jspm_packages/github/*.js", + "npm:*": "jspm_packages/npm/*.js" + } +}); + +System.config({ + "map": { + "babel": "npm:babel-core@5.6.20", + "babel-runtime": "npm:babel-runtime@5.6.20", + "core-js": "npm:core-js@0.9.18", + "jquery": "github:components/jquery@2.1.4", + "github:jspm/nodelibs-process@0.1.1": { + "process": "npm:process@0.10.1" + }, + "npm:babel-runtime@5.6.20": { + "process": "github:jspm/nodelibs-process@0.1.1" + }, + "npm:core-js@0.9.18": { + "fs": "github:jspm/nodelibs-fs@0.1.2", + "process": "github:jspm/nodelibs-process@0.1.1", + "systemjs-json": "github:systemjs/plugin-json@0.1.0" + } + } +}); + diff --git a/example/app.js b/example/app.js new file mode 100644 index 0000000..a2f391e --- /dev/null +++ b/example/app.js @@ -0,0 +1,83 @@ +import $ from 'jquery'; +import Doodle3DAPI from '../src/doodle3dapi'; +import rest from '../src/restapi'; + +var api = "http://connect.doodle3d.com/api/"; + +function addBox (boxData) { + + var row = document.createElement('tr'); + row.style.color = "gray"; + + var id = document.createElement('td'); + var localIP = document.createElement('td'); + var bed = document.createElement('td'); + var bedTarget = document.createElement('td'); + var bufferedLines = document.createElement('td'); + var currentLine = document.createElement('td'); + var hasControl = document.createElement('td'); + var hotend = document.createElement('td'); + var hotendTarget = document.createElement('td'); + var state = document.createElement('td'); + var totalLines = document.createElement('td'); + + row.appendChild(id); + row.appendChild(localIP); + row.appendChild(bed); + row.appendChild(bedTarget); + row.appendChild(bufferedLines); + row.appendChild(currentLine); + row.appendChild(hasControl); + row.appendChild(hotend); + row.appendChild(hotendTarget); + row.appendChild(state); + row.appendChild(totalLines); + + id.innerHTML = boxData.wifiboxid; + localIP.innerHTML = boxData.localip; + + document.getElementById("table").appendChild(row); + + var doodle3DAPI = new Doodle3DAPI(boxData.localip); + doodle3DAPI.onconnect = function () { + row.style.color = "black"; + }; + doodle3DAPI.ondisconnect = function () { + row.style.color = "gray"; + }; + doodle3DAPI.onupdate = function (data) { + state.innerHTML = data.state; + if (data.state === "idle") { + bed.innerHTML = data.bed; + bedTarget.innerHTML = data.bed_target; + bufferedLines.innerHTML = data.buffered_lines; + currentLine.innerHTML = data.current_line; + hasControl.innerHTML = data.has_control; + hotend.innerHTML = data.hotend; + hotendTarget.innerHTML = data.hotend_target; + state.innerHTML = data.state; + totalLines.innerHTML = data.total_lines; + } + else { + } + }; + doodle3DAPI.startUpdateLoop(); +} + +rest.get(api + "list.php", function (error, boxes) { + if (error) { + return; + console.warn(error); + } + + for (var i = 0; i < boxes.length; i ++) { + var box = boxes[i]; + + addBox(box); + } +}); + +addBox({ + localip: "192.168.5.1", + wifiboxid: "Wired Printer" +}); \ No newline at end of file diff --git a/example/index.html b/example/index.html new file mode 100644 index 0000000..8357144 --- /dev/null +++ b/example/index.html @@ -0,0 +1,45 @@ + + + + +Doodle3D Box + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDLocal IPBedBed TargetBuffered LinesCurrent LineHas ControlHotendHotend TargetStateTotal Lines
+ + + + \ No newline at end of file diff --git a/jspm_packages/.loaderversions b/jspm_packages/.loaderversions new file mode 100644 index 0000000..c97788d --- /dev/null +++ b/jspm_packages/.loaderversions @@ -0,0 +1 @@ +^0.16.5,^0.16.9 \ No newline at end of file diff --git a/jspm_packages/es6-module-loader.js b/jspm_packages/es6-module-loader.js new file mode 100644 index 0000000..667a308 --- /dev/null +++ b/jspm_packages/es6-module-loader.js @@ -0,0 +1,8 @@ +/* + * es6-module-loader v0.16.6 + * https://github.com/ModuleLoader/es6-module-loader + * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT + */ + +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(d){return"loading"==b.status?A.resolve(a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:d})).then(function(c){return b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})}).then(function(c){if(void 0===c)return b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.transpile(b).then(function(a){var c=__global.System,d=c.register;c.register=function(a,c,d){"string"!=typeof a&&(d=c,c=a),b.declare=d,b.depsList=c},__eval(a,__global,b),c.register=d});if("object"!=typeof c)throw TypeError("Invalid instantiate return value");b.depsList=c.deps||[],b.execute=c.execute,b.isDeclarative=!1}).then(function(){b.dependencies=[];for(var d=b.depsList,e=[],f=0,g=d.length;g>f;f++)(function(d,f){e.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[f]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,g=c.length;g>e;e++)i(c[e],a)}))})(d[f],f);return A.all(e)}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)}):void 0})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;b&&a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),b&&(c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n"));for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b,c=new y;if(Object.getOwnPropertyNames&&null!=a)b=Object.getOwnPropertyNames(a);else{b=[];for(var d in a)b.push(d)}for(var e=0;e2)throw new TypeError("Only one wildcard in a path is permitted");if(1==h.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,h[0].length)==h[0]&&d.substr(d.length-h[1].length)==h[1]&&(e=f,b=d.substr(h[0].length,d.length-h[1].length-h[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),g&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new i(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),l=new k;if("object"==typeof exports&&(module.exports=l),__global.System=l,g&&document.getElementsByTagName){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof global?global:self); +//# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/jspm_packages/es6-module-loader.js.map b/jspm_packages/es6-module-loader.js.map new file mode 100644 index 0000000..f157808 --- /dev/null +++ b/jspm_packages/es6-module-loader.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","__load","eval","name","replace","message","load","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","transpiled","curSystem","System","curRegister","register","deps","declare","depsList","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","pNames","getOwnPropertyNames","configurable","enumerable","set","Reflect","LoaderPolyfill","getTranspilerModule","globalName","default","g","__useDefault","traceurTranspile","traceur","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","Compiler","doTraceurCompile","compile","babelTranspile","babel","babelOptions","code","ast","blacklist","transform","transpiler","transpilerHasRun","transpilerNormalized","curLoader","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","isWindows","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isBrowser","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/jspm_packages/es6-module-loader.src.js b/jspm_packages/es6-module-loader.src.js new file mode 100644 index 0000000..25ecac7 --- /dev/null +++ b/jspm_packages/es6-module-loader.src.js @@ -0,0 +1,2863 @@ +!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { + reported.splice(i, 1); + logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value)); + } + } + + function enqueue(f, x) { + tasks.push(f, x); + if(running === null) { + running = setTimer(flush, 0); + } + } + + function flush() { + running = null; + while(tasks.length > 0) { + tasks.shift()(tasks.shift()); + } + } + + return Promise; + }; + + function throwit(e) { + throw e; + } + + function noop() {} + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{"../env":5,"../format":6}],5:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/ +(function(define) { 'use strict'; +define(function(require) { + /*jshint maxcomplexity:6*/ + + // Sniff "best" async scheduling option + // Prefer process.nextTick or MutationObserver, then check for + // setTimeout, and finally vertx, since its the only env that doesn't + // have setTimeout + + var MutationObs; + var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout; + + // Default env + var setTimer = function(f, ms) { return setTimeout(f, ms); }; + var clearTimer = function(t) { return clearTimeout(t); }; + var asap = function (f) { return capturedSetTimeout(f, 0); }; + + // Detect specific env + if (isNode()) { // Node + asap = function (f) { return process.nextTick(f); }; + + } else if (MutationObs = hasMutationObserver()) { // Modern browser + asap = initMutationObserver(MutationObs); + + } else if (!capturedSetTimeout) { // vert.x + var vertxRequire = require; + var vertx = vertxRequire('vertx'); + setTimer = function (f, ms) { return vertx.setTimer(ms, f); }; + clearTimer = vertx.cancelTimer; + asap = vertx.runOnLoop || vertx.runOnContext; + } + + return { + setTimer: setTimer, + clearTimer: clearTimer, + asap: asap + }; + + function isNode () { + return typeof process !== 'undefined' && process !== null && + typeof process.nextTick === 'function'; + } + + function hasMutationObserver () { + return (typeof MutationObserver === 'function' && MutationObserver) || + (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver); + } + + function initMutationObserver(MutationObserver) { + var scheduled; + var node = document.createTextNode(''); + var o = new MutationObserver(run); + o.observe(node, { characterData: true }); + + function run() { + var f = scheduled; + scheduled = void 0; + f(); + } + + var i = 0; + return function (f) { + scheduled = f; + node.data = (i ^= 1); + }; + } +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{}],6:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function() { + + return { + formatError: formatError, + formatObject: formatObject, + tryStringify: tryStringify + }; + + /** + * Format an error into a string. If e is an Error and has a stack property, + * it's returned. Otherwise, e is formatted using formatObject, with a + * warning added about e not being a proper Error. + * @param {*} e + * @returns {String} formatted string, suitable for output to developers + */ + function formatError(e) { + var s = typeof e === 'object' && e !== null && e.stack ? e.stack : formatObject(e); + return e instanceof Error ? s : s + ' (WARNING: non-Error used)'; + } + + /** + * Format an object, detecting "plain" objects and running them through + * JSON.stringify if possible. + * @param {Object} o + * @returns {string} + */ + function formatObject(o) { + var s = String(o); + if(s === '[object Object]' && typeof JSON !== 'undefined') { + s = tryStringify(o, s); + } + return s; + } + + /** + * Try to return the result of JSON.stringify(x). If that fails, return + * defaultValue + * @param {*} x + * @param {*} defaultValue + * @returns {String|*} JSON.stringify(x) or defaultValue + */ + function tryStringify(x, defaultValue) { + try { + return JSON.stringify(x); + } catch(e) { + return defaultValue; + } + } + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); + +},{}],7:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function() { + + return function makePromise(environment) { + + var tasks = environment.scheduler; + var emitRejection = initEmitRejection(); + + var objectCreate = Object.create || + function(proto) { + function Child() {} + Child.prototype = proto; + return new Child(); + }; + + /** + * Create a promise whose fate is determined by resolver + * @constructor + * @returns {Promise} promise + * @name Promise + */ + function Promise(resolver, handler) { + this._handler = resolver === Handler ? handler : init(resolver); + } + + /** + * Run the supplied resolver + * @param resolver + * @returns {Pending} + */ + function init(resolver) { + var handler = new Pending(); + + try { + resolver(promiseResolve, promiseReject, promiseNotify); + } catch (e) { + promiseReject(e); + } + + return handler; + + /** + * Transition from pre-resolution state to post-resolution state, notifying + * all listeners of the ultimate fulfillment or rejection + * @param {*} x resolution value + */ + function promiseResolve (x) { + handler.resolve(x); + } + /** + * Reject this promise with reason, which will be used verbatim + * @param {Error|*} reason rejection reason, strongly suggested + * to be an Error type + */ + function promiseReject (reason) { + handler.reject(reason); + } + + /** + * @deprecated + * Issue a progress event, notifying all progress listeners + * @param {*} x progress event payload to pass to all listeners + */ + function promiseNotify (x) { + handler.notify(x); + } + } + + // Creation + + Promise.resolve = resolve; + Promise.reject = reject; + Promise.never = never; + + Promise._defer = defer; + Promise._handler = getHandler; + + /** + * Returns a trusted promise. If x is already a trusted promise, it is + * returned, otherwise returns a new trusted Promise which follows x. + * @param {*} x + * @return {Promise} promise + */ + function resolve(x) { + return isPromise(x) ? x + : new Promise(Handler, new Async(getHandler(x))); + } + + /** + * Return a reject promise with x as its reason (x is used verbatim) + * @param {*} x + * @returns {Promise} rejected promise + */ + function reject(x) { + return new Promise(Handler, new Async(new Rejected(x))); + } + + /** + * Return a promise that remains pending forever + * @returns {Promise} forever-pending promise. + */ + function never() { + return foreverPendingPromise; // Should be frozen + } + + /** + * Creates an internal {promise, resolver} pair + * @private + * @returns {Promise} + */ + function defer() { + return new Promise(Handler, new Pending()); + } + + // Transformation and flow control + + /** + * Transform this promise's fulfillment value, returning a new Promise + * for the transformed result. If the promise cannot be fulfilled, onRejected + * is called with the reason. onProgress *may* be called with updates toward + * this promise's fulfillment. + * @param {function=} onFulfilled fulfillment handler + * @param {function=} onRejected rejection handler + * @param {function=} onProgress @deprecated progress handler + * @return {Promise} new promise + */ + Promise.prototype.then = function(onFulfilled, onRejected, onProgress) { + var parent = this._handler; + var state = parent.join().state(); + + if ((typeof onFulfilled !== 'function' && state > 0) || + (typeof onRejected !== 'function' && state < 0)) { + // Short circuit: value will not change, simply share handler + return new this.constructor(Handler, parent); + } + + var p = this._beget(); + var child = p._handler; + + parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress); + + return p; + }; + + /** + * If this promise cannot be fulfilled due to an error, call onRejected to + * handle the error. Shortcut for .then(undefined, onRejected) + * @param {function?} onRejected + * @return {Promise} + */ + Promise.prototype['catch'] = function(onRejected) { + return this.then(void 0, onRejected); + }; + + /** + * Creates a new, pending promise of the same type as this promise + * @private + * @returns {Promise} + */ + Promise.prototype._beget = function() { + return begetFrom(this._handler, this.constructor); + }; + + function begetFrom(parent, Promise) { + var child = new Pending(parent.receiver, parent.join().context); + return new Promise(Handler, child); + } + + // Array combinators + + Promise.all = all; + Promise.race = race; + Promise._traverse = traverse; + + /** + * Return a promise that will fulfill when all promises in the + * input array have fulfilled, or will reject when one of the + * promises rejects. + * @param {array} promises array of promises + * @returns {Promise} promise for array of fulfillment values + */ + function all(promises) { + return traverseWith(snd, null, promises); + } + + /** + * Array> -> Promise> + * @private + * @param {function} f function to apply to each promise's value + * @param {Array} promises array of promises + * @returns {Promise} promise for transformed values + */ + function traverse(f, promises) { + return traverseWith(tryCatch2, f, promises); + } + + function traverseWith(tryMap, f, promises) { + var handler = typeof f === 'function' ? mapAt : settleAt; + + var resolver = new Pending(); + var pending = promises.length >>> 0; + var results = new Array(pending); + + for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) { + x = promises[i]; + + if (x === void 0 && !(i in promises)) { + --pending; + continue; + } + + traverseAt(promises, handler, i, x, resolver); + } + + if(pending === 0) { + resolver.become(new Fulfilled(results)); + } + + return new Promise(Handler, resolver); + + function mapAt(i, x, resolver) { + if(!resolver.resolved) { + traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver); + } + } + + function settleAt(i, x, resolver) { + results[i] = x; + if(--pending === 0) { + resolver.become(new Fulfilled(results)); + } + } + } + + function traverseAt(promises, handler, i, x, resolver) { + if (maybeThenable(x)) { + var h = getHandlerMaybeThenable(x); + var s = h.state(); + + if (s === 0) { + h.fold(handler, i, void 0, resolver); + } else if (s > 0) { + handler(i, h.value, resolver); + } else { + resolver.become(h); + visitRemaining(promises, i+1, h); + } + } else { + handler(i, x, resolver); + } + } + + Promise._visitRemaining = visitRemaining; + function visitRemaining(promises, start, handler) { + for(var i=start; i load contains linkSet'); + + if (load.linkSets.indexOf(linkSet) != -1) + console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load'); + } + } + + for (var i = 0; i < linkSets.length; i++) { + var linkSet = linkSets[i]; + for (var j = 0; j < linkSet.loads.length; j++) { + var load = linkSet.loads[j]; + + for (var k = 0; k < load.dependencies.length; k++) { + var depName = load.dependencies[k].value; + var depLoad; + for (var l = 0; l < loads.length; l++) { + if (loads[l].name != depName) + continue; + depLoad = loads[l]; + break; + } + + // loading records are allowed not to have their dependencies yet + // if (load.status != 'loading') + // console.assert(depLoad, 'depLoad found'); + + // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies'); + } + } + } +} */ + + +(function() { + var Promise = __global.Promise || require('when/es6-shim/Promise'); + if (__global.console) + console.assert = console.assert || function() {}; + + // IE8 support + var indexOf = Array.prototype.indexOf || function(item) { + for (var i = 0, thisLen = this.length; i < thisLen; i++) { + if (this[i] === item) { + return i; + } + } + return -1; + }; + var defineProperty = $__Object$defineProperty; + + // 15.2.3 - Runtime Semantics: Loader State + + // 15.2.3.11 + function createLoaderLoad(object) { + return { + // modules is an object for ES5 implementation + modules: {}, + loads: [], + loaderObj: object + }; + } + + // 15.2.3.2 Load Records and LoadRequest Objects + + // 15.2.3.2.1 + function createLoad(name) { + return { + status: 'loading', + name: name, + linkSets: [], + dependencies: [], + metadata: {} + }; + } + + // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions + + // 15.2.4 + + // 15.2.4.1 + function loadModule(loader, name, options) { + return new Promise(asyncStartLoadPartwayThrough({ + step: options.address ? 'fetch' : 'locate', + loader: loader, + moduleName: name, + // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091 + moduleMetadata: options && options.metadata || {}, + moduleSource: options.source, + moduleAddress: options.address + })); + } + + // 15.2.4.2 + function requestLoad(loader, request, refererName, refererAddress) { + // 15.2.4.2.1 CallNormalize + return new Promise(function(resolve, reject) { + resolve(loader.loaderObj.normalize(request, refererName, refererAddress)); + }) + // 15.2.4.2.2 GetOrCreateLoad + .then(function(name) { + var load; + if (loader.modules[name]) { + load = createLoad(name); + load.status = 'linked'; + // https://bugs.ecmascript.org/show_bug.cgi?id=2795 + load.module = loader.modules[name]; + return load; + } + + for (var i = 0, l = loader.loads.length; i < l; i++) { + load = loader.loads[i]; + if (load.name != name) + continue; + console.assert(load.status == 'loading' || load.status == 'loaded', 'loading or loaded'); + return load; + } + + load = createLoad(name); + loader.loads.push(load); + + proceedToLocate(loader, load); + + return load; + }); + } + + // 15.2.4.3 + function proceedToLocate(loader, load) { + proceedToFetch(loader, load, + Promise.resolve() + // 15.2.4.3.1 CallLocate + .then(function() { + return loader.loaderObj.locate({ name: load.name, metadata: load.metadata }); + }) + ); + } + + // 15.2.4.4 + function proceedToFetch(loader, load, p) { + proceedToTranslate(loader, load, + p + // 15.2.4.4.1 CallFetch + .then(function(address) { + // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602 + if (load.status != 'loading') + return; + load.address = address; + + return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address }); + }) + ); + } + + var anonCnt = 0; + + // 15.2.4.5 + function proceedToTranslate(loader, load, p) { + p + // 15.2.4.5.1 CallTranslate + .then(function(source) { + if (load.status != 'loading') + return; + + return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) + + // 15.2.4.5.2 CallInstantiate + .then(function(source) { + load.source = source; + return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); + }) + + // 15.2.4.5.3 InstantiateSucceeded + .then(function(instantiateResult) { + if (instantiateResult === undefined) { + load.address = load.address || ''; + + // instead of load.kind, use load.isDeclarative + load.isDeclarative = true; + return loader.loaderObj.transpile(load) + .then(function(transpiled) { + // Hijack System.register to set declare function + var curSystem = __global.System; + var curRegister = curSystem.register; + curSystem.register = function(name, deps, declare) { + if (typeof name != 'string') { + declare = deps; + deps = name; + } + // store the registered declaration as load.declare + // store the deps as load.deps + load.declare = declare; + load.depsList = deps; + } + __eval(transpiled, __global, load); + curSystem.register = curRegister; + }); + } + else if (typeof instantiateResult == 'object') { + load.depsList = instantiateResult.deps || []; + load.execute = instantiateResult.execute; + load.isDeclarative = false; + } + else + throw TypeError('Invalid instantiate return value'); + }) + // 15.2.4.6 ProcessLoadDependencies + .then(function() { + load.dependencies = []; + var depsList = load.depsList; + + var loadPromises = []; + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { + loadPromises.push( + requestLoad(loader, request, load.name, load.address) + + // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) + .then(function(depLoad) { + + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { + key: request, + value: depLoad.name + }; + + if (depLoad.status != 'linked') { + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + addLoadToLinkSet(linkSets[i], depLoad); + } + + // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); + // snapshot(loader); + }) + ); + })(depsList[i], i); + + return Promise.all(loadPromises); + }) + + // 15.2.4.6.2 LoadSucceeded + .then(function() { + // console.log('LoadSucceeded ' + load.name); + // snapshot(loader); + + console.assert(load.status == 'loading', 'is loading'); + + load.status = 'loaded'; + + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + updateLinkSetOnLoad(linkSets[i], load); + }); + }) + // 15.2.4.5.4 LoadFailed + ['catch'](function(exc) { + load.status = 'failed'; + load.exception = exc; + + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) { + linkSetFailed(linkSets[i], load, exc); + } + + console.assert(load.linkSets.length == 0, 'linkSets not removed'); + }); + } + + // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions + + // 15.2.4.7.1 + function asyncStartLoadPartwayThrough(stepState) { + return function(resolve, reject) { + var loader = stepState.loader; + var name = stepState.moduleName; + var step = stepState.step; + + if (loader.modules[name]) + throw new TypeError('"' + name + '" already exists in the module table'); + + // adjusted to pick up existing loads + var existingLoad; + for (var i = 0, l = loader.loads.length; i < l; i++) { + if (loader.loads[i].name == name) { + existingLoad = loader.loads[i]; + + if(step == 'translate' && !existingLoad.source) { + existingLoad.address = stepState.moduleAddress; + proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); + } + + return existingLoad.linkSets[0].done.then(function() { + resolve(existingLoad); + }); + } + } + + var load = createLoad(name); + + load.metadata = stepState.moduleMetadata; + + var linkSet = createLinkSet(loader, load); + + loader.loads.push(load); + + resolve(linkSet.done); + + if (step == 'locate') + proceedToLocate(loader, load); + + else if (step == 'fetch') + proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress)); + + else { + console.assert(step == 'translate', 'translate step'); + load.address = stepState.moduleAddress; + proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource)); + } + } + } + + // Declarative linking functions run through alternative implementation: + // 15.2.5.1.1 CreateModuleLinkageRecord not implemented + // 15.2.5.1.2 LookupExport not implemented + // 15.2.5.1.3 LookupModuleDependency not implemented + + // 15.2.5.2.1 + function createLinkSet(loader, startingLoad) { + var linkSet = { + loader: loader, + loads: [], + startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + loadingCount: 0 + }; + linkSet.done = new Promise(function(resolve, reject) { + linkSet.resolve = resolve; + linkSet.reject = reject; + }); + addLoadToLinkSet(linkSet, startingLoad); + return linkSet; + } + // 15.2.5.2.2 + function addLoadToLinkSet(linkSet, load) { + console.assert(load.status == 'loading' || load.status == 'loaded', 'loading or loaded on link set'); + + for (var i = 0, l = linkSet.loads.length; i < l; i++) + if (linkSet.loads[i] == load) + return; + + linkSet.loads.push(load); + load.linkSets.push(linkSet); + + // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603 + if (load.status != 'loaded') { + linkSet.loadingCount++; + } + + var loader = linkSet.loader; + + for (var i = 0, l = load.dependencies.length; i < l; i++) { + var name = load.dependencies[i].value; + + if (loader.modules[name]) + continue; + + for (var j = 0, d = loader.loads.length; j < d; j++) { + if (loader.loads[j].name != name) + continue; + + addLoadToLinkSet(linkSet, loader.loads[j]); + break; + } + } + // console.log('add to linkset ' + load.name); + // snapshot(linkSet.loader); + } + + // linking errors can be generic or load-specific + // this is necessary for debugging info + function doLink(linkSet) { + var error = false; + try { + link(linkSet, function(load, exc) { + linkSetFailed(linkSet, load, exc); + error = true; + }); + } + catch(e) { + linkSetFailed(linkSet, null, e); + error = true; + } + return error; + } + + // 15.2.5.2.3 + function updateLinkSetOnLoad(linkSet, load) { + // console.log('update linkset on load ' + load.name); + // snapshot(linkSet.loader); + + console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); + + linkSet.loadingCount--; + + if (linkSet.loadingCount > 0) + return; + + // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + var startingLoad = linkSet.startingLoad; + + // non-executing link variation for loader tracing + // on the server. Not in spec. + /***/ + if (linkSet.loader.loaderObj.execute === false) { + var loads = [].concat(linkSet.loads); + for (var i = 0, l = loads.length; i < l; i++) { + var load = loads[i]; + load.module = !load.isDeclarative ? { + module: _newModule({}) + } : { + name: load.name, + module: _newModule({}), + evaluated: true + }; + load.status = 'linked'; + finishLoad(linkSet.loader, load); + } + return linkSet.resolve(startingLoad); + } + /***/ + + var abrupt = doLink(linkSet); + + if (abrupt) + return; + + console.assert(linkSet.loads.length == 0, 'loads cleared'); + + linkSet.resolve(startingLoad); + } + + // 15.2.5.2.4 + function linkSetFailed(linkSet, load, exc) { + var loader = linkSet.loader; + + if (load && linkSet.loads[0].name != load.name) + exc = addToError(exc, 'Error loading "' + load.name + '" from "' + linkSet.loads[0].name + '" at ' + (linkSet.loads[0].address || '') + '\n'); + + if (load) + exc = addToError(exc, 'Error loading "' + load.name + '" at ' + (load.address || '') + '\n'); + + var loads = linkSet.loads.concat([]); + for (var i = 0, l = loads.length; i < l; i++) { + var load = loads[i]; + + // store all failed load records + loader.loaderObj.failed = loader.loaderObj.failed || []; + if (indexOf.call(loader.loaderObj.failed, load) == -1) + loader.loaderObj.failed.push(load); + + var linkIndex = indexOf.call(load.linkSets, linkSet); + console.assert(linkIndex != -1, 'link not present'); + load.linkSets.splice(linkIndex, 1); + if (load.linkSets.length == 0) { + var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); + if (globalLoadsIndex != -1) + linkSet.loader.loads.splice(globalLoadsIndex, 1); + } + } + linkSet.reject(exc); + } + + // 15.2.5.2.5 + function finishLoad(loader, load) { + // add to global trace if tracing + if (loader.loaderObj.trace) { + if (!loader.loaderObj.loads) + loader.loaderObj.loads = {}; + var depMap = {}; + load.dependencies.forEach(function(dep) { + depMap[dep.key] = dep.value; + }); + loader.loaderObj.loads[load.name] = { + name: load.name, + deps: load.dependencies.map(function(dep){ return dep.key }), + depMap: depMap, + address: load.address, + metadata: load.metadata, + source: load.source, + kind: load.isDeclarative ? 'declarative' : 'dynamic' + }; + } + // if not anonymous, add to the module table + if (load.name) { + console.assert(!loader.modules[load.name], 'load not in module table'); + loader.modules[load.name] = load.module; + } + var loadIndex = indexOf.call(loader.loads, load); + if (loadIndex != -1) + loader.loads.splice(loadIndex, 1); + for (var i = 0, l = load.linkSets.length; i < l; i++) { + loadIndex = indexOf.call(load.linkSets[i].loads, load); + if (loadIndex != -1) + load.linkSets[i].loads.splice(loadIndex, 1); + } + load.linkSets.splice(0, load.linkSets.length); + } + + // 15.2.5.3 Module Linking Groups + + // 15.2.5.3.2 BuildLinkageGroups alternative implementation + // Adjustments (also see https://bugs.ecmascript.org/show_bug.cgi?id=2755) + // 1. groups is an already-interleaved array of group kinds + // 2. load.groupIndex is set when this function runs + // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) + function buildLinkageGroups(load, loads, groups) { + groups[load.groupIndex] = groups[load.groupIndex] || []; + + // if the load already has a group index and its in its group, its already been done + // this logic naturally handles cycles + if (indexOf.call(groups[load.groupIndex], load) != -1) + return; + + // now add it to the group to indicate its been seen + groups[load.groupIndex].push(load); + + for (var i = 0, l = loads.length; i < l; i++) { + var loadDep = loads[i]; + + // dependencies not found are already linked + for (var j = 0; j < load.dependencies.length; j++) { + if (loadDep.name == load.dependencies[j].value) { + // by definition all loads in linkset are loaded, not linked + console.assert(loadDep.status == 'loaded', 'Load in linkSet not loaded!'); + + // if it is a group transition, the index of the dependency has gone up + // otherwise it is the same as the parent + var loadDepGroupIndex = load.groupIndex + (loadDep.isDeclarative != load.isDeclarative); + + // the group index of an entry is always the maximum + if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { + + // if already in a group, remove from the old group + if (loadDep.groupIndex !== undefined) { + groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); + + // if the old group is empty, then we have a mixed depndency cycle + if (groups[loadDep.groupIndex].length == 0) + throw new TypeError("Mixed dependency cycle detected"); + } + + loadDep.groupIndex = loadDepGroupIndex; + } + + buildLinkageGroups(loadDep, loads, groups); + } + } + } + } + + function doDynamicExecute(linkSet, load, linkError) { + try { + var module = load.execute(); + } + catch(e) { + linkError(load, e); + return; + } + if (!module || !(module instanceof Module)) + linkError(load, new TypeError('Execution must define a Module instance')); + else + return module; + } + + // 15.2.5.4 + function link(linkSet, linkError) { + + var loader = linkSet.loader; + + if (!linkSet.loads.length) + return; + + // console.log('linking {' + logloads(linkSet.loads) + '}'); + // snapshot(loader); + + // 15.2.5.3.1 LinkageGroups alternative implementation + + // build all the groups + // because the first load represents the top of the tree + // for a given linkset, we can work down from there + var groups = []; + var startingLoad = linkSet.loads[0]; + startingLoad.groupIndex = 0; + buildLinkageGroups(startingLoad, linkSet.loads, groups); + + // determine the kind of the bottom group + var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; + + // run through the groups from bottom to top + for (var i = groups.length - 1; i >= 0; i--) { + var group = groups[i]; + for (var j = 0; j < group.length; j++) { + var load = group[j]; + + // 15.2.5.5 LinkDeclarativeModules adjusted + if (curGroupDeclarative) { + linkDeclarativeModule(load, linkSet.loads, loader); + } + // 15.2.5.6 LinkDynamicModules adjusted + else { + var module = doDynamicExecute(linkSet, load, linkError); + if (!module) + return; + load.module = { + name: load.name, + module: module + }; + load.status = 'linked'; + } + finishLoad(loader, load); + } + + // alternative current kind for next loop + curGroupDeclarative = !curGroupDeclarative; + } + } + + + // custom module records for binding graph + // store linking module records in a separate table + function getOrCreateModuleRecord(name, loader) { + var moduleRecords = loader.moduleRecords; + return moduleRecords[name] || (moduleRecords[name] = { + name: name, + dependencies: [], + module: new Module(), // start from an empty module and extend + importers: [] + }); + } + + // custom declarative linking function + function linkDeclarativeModule(load, loads, loader) { + if (load.module) + return; + + var module = load.module = getOrCreateModuleRecord(load.name, loader); + var moduleObj = load.module.module; + + var registryEntry = load.declare.call(__global, function(name, value) { + // NB This should be an Object.defineProperty, but that is very slow. + // By disaling this module write-protection we gain performance. + // It could be useful to allow an option to enable or disable this. + module.locked = true; + moduleObj[name] = value; + + for (var i = 0, l = module.importers.length; i < l; i++) { + var importerModule = module.importers[i]; + if (!importerModule.locked) { + var importerIndex = indexOf.call(importerModule.dependencies, module); + importerModule.setters[importerIndex](moduleObj); + } + } + + module.locked = false; + return value; + }); + + // setup our setters and execution function + module.setters = registryEntry.setters; + module.execute = registryEntry.execute; + + // now link all the module dependencies + // amending the depMap as we go + for (var i = 0, l = load.dependencies.length; i < l; i++) { + var depName = load.dependencies[i].value; + var depModule = loader.modules[depName]; + + // if dependency not already in the module registry + // then try and link it now + if (!depModule) { + // get the dependency load record + for (var j = 0; j < loads.length; j++) { + if (loads[j].name != depName) + continue; + + // only link if already not already started linking (stops at circular / dynamic) + if (!loads[j].module) { + linkDeclarativeModule(loads[j], loads, loader); + depModule = loads[j].module; + } + // if circular, create the module record + else { + depModule = getOrCreateModuleRecord(depName, loader); + } + } + } + + // only declarative modules have dynamic bindings + if (depModule.importers) { + module.dependencies.push(depModule); + depModule.importers.push(module); + } + else { + // track dynamic records as null module records as already linked + module.dependencies.push(null); + } + + // run the setter for this dependency + if (module.setters[i]) + module.setters[i](depModule.module); + } + + load.status = 'linked'; + } + + + + // 15.2.5.5.1 LinkImports not implemented + // 15.2.5.7 ResolveExportEntries not implemented + // 15.2.5.8 ResolveExports not implemented + // 15.2.5.9 ResolveExport not implemented + // 15.2.5.10 ResolveImportEntries not implemented + + // 15.2.6.1 + function evaluateLoadedModule(loader, load) { + console.assert(load.status == 'linked', 'is linked ' + load.name); + + doEnsureEvaluated(load.module, [], loader); + return load.module.module; + } + + /* + * Module Object non-exotic for ES5: + * + * module.module bound module object + * module.execute execution function for module + * module.dependencies list of module objects for dependencies + * See getOrCreateModuleRecord for all properties + * + */ + function doExecute(module) { + try { + module.execute.call(__global); + } + catch(e) { + return e; + } + } + + // propogate execution errors + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doEnsureEvaluated(module, seen, loader) { + var err = ensureEvaluated(module, seen, loader); + if (err) + throw err; + } + // 15.2.6.2 EnsureEvaluated adjusted + function ensureEvaluated(module, seen, loader) { + if (module.evaluated || !module.dependencies) + return; + + seen.push(module); + + var deps = module.dependencies; + var err; + + for (var i = 0, l = deps.length; i < l; i++) { + var dep = deps[i]; + // dynamic dependencies are empty in module.dependencies + // as they are already linked + if (!dep) + continue; + if (indexOf.call(seen, dep) == -1) { + err = ensureEvaluated(dep, seen, loader); + // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 + if (err) { + err = addToError(err, 'Error evaluating ' + dep.name + '\n'); + return err; + } + } + } + + if (module.failed) + return new Error('Module failed execution.'); + + if (module.evaluated) + return; + + module.evaluated = true; + err = doExecute(module); + if (err) { + module.failed = true; + } + else if (Object.preventExtensions) { + // spec variation + // we don't create a new module here because it was created and ammended + // we just disable further extensions instead + Object.preventExtensions(module.module); + } + + module.execute = undefined; + return err; + } + + function addToError(err, msg) { + if (err instanceof Error) + err.message = msg + err.message; + else + err = msg + err; + return err; + } + + // 26.3 Loader + + // 26.3.1.1 + function Loader(options) { + if (typeof options != 'object') + throw new TypeError('Options must be an object'); + + if (options.normalize) + this.normalize = options.normalize; + if (options.locate) + this.locate = options.locate; + if (options.fetch) + this.fetch = options.fetch; + if (options.translate) + this.translate = options.translate; + if (options.instantiate) + this.instantiate = options.instantiate; + + this._loader = { + loaderObj: this, + loads: [], + modules: {}, + importPromises: {}, + moduleRecords: {} + }; + + // 26.3.3.6 + defineProperty(this, 'global', { + get: function() { + return __global; + } + }); + + // 26.3.3.13 realm not implemented + } + + function Module() {} + + // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 + function createImportPromise(loader, name, promise) { + var importPromises = loader._loader.importPromises; + return importPromises[name] = promise.then(function(m) { + importPromises[name] = undefined; + return m; + }, function(e) { + importPromises[name] = undefined; + throw e; + }); + } + + Loader.prototype = { + // 26.3.3.1 + constructor: Loader, + // 26.3.3.2 + define: function(name, source, options) { + // check if already defined + if (this._loader.importPromises[name]) + throw new TypeError('Module is already loading.'); + return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ + step: 'translate', + loader: this._loader, + moduleName: name, + moduleMetadata: options && options.metadata || {}, + moduleSource: source, + moduleAddress: options && options.address + }))); + }, + // 26.3.3.3 + 'delete': function(name) { + var loader = this._loader; + delete loader.importPromises[name]; + delete loader.moduleRecords[name]; + return loader.modules[name] ? delete loader.modules[name] : false; + }, + // 26.3.3.4 entries not implemented + // 26.3.3.5 + get: function(key) { + if (!this._loader.modules[key]) + return; + doEnsureEvaluated(this._loader.modules[key], [], this); + return this._loader.modules[key].module; + }, + // 26.3.3.7 + has: function(name) { + return !!this._loader.modules[name]; + }, + // 26.3.3.8 + 'import': function(name, options) { + // run normalize first + var loaderObj = this; + + // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 + return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) + .then(function(name) { + var loader = loaderObj._loader; + + if (loader.modules[name]) { + doEnsureEvaluated(loader.modules[name], [], loader._loader); + return loader.modules[name].module; + } + + return loader.importPromises[name] || createImportPromise(loaderObj, name, + loadModule(loader, name, options || {}) + .then(function(load) { + delete loader.importPromises[name]; + return evaluateLoadedModule(loader, load); + })); + }); + }, + // 26.3.3.9 keys not implemented + // 26.3.3.10 + load: function(name, options) { + if (this._loader.modules[name]) { + doEnsureEvaluated(this._loader.modules[name], [], this._loader); + return Promise.resolve(this._loader.modules[name].module); + } + return this._loader.importPromises[name] || createImportPromise(this, name, loadModule(this._loader, name, {})); + }, + // 26.3.3.11 + module: function(source, options) { + var load = createLoad(); + load.address = options && options.address; + var linkSet = createLinkSet(this._loader, load); + var sourcePromise = Promise.resolve(source); + var loader = this._loader; + var p = linkSet.done.then(function() { + return evaluateLoadedModule(loader, load); + }); + proceedToTranslate(loader, load, sourcePromise); + return p; + }, + // 26.3.3.12 + newModule: function (obj) { + if (typeof obj != 'object') + throw new TypeError('Expected object'); + + // we do this to be able to tell if a module is a module privately in ES5 + // by doing m instanceof Module + var m = new Module(); + + var pNames; + if (Object.getOwnPropertyNames && obj != null) { + pNames = Object.getOwnPropertyNames(obj); + } + else { + pNames = []; + for (var key in obj) + pNames.push(key); + } + + for (var i = 0; i < pNames.length; i++) (function(key) { + defineProperty(m, key, { + configurable: false, + enumerable: true, + get: function () { + return obj[key]; + } + }); + })(pNames[i]); + + if (Object.preventExtensions) + Object.preventExtensions(m); + + return m; + }, + // 26.3.3.14 + set: function(name, module) { + if (!(module instanceof Module)) + throw new TypeError('Loader.set(' + name + ', module) must be a module'); + this._loader.modules[name] = { + module: module + }; + }, + // 26.3.3.15 values not implemented + // 26.3.3.16 @@iterator not implemented + // 26.3.3.17 @@toStringTag not implemented + + // 26.3.3.18.1 + normalize: function(name, referrerName, referrerAddress) { + return name; + }, + // 26.3.3.18.2 + locate: function(load) { + return load.name; + }, + // 26.3.3.18.3 + fetch: function(load) { + throw new TypeError('Fetch not implemented'); + }, + // 26.3.3.18.4 + translate: function(load) { + return load.source; + }, + // 26.3.3.18.5 + instantiate: function(load) { + } + }; + + var _newModule = Loader.prototype.newModule; + + if (typeof exports === 'object') + module.exports = Loader; + + __global.Reflect = __global.Reflect || {}; + __global.Reflect.Loader = __global.Reflect.Loader || Loader; + __global.Reflect.global = __global.Reflect.global || __global; + __global.LoaderPolyfill = Loader; + +})(); + +/* + * Traceur and Babel transpile hook for Loader + */ +(function(Loader) { + var g = __global; + + function getTranspilerModule(loader, globalName) { + return loader.newModule({ 'default': g[globalName], __useDefault: true }); + } + + // use Traceur by default + Loader.prototype.transpiler = 'traceur'; + + Loader.prototype.transpile = function(load) { + var self = this; + + // pick up Transpiler modules from existing globals on first run if set + if (!self.transpilerHasRun) { + if (g.traceur && !self.has('traceur')) + self.set('traceur', getTranspilerModule(self, 'traceur')); + if (g.babel && !self.has('babel')) + self.set('babel', getTranspilerModule(self, 'babel')); + self.transpilerHasRun = true; + } + + return self['import'](self.transpiler).then(function(transpiler) { + if (transpiler.__useDefault) + transpiler = transpiler['default']; + return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(self, load, transpiler); + }); + }; + + Loader.prototype.instantiate = function(load) { + var self = this; + return Promise.resolve(self.normalize(self.transpiler)) + .then(function(transpilerNormalized) { + // load transpiler as a global (avoiding System clobbering) + if (load.name === transpilerNormalized) { + return { + deps: [], + execute: function() { + var curSystem = g.System; + var curLoader = g.Reflect.Loader; + // ensure not detected as CommonJS + __eval('(function(require,exports,module){' + load.source + '})();', g, load); + g.System = curSystem; + g.Reflect.Loader = curLoader; + return getTranspilerModule(self, load.name); + } + }; + } + }); + }; + + function traceurTranspile(load, traceur) { + var options = this.traceurOptions || {}; + options.modules = 'instantiate'; + options.script = false; + options.sourceMaps = 'inline'; + options.filename = load.address; + options.inputSourceMap = load.metadata.sourceMap; + options.moduleName = false; + + var compiler = new traceur.Compiler(options); + var source = doTraceurCompile(load.source, compiler, options.filename); + + // add "!eval" to end of Traceur sourceURL + // I believe this does something? + return source + '\n//# sourceURL=' + load.address + '!eval'; + } + function doTraceurCompile(source, compiler, filename) { + try { + return compiler.compile(source, filename); + } + catch(e) { + // traceur throws an error array + throw e[0]; + } + } + + function babelTranspile(load, babel) { + var options = this.babelOptions || {}; + options.modules = 'system'; + options.sourceMap = 'inline'; + options.filename = load.address; + options.code = true; + options.ast = false; + + if (!options.blacklist) + options.blacklist = ['react']; + + var source = babel.transform(load.source, options).code; + + // add "!eval" to end of Babel sourceURL + // I believe this does something? + return source + '\n//# sourceURL=' + load.address + '!eval'; + } + + +})(__global.LoaderPolyfill); +/* +********************************************************************************************* + + System Loader Implementation + + - Implemented to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js + + - + + \ No newline at end of file diff --git a/jspm_packages/npm/babel-core@5.6.20.js b/jspm_packages/npm/babel-core@5.6.20.js new file mode 100644 index 0000000..67834dc --- /dev/null +++ b/jspm_packages/npm/babel-core@5.6.20.js @@ -0,0 +1 @@ +module.exports = require("npm:babel-core@5.6.20/browser"); \ No newline at end of file diff --git a/jspm_packages/npm/babel-core@5.6.20/.jspm-hash b/jspm_packages/npm/babel-core@5.6.20/.jspm-hash new file mode 100644 index 0000000..6bc6442 --- /dev/null +++ b/jspm_packages/npm/babel-core@5.6.20/.jspm-hash @@ -0,0 +1 @@ +d82d01487ecc8ed3134b28710afd8aabf2b597362615f3cffc60555b3aeaacf1dd14b06ejspm-npm@0.210.15 \ No newline at end of file diff --git a/jspm_packages/npm/babel-core@5.6.20/.jspm.json b/jspm_packages/npm/babel-core@5.6.20/.jspm.json new file mode 100644 index 0000000..d3bbfe6 --- /dev/null +++ b/jspm_packages/npm/babel-core@5.6.20/.jspm.json @@ -0,0 +1,96 @@ +{ + "name": "babel-core", + "description": "A compiler for writing next generation JavaScript", + "version": "5.6.20", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel" + }, + "browser": { + "./lib/babel/api/register/node.js": "./lib/babel/api/register/browser.js" + }, + "keywords": [ + "6to5", + "babel", + "classes", + "const", + "es6", + "harmony", + "let", + "modules", + "transpile", + "transpiler", + "var" + ], + "scripts": { + "bench": "make bench", + "test": "make test" + }, + "devDependencies": { + "babel": "5.6.10", + "babel-eslint": "^3.1.19", + "browserify": "^9.0.8", + "chai": "^2.2.0", + "eslint": "^0.21.2", + "esvalid": "^1.1.0", + "istanbul": "^0.3.5", + "matcha": "^0.6.0", + "mocha": "2.2.0", + "rimraf": "^2.3.2", + "uglify-js": "^2.4.16" + }, + "gitHead": "d28716cf9377c331b40205d1be8119c6591d2403", + "bugs": { + "url": "https://github.com/babel/babel/issues" + }, + "_id": "babel-core@5.6.20", + "_shasum": "d82d01487ecc8ed3134b28710afd8aabf2b59736", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { + "name": "sebmck", + "email": "sebmck@gmail.com" + }, + "maintainers": [ + { + "name": "sebmck", + "email": "sebmck@gmail.com" + } + ], + "dist": { + "shasum": "d82d01487ecc8ed3134b28710afd8aabf2b59736", + "tarball": "http://registry.npmjs.org/babel-core/-/babel-core-5.6.20.tgz" + }, + "directories": {}, + "jspm": { + "main": "browser.js", + "dependencies": {}, + "jspmNodeConversion": false, + "shim": { + "browser": { + "exports": "babel" + } + }, + "map": { + "regenerator/runtime": "babel-runtime/regenerator/runtime" + } + }, + "main": "browser.js", + "jspmNodeConversion": false, + "shim": { + "browser": { + "exports": "babel" + } + }, + "map": { + "regenerator/runtime": "babel-runtime/regenerator/runtime" + }, + "registry": "npm", + "dependencies": {} +} \ No newline at end of file diff --git a/jspm_packages/npm/babel-core@5.6.20/CHANGELOG-6to5.md b/jspm_packages/npm/babel-core@5.6.20/CHANGELOG-6to5.md new file mode 100644 index 0000000..6005a2d --- /dev/null +++ b/jspm_packages/npm/babel-core@5.6.20/CHANGELOG-6to5.md @@ -0,0 +1,1093 @@ +# 6to5 Changelog + +## 3.6.6 + + * **Internal** + * Upgrade `core-js`. + * **Bug Fix** + * Fix temp variables not being properly pushed inside of `while` loops. + * **New Feature** + * Add `auxiliaryComment`/`--auxiliary-comment` option that prepends comments to auxiliary helpers. + +## 3.6.5 + + * **Internal** + * Upgrade `core-js`. + * **Bug Fix** + * Fix block scoping leaking variables in IIFE mode. + * Fix tail call transformer exploding on return statements as the consequent of an if statement. + * **New Feature** + * Add `validation.react` transformer. + +## 3.6.4 + + * **New Feature** + * Add support for flow type casts and module types. + +## 3.6.3 + + * **Internal** + * Upgrade `acorn-6to5`. + * Use `default` property on `6to5-runtime`. + +## 3.6.2 + + * **Polish** + * Use better iterator detection in `slicedToArray` helper and add support for it to the `selfContained` transformer. + +## 3.6.1 + + * **Bug Fix** + * Multiline JSX string literals are now supported. + * Fix scope tracking import specifiers incorrectly. + * Fix templates incorrectly recursing into their replacements. + * **Internal** + * Type inferrence now extends to function return types. + * Upgrade `acorn-6to5`. + +## 3.6.0 + + * **New Feature** + * Add playground class property initializers. + * **Polish** + * Completely reimplemented scope tracking, can now track types and optimise certain helpers based on it. + * Extremely fast tail recursion optimisation implementation. Thanks [@RReverser](https://github.com/RReverser)! + * **Internal** + * `kexec` has been removed as an optional dependency and must be user installed. + * Upgrade `regenerator-6to5`. + * Upgrade `acorn-6to5`. + * Upgrade `core-js`. + +## 3.5.3 + + * Enable `es6.tailCall` transformer with the first implementation that only works with self referencing calls until we can implement nested tail calls elegantly. + +## 3.5.2 + + * Disable `es6.tailCall` temporairly after reports of it breaking. + +## 3.5.1 + + * **Polish** + * Allow tail calls to work across files without the runtime. + * **Internal** + * Upgrade `acorn-6to5`. + +## 3.5.0 + + * **Bug Fix** + * Destructuring patterns as the left operator in `ForInStatement`/`ForOfStatement`. + * **Polish** + * Make default parameter IIFE invocation smarter. + * Make `__esModule` flag non-enumerable. Thanks [@daliwali](https://github.com/daliwali)! + * **Internal** + * More performance improvements. + * Parsing is now ~30% faster thanks to [marijnh/acorn@7264bc0178e7e6af7cfe02e9e0c6b26ee0e6007f](https://github.com/marijnh/acorn/commit/7264bc0178e7e6af7cfe02e9e0c6b26ee0e6007f). + * **New Feature** + * Optional `es6.blockScopingTDZ` is now completely functional and handles all edgecases. + * `super` in object literals. + * Tail call optimisation. Thanks [@RReverser](https://github.com/RReverser)! + +## 3.4.1 + + * **Bug Fix** + * Fix conflicting `--module-ids` shorthand arg in `$ 6to5`. + * Add require hook options to cache key. + * Fix strict module formatter. + +## 3.4.0 + + * **New Feature** + * Add `commonStandard` module formatter. + * **Bug Fix** + * Fix conflicting `--module-ids` shorthand arg in `$ 6to5`. + * **Internal** + * Lots of internal refactoring with scope tracking and traversal. + * **Polish** + * Don't return `map` in the API result if `sourceMap` was set to `"inline"`. + +## 3.3.12 + + * **Bug Fix** + * Don't override `MemberExpression`s with `core-js` in `selfContained` if a local binding exists. + +## 3.3.11 + + * **Bug Fix** + * Fix the require cache. + +## 3.3.10 + + * **Internal** + * Restructure transformers so they're only ran if the AST contains nodes that they need to worry about. Improves transpilation speed significantly. + * **Bug Fix** + * Fix source maps not tracking end of node locations. + * **Spec Compliancy** + * Use static super references as the home object is actually done at definition time. + * **Polish** + * Force the `es6.destructuring` transformer to be whitelisted when the `es7.objectSpread` transformer is. + * Join sibling string literals when creating JSX. + +## 3.3.9 + + * **Bug Fix** + * Fix super inside of functions. + * Fix super constructor inheritance. + +## 3.3.7 + + * **Bug Fix** + * Add `--use-strict` to valid node flags in `6to5-node`. + * Fix booleans not being properly stripped from the arguments in `6to5-node`. + * Force `.js` extension when writing files to directories with `6to5`. + +## 3.3.5 + + * **Bug Fix** + * Fix block scoping inside of while loops. + * Make module name regex more conservative. Thanks [@johlrich](https://github.com/johlrich)! + * Fix block scoping of constants. + * Fix istanbul interop. + * Make JSX transforming more inline with the official transformer with spaces after non-empty last lines. + * **Polish** + * Make it illegal to export a property called `__esModule`. + +## 3.3.4 + + * **Polish** + * Add istanbul `require` interop. + * **Bug Fix** + * Fix incorrect source map column tracking in specific scenarios. + +## 3.3.3 + + * **Polish** + * Remap top level `this` to `undefined` instead of throwing an error. + * **Bug Fix** + * Run `selfContained` transformer over the regenerator runtime when building `6to5-runtime`. + * Fix `t.isReferenced` not properly allowing `value` nodes. + +## 3.3.1 + + * **Bug Fix** + * Block hoist assignment pattern destructuring. + +## 3.3.0 + + * **Bug Fix** + * Do all transforms before the regenerator transform is ran. + * **New Feature** + * Added back the 2.x optional runtime. + +## 3.2.1 + + * **Bug Fix** + * Fix block scoping transformer rewriting breaks and continues to inner labels. + +## 3.2.0 + + * **Bug Fix** + * Fixed scope tracking for default parameters IIFE. + * Fixed block scoped functions. + * Improved `bin/6to5` path resolution. + * **New Feature** + * You can now trigger super setters in classes. Thanks [@kruppel](https://github.com/kruppel)! + * Add `resolveSourceMap` option. + * Better support and output for block scoping loops with labels. + +## 3.1.1 + + * **Polish** + * Drop `enumerable: false` clause from class method definitions as `enumerable` already defaults to `false`. + * **Bug Fix** + * Properly transform `XJSIdentifier` nodes referencing `this` into a `ThisExpression`. + +## 3.1.0 + + * **Breaking Change** + * [Make class methods unenumerable](https://esdiscuss.org/topic/classes-and-enumerability#content-61). + +## 3.0.16 + + * **Bug Fix** + * Don't ignore dynamic import specifiers. + * **Internal** + * Upgrade `regenerator-6to5`. + * **Polish** + * Use `Object.assign` in place of extends helper if it exists. + * Require individual `lodash` methods. Thanks [@stefanpenner](https://github.com/stefanpenner)! + +## 3.0.15 + + * **Bug Fix** + * Use `debug/node` instead of `debug` to avoid browserify using the browser version that references `window`. + +## 3.0.14 + + * **New Feature** + * Add `--optional` argument to `6to5-node`. + * **Bug Fix** + * Fix bug in `asyncToGenerator` helper where it was incorrectly calling generator iterator functions. + +## 3.0.13 + + * **Bug Fix** + * Fix modules loose mode using `modules` instead of `es6.modules`. + +## 3.0.12 + + * **Internal** + * Add internal debug messages. + * **Bug Fix** + * Add `noScope` option to `traverse.clearProperties`. + +## 3.0.11 + + * **Bug Fix** + * Fix `ast-types` `RestElement` definition. + * Make `es6.forOf` loose mode more versatile and support destructuring. + +## 3.0.10 + + * **Bug Fix** + * In `types.getIds` make sure the `declaration` inside of `ExportDeclaration` is actually a `Declaration`. + +## 3.0.9 + + * **Bug Fix** + * Make `t.isReferenced` more powerful, actually take into consideration all contexts were identifier nodes aren't actually references. + * Don't camelcase underscores when converting a string to a valid identifier. + +## 3.0.8 + + * **Bug Fix** + * Split up default function declaration exports due to regenerator destroying the parent export declaration. + +## 3.0.7 + + * **Internal** + * Upgrade `core-js` to `0.4.9`. + * **Bug Fix** + * Add id to function express scope tracking. + +## 3.0.6 + + * **Bug Fix** + * Fix block scope variable tracking stopping whenever it hits a new scope. + * Fix block scope variable tracking breaking on all block statement scopes that have a for loop parent. + +## 3.0.5 + + * **Internal** + * More reliable default parameter scope. + +## 3.0.4 + + * **Bug Fix** + * Remove traversal stops from block scope tracking. + +## 3.0.3 + + * **Internal** + * Ignore options starting with `_`. + +## 3.0.2 + + * **Internal** + * Add common plugin options to valid options list. + +## 3.0.1 + + * **Internal** + * Downgrade `kexec` as `1.1.0` throws compilation errors. + +## 3.0.0 + + * **Polish** + * Generated code autoindentation. + * Moved global uid registry to a scope registry resulting in nicer uids. + * `this` is now illegal in the top level scope when using the default `useStrict` transformer. + * New `asyncToGenerator` helper that's much more compact. + * Throw errors on unknown options. + * More reliable default parameter scope. + * Helpers are now compact and have no newlines. + * **Internal** + * Rewritten a lot of the internals to much simpler. + * Removed TDZ from default parameters as it was very wonky and unreliable. + * Upgrade `core-js` to `0.4.6`. + * Upgrade `acorn-6to5`. + * JSX support is now on-par with react-tools/esprima. + * Shorthand destructuring. + * **Bug Fix** + * Generators now work flawlessly with any parameter transformers. + * Optional async function transformers should not name their functions. + * Remove `unlink` event watching in `bin/6to5`. + * Fix regenerator variable declarations being incorrectly hoisted breaking scope. + * Transformers that attempted to simplify expressions that had no consequence now take into account whether it's one of the last statements/expressions in the script. + * **New Feature** + * New `selfContained` transformer. + * New `undeclaredVariableCheck` optional transformer. + * Added `--blacklist` and `--whitelist` options to `6to5-node`. + * **Breaking Change** + * Caching is now always enabled for the require hook. It also now no longer caches require resolutions. + * Bare `super();` only works inside of constructors. + * Removed the optional runtime in favor of the `selfContained` transformer. + * This shorthand has been removed from the playground. + * `6to5/polyfill` can now only be required **once**. + * **CLI** + * `--indent` option has been removed. + * `--include-regenerator` option has been removed. + * `--amd-modules-id` option has been removed, use `--module-ids` instead. + * **Options** + * `amdModuleIds` option has been removed, use `moduleIds` instead. + * `includeRegenerator` has been removed. + * `ignoreRegex` fallback has now been dropped from the require hook. `register(/foo/);`, `register({ ignoreRegex: /foo/ })` -> `register({ ignore: /foo/ })`. + * **Modules** + * Module interop now only collapses to `module.exports` when there's a **single** export that's default. + * Imports and exports are now illegal anywhere except the root level by default. Set `modules` to [loose mode](http://6to5.org/docs/usage/loose) to allow them everywhere. + * **Transformers** + * Optional fast transformer backwards compatibility support has been removed. Use [loose mode](https://6to5.org/docs/usage/loose). + * Removed the `coreAliasing` transformer in favor of `selfContained`. + * Renamed transformers: + * `specNoForInOfAssignment` -> `validation.noForInOfAssignment` + * `specSetters` -> `validation.setters` + * `specBlockScopedFunctions` -> `spec.blockScopedFunctions` + * `malletOperator` -> `playground.malletOperator` + * `methodBinding` -> `playground.methodBinding` + * `memoizationOperator` -> `playground.memoizationOperator` + * `objectGetterMemoization` -> `playground.objectGetterMemoization` + * `modules` -> `es6.modules` + * `propertyNameShorthand` -> `es6.properties.shorthand` + * `arrayComprehension` -> `es7.comprehensions` + * `generatorComprehension` -> `es7.comprehensions` + * `arrowFunctions` -> `es6.arrowFunctions` + * `classes` -> `es6.classes` + * `objectSpread` -> `es7.objectSpread` + * `exponentiationOperator` -> `es7.exponentiationOperator` + * `spread` -> `es6.spread` + * `templateLiterals` -> `es6.templateLiterals` + * `propertyMethodAssignment` -> `es6.properties.shorthand` + * `computedPropertyNames` -> `es6.properties.computed` + * `defaultParameters` -> `es6.parameters.default` + * `restParameters` -> `es6.parameters.rest` + * `destructuring` -> `es6.destructuring` + * `forOf` -> `es6.forOf` + * `unicodeRegex` -> `es6.unicodeRegex` + * `abstractReferences` -> `es7.abstractReferences` + * `constants` -> `es6.constants` + * `letScoping` -> `es6.blockScoping` + * `blockScopingTDZ` -> `es6.blockScopingTDZ` + * `generators` -> `regenerator` + * `protoToAssign` -> `spec.protoToAssign` + * `typeofSymbol` -> `spec.typeofSymbol` + * `coreAliasing` -> `selfContained` + * `undefinedToVoid` -> `spec.undefinedToVoid` + * `undeclaredVariableCheck` -> `validation.undeclaredVariableCheck` + * `specPropertyLiterals` -> `minification.propertyLiterals` + * `specMemberExpressionLiterals` -> `minification.memberExpressionLiterals` + +## 2.13.7 + + * **Bug Fix** + * Don't realias variables that are already declared in optional `coreAliasing` transformer. + +## 2.13.6 + + * **Bug Fix** + * Add `NewExpression` as a valid parent for parentheses insertion for `ConditionalExpression`. + +## 2.13.5 + + * **Bug Fix** + * Allow rest parameters to be destructuring patterns. + * **Internal** + * Upgrade `kexec` to `1.1.0`. + +## 2.13.4 + + * **Bug Fix** + * Fix ordering of destructuring and default params. + * Fix loop body scope. + * Fix `for...of` transformation not retaining it's scope. + * Add destructuring assignment support to scope tracking. + * **Polish** + * More reliable newlines for pretty printing variable declarations. + +## 2.13.3 + + * **Internal** + * Add `coverage` and `vendor` to npmignore. + +## 2.13.2 + + * **Bug Fix** + * Fix `super` inside of nested functions. + * **Internal** + * Move let scoping TDZ into a separate transformer until it's more solid. + * Use `process.stdin.write` instead of `console.log` in `bin` to avoid sprintfification. + +## 2.13.1 + + * **New Feature** + * Temporal dead zone for block binding. + +## 2.13.0 + + * **New Feature** + * Block scoped functions. + * Add `--loose all` option. + * Add playground mallet operator thanks to [@jridgewell](https://github.com/jridgewell). + * **Bug Fix** + * Rewrote large parts of the let scoping transformer. Now passes all known tests. + * **Internal** + * Even more optimisations thanks to the awesome [@gaearon](https://github.com/gaearon). + * Upgrade `acorn-6to5`. + * Fixes exponentation operator thanks to [@charliesome](https://github.com/charliesome). + * Fix flow optional parameters with types. + * Upgrade `chokidar` to `0.12.6`. + * Upgrade `commander` to `2.6.0`. + * Upgrade `core-js` to `0.4.5`. + * Upgrade `estraverse` to `1.9.1`. + * Upgrade `jshint` to `2.5.11`. + * Upgrade `regenerator` to `0.8.9`. + * Upgrade `regexpu` to `1.0.0`. + * Upgrade `source-map` to `0.1.43`. + * Upgrade `source-map-support` to `0.2.9`. + * Upgrade `browserify` to `8.1.1`. + * Upgrade `chai` to `1.10.0`. + * Upgrade `istanbul` to `0.3.5`. + * Upgrade `mocha` to `2.1.0`. + * Upgrade `uglify-js` to `2.4.16`. + +## 2.12.6 + + * **Bug Fix** + * Add missing flow type traversal keys. + +## 2.12.5 + + * **Internal** + * Fix incorrect `for...in` loop still causing `ember-script` issues. + +## 2.12.4 + + * **Polish** + * Rest parameters now allocate the array before populating. + * **Internal** + * `for...in` loops have been changed to optimized `for` loops - better performance and no enumeration of protoype keys. + * Parts of the code generator have now been optimized thanks to [gaearon](https://github.com/gaearon). + +## 2.12.3 + + * **Spec Compliancy** + * Optional `typeof` transformer checks for `undefined` before passing it to the helper. + * Class methods are now named. + +## 2.12.2 + + * **Internal** + * Exclude nodes in function parameters and catch clauses from `isReferenced` check. + +## 2.12.1 + + * **Internal** + * Add `.jsx` to list of allowed extensions. + +## 2.12.0 + + * **Bug Fix** + * Support non-string JSX literals. + * **New Feature** + * Loose mode for some transformers that enables non-spec behavior. + * **Internal** + * Uglify `--mangle sort` has been added to the build script, cutting minified scripts in half. + +## 2.11.4 + + * **Internal** + * Make all dependency versions fixed. + +## 2.11.3 + + * **Bug Fix** + * Allow a string to be passed as the `optional` option. + +## 2.11.2 + + * **Bug Fix** + * Support esprima-style catch clause handlers. + * **Polish** + * Don't print a stacktrace for syntax errors in the CLI. + +## 2.11.1 + + * **Bug Fix** + * Remove stray `console.log` outputting debug code. + * Remove `Dict` from `coreAliasing`. + +## 2.11.0 + + * **Bug Fix** + * Fix unnecessary IIFE in default parameters on method calls. + * Add support for supers inside of closures. + * **New Feature** + * Add `--keep-module-id-extensions`/`keepModuleIdExtensions` option to keep extensions in module ids. + * **Polish** + * Special case single argument spread properties in `super` inside classes. + * Don't use a variable declaration for class declaration IFFE. + * Rename `inherits` helper parameters. + * `coreAliasing` transformer now aliases `Promise`, `Set`, `Map` and more. Thanks [@AluisioASG](https://github.com/AluisioASG). + +## 2.10.1 + + * **Internal** + * Upgrade `core-js` to `0.4.4`. + * **New Feature** + * Added `--include-regenerator` option to CLI and `includeRegenerator` option to API that includes the regenerator runtime if necessary. + +## 2.10.0 + + * **New Feature** + * Add `classesFastSuper` optional transformer that doesn't support parent getters and prototype changing. + * Add `forOfFast` transformer that speeds up `for...of` on arrays but produces more code. + * Add `--react-compat` to `bin/6to5`. + * **Spec Compliancy** + * Disallow setters without a single parameter. + * Add `configurable` and `writable` to defined properties. + * Use define instead of assignment for class methods. + * **Polish** + * Fix bin name in `6to5-node --help`. + * Fix shorthand `--whitelist` name in `bin/6to5`. + * **Internal** + * Hot code optimisation of traversal etc thanks to [gaearon](https://github.com/gaearon). + +## 2.9.4 + + * **Bug Fix** + * Support `UpdateExpression`s as `MemberExpression` objects. + +## 2.9.3 + + * **Bug Fix** + * Remove `exportsWildcard` helper in favor of `defaults`. + +## 2.9.2 + + * **Bug Fix** + * Pass `exports` to `exportWildcard` helper to allow for use inside the optional runtime. + +## 2.9.1 + + * **Bug Fix** + * Fix runtime generator breaking the helper inclusion loop. + +## 2.9.0 + + * **Internal** + * Upgrade `acorn-6to5`. + * Now supports destructuring shorthand properties. + +## 2.8.1 + + * **Bug Fix** + * Fix computed accessors on object literals. + +## 2.8.0 + + * **New Feature** + * Add `commonStrict`, `amdStrict` and `umdStrict` module formatters that remove `module.exports` interop assignment. + * Add `--indent` option to the 6to5 CLI. + +## 2.7.4 + + * **Polish** + * Inherit assignments from their declaration in destructuring. + * Properly align multi-declarator variable declarations. + +## 2.7.3 + + * **Polish** + * Indent and add newlines to `React.createElement` calls in `react` transformer. + * Remove `Object.assign` calls and replace it with an `extends` helper. + +## 2.7.1 + + * **New Feature** + * Expose `version` on browser and node API. + * **Internal** + * Upgrade `core-js` to 0.4.1 + +## 2.7.0 + + * **Spec Compliancy** + * Disallow reassignments of imports. + * **New Feature** + * `reactCompat` option to enable pre-v0.12 react components. + +## 2.6.3 + + * **Bug Fix** + * Fix 2.6.0 regression caused by faulty export default from a source handling. + +## 2.6.2 + + * **Bug Fix** + * Fix rest parameter keys when on functions with params. + +## 2.6.1 + + * **Bug Fix** + * Fix rest parameter arguments key. + +## 2.6.0 + + * **Bug Fix** + * Better handling of number literal property keys. + * Handle `NewExpression` paren insertion edegcases better. + * **Internal** + * Fix incorrect AST node `identifier("this")`. + * Better `toIdentifier` method that handles reserved words. + * Upgrade `acorn-6to5`. + * Fix exponentiation operator precedence. + * Fix line terminators after async contextual keywords. + * Add semicolons as class elements inside of a class body. + * Upgrade to `core-js` 4.0.0. + * Upgrade to `regenerator` 0.8.3. + * Fix non-loop labeled statements. + * **New Feature** + * Basic destructuring defaults + * Add `.es` to list of supported extensions. + * Add optional `typeofSymbol` transformer. + * Use a `for` loop for rest parameters instead of `Array.prototype.slice`. + * **Polish** + * Move `"use strict";` to inside module bodies instead of at the top of the file. + * Better handling of dynamic imports. + * **Spec Compliancy** + * Class inheritance now has a `function` or `null` type check. + * Add `interopRequireWildcard` around wildcard imports and exports to handle non-object exports. + +## 2.5.0 + + * Remove `noDuplicateProperties` transformer. + * Better generated UIDs based on nodes. + * Default parameters now use `arguments[i]`, conditionals and variable declarations instead of using long-form if statements. + +## 2.4.10 + + * Upgrade `acorn-6to5`. + +## 2.4.9 + + * Upgrade `acorn-6to5`. + * Add optional `protoToAssign` transformer. + * Fix missing properties from computed property keys. + * Make ES7 comprehensions `let` variables. + +## 2.4.8 + + * Make `require("6to5/register")` work with browserify - [#370](https://github.com/6to5/6to5/pull/370). Thanks [@hughsk](https://github.com/hughsk)! + +## 2.4.7 + + * Upgrade `acorn-6to5`. + +## 2.4.6 + + * Move `coreAliasing` and `undefinedToVoid` transformers down to catch `moduleFormatter` transforms. + +## 2.4.5 + + * Avoid printing comments if they've already been output. + +## 2.4.4 + + * Add `module` type to browser build `