Created
April 30, 2015 19:50
-
-
Save AutoSponge/75e9c1c1a2a73ecdf7e5 to your computer and use it in GitHub Desktop.
jspm bundler error
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(global) { | |
var defined = {}; | |
// indexOf polyfill for IE8 | |
var indexOf = Array.prototype.indexOf || function(item) { | |
for (var i = 0, l = this.length; i < l; i++) | |
if (this[i] === item) | |
return i; | |
return -1; | |
} | |
function dedupe(deps) { | |
var newDeps = []; | |
for (var i = 0, l = deps.length; i < l; i++) | |
if (indexOf.call(newDeps, deps[i]) == -1) | |
newDeps.push(deps[i]) | |
return newDeps; | |
} | |
function register(name, deps, declare, execute) { | |
if (typeof name != 'string') | |
throw "System.register provided no module name"; | |
var entry; | |
// dynamic | |
if (typeof declare == 'boolean') { | |
entry = { | |
declarative: false, | |
deps: deps, | |
execute: execute, | |
executingRequire: declare | |
}; | |
} | |
else { | |
// ES6 declarative | |
entry = { | |
declarative: true, | |
deps: deps, | |
declare: declare | |
}; | |
} | |
entry.name = name; | |
// we never overwrite an existing define | |
if (!(name in defined)) | |
defined[name] = entry; | |
entry.deps = dedupe(entry.deps); | |
// we have to normalize dependencies | |
// (assume dependencies are normalized for now) | |
// entry.normalizedDeps = entry.deps.map(normalize); | |
entry.normalizedDeps = entry.deps; | |
} | |
function buildGroups(entry, groups) { | |
groups[entry.groupIndex] = groups[entry.groupIndex] || []; | |
if (indexOf.call(groups[entry.groupIndex], entry) != -1) | |
return; | |
groups[entry.groupIndex].push(entry); | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
var depEntry = defined[depName]; | |
// not in the registry means already linked / ES6 | |
if (!depEntry || depEntry.evaluated) | |
continue; | |
// now we know the entry is in our unlinked linkage group | |
var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative); | |
// the group index of an entry is always the maximum | |
if (depEntry.groupIndex === undefined || depEntry.groupIndex < depGroupIndex) { | |
// if already in a group, remove from the old group | |
if (depEntry.groupIndex !== undefined) { | |
groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1); | |
// if the old group is empty, then we have a mixed depndency cycle | |
if (groups[depEntry.groupIndex].length == 0) | |
throw new TypeError("Mixed dependency cycle detected"); | |
} | |
depEntry.groupIndex = depGroupIndex; | |
} | |
buildGroups(depEntry, groups); | |
} | |
} | |
function link(name) { | |
var startEntry = defined[name]; | |
startEntry.groupIndex = 0; | |
var groups = []; | |
buildGroups(startEntry, groups); | |
var curGroupDeclarative = !!startEntry.declarative == groups.length % 2; | |
for (var i = groups.length - 1; i >= 0; i--) { | |
var group = groups[i]; | |
for (var j = 0; j < group.length; j++) { | |
var entry = group[j]; | |
// link each group | |
if (curGroupDeclarative) | |
linkDeclarativeModule(entry); | |
else | |
linkDynamicModule(entry); | |
} | |
curGroupDeclarative = !curGroupDeclarative; | |
} | |
} | |
// module binding records | |
var moduleRecords = {}; | |
function getOrCreateModuleRecord(name) { | |
return moduleRecords[name] || (moduleRecords[name] = { | |
name: name, | |
dependencies: [], | |
exports: {}, // start from an empty module and extend | |
importers: [] | |
}) | |
} | |
function linkDeclarativeModule(entry) { | |
// only link if already not already started linking (stops at circular) | |
if (entry.module) | |
return; | |
var module = entry.module = getOrCreateModuleRecord(entry.name); | |
var exports = entry.module.exports; | |
var declaration = entry.declare.call(global, function(name, value) { | |
module.locked = true; | |
exports[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](exports); | |
} | |
} | |
module.locked = false; | |
return value; | |
}); | |
module.setters = declaration.setters; | |
module.execute = declaration.execute; | |
if (!module.setters || !module.execute) | |
throw new TypeError("Invalid System.register form for " + entry.name); | |
// now link all the module dependencies | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
var depEntry = defined[depName]; | |
var depModule = moduleRecords[depName]; | |
// work out how to set depExports based on scenarios... | |
var depExports; | |
if (depModule) { | |
depExports = depModule.exports; | |
} | |
else if (depEntry && !depEntry.declarative) { | |
if (depEntry.module.exports && depEntry.module.exports.__esModule) | |
depExports = depEntry.module.exports; | |
else | |
depExports = { 'default': depEntry.module.exports, __useDefault: true }; | |
} | |
// in the module registry | |
else if (!depEntry) { | |
depExports = load(depName); | |
} | |
// we have an entry -> link | |
else { | |
linkDeclarativeModule(depEntry); | |
depModule = depEntry.module; | |
depExports = depModule.exports; | |
} | |
// only declarative modules have dynamic bindings | |
if (depModule && depModule.importers) { | |
depModule.importers.push(module); | |
module.dependencies.push(depModule); | |
} | |
else | |
module.dependencies.push(null); | |
// run the setter for this dependency | |
if (module.setters[i]) | |
module.setters[i](depExports); | |
} | |
} | |
// An analog to loader.get covering execution of all three layers (real declarative, simulated declarative, simulated dynamic) | |
function getModule(name) { | |
var exports; | |
var entry = defined[name]; | |
if (!entry) { | |
exports = load(name); | |
if (!exports) | |
throw new Error("Unable to load dependency " + name + "."); | |
} | |
else { | |
if (entry.declarative) | |
ensureEvaluated(name, []); | |
else if (!entry.evaluated) | |
linkDynamicModule(entry); | |
exports = entry.module.exports; | |
} | |
if ((!entry || entry.declarative) && exports && exports.__useDefault) | |
return exports['default']; | |
return exports; | |
} | |
function linkDynamicModule(entry) { | |
if (entry.module) | |
return; | |
var exports = {}; | |
var module = entry.module = { exports: exports, id: entry.name }; | |
// AMD requires execute the tree first | |
if (!entry.executingRequire) { | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
var depEntry = defined[depName]; | |
if (depEntry) | |
linkDynamicModule(depEntry); | |
} | |
} | |
// now execute | |
entry.evaluated = true; | |
var output = entry.execute.call(global, function(name) { | |
for (var i = 0, l = entry.deps.length; i < l; i++) { | |
if (entry.deps[i] != name) | |
continue; | |
return getModule(entry.normalizedDeps[i]); | |
} | |
throw new TypeError('Module ' + name + ' not declared as a dependency.'); | |
}, exports, module); | |
if (output) | |
module.exports = output; | |
} | |
/* | |
* Given a module, and the list of modules for this current branch, | |
* ensure that each of the dependencies of this module is evaluated | |
* (unless one is a circular dependency already in the list of seen | |
* modules, in which case we execute it) | |
* | |
* Then we evaluate the module itself depth-first left to right | |
* execution to match ES6 modules | |
*/ | |
function ensureEvaluated(moduleName, seen) { | |
var entry = defined[moduleName]; | |
// if already seen, that means it's an already-evaluated non circular dependency | |
if (!entry || entry.evaluated || !entry.declarative) | |
return; | |
// this only applies to declarative modules which late-execute | |
seen.push(moduleName); | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
if (indexOf.call(seen, depName) == -1) { | |
if (!defined[depName]) | |
load(depName); | |
else | |
ensureEvaluated(depName, seen); | |
} | |
} | |
if (entry.evaluated) | |
return; | |
entry.evaluated = true; | |
entry.module.execute.call(global); | |
} | |
// magical execution function | |
var modules = {}; | |
function load(name) { | |
if (modules[name]) | |
return modules[name]; | |
var entry = defined[name]; | |
// first we check if this module has already been defined in the registry | |
if (!entry) | |
throw "Module " + name + " not present."; | |
// recursively ensure that the module and all its | |
// dependencies are linked (with dependency group handling) | |
link(name); | |
// now handle dependency execution in correct order | |
ensureEvaluated(name, []); | |
// remove from the registry | |
defined[name] = undefined; | |
var module = entry.module.exports; | |
if (!module || !entry.declarative && module.__esModule !== true) | |
module = { 'default': module, __useDefault: true }; | |
// return the defined module object | |
return modules[name] = module; | |
}; | |
return function(mains, declare) { | |
var System; | |
var System = { | |
register: register, | |
get: load, | |
set: function(name, module) { | |
modules[name] = module; | |
}, | |
newModule: function(module) { | |
return module; | |
}, | |
global: global | |
}; | |
System.set('@empty', {}); | |
declare(System); | |
for (var i = 0; i < mains.length; i++) | |
load(mains[i]); | |
} | |
})(typeof window != 'undefined' ? window : global) | |
/* (['mainModule'], function(System) { | |
System.register(...); | |
}); */ | |
(['src/index'], function(System) { | |
System.register("src/index", [], false, function(__require, __exports, __module) { | |
System.get("@@global-helpers").prepareGlobal(__module.id, []); | |
(function() { | |
var add = this["add"]; | |
var sum = this["sum"]; | |
var add = (a, b) => a + b; | |
var sum = (...args) => args.reduce(add, 0); | |
console.log(sum(1, 2, 3, 4, 5)); | |
this["add"] = add; | |
this["sum"] = sum; | |
}).call(System.global); | |
return System.get("@@global-helpers").retrieveGlobal(__module.id, false); | |
}); | |
(function() { | |
var loader = System; | |
if (typeof indexOf == 'undefined') | |
indexOf = Array.prototype.indexOf; | |
function readGlobalProperty(p, value) { | |
var pParts = p.split('.'); | |
while (pParts.length) | |
value = value[pParts.shift()]; | |
return value; | |
} | |
var ignoredGlobalProps = ['sessionStorage', 'localStorage', 'clipboardData', 'frames', 'external']; | |
var hasOwnProperty = loader.global.hasOwnProperty; | |
function iterateGlobals(callback) { | |
if (Object.keys) | |
Object.keys(loader.global).forEach(callback); | |
else | |
for (var g in loader.global) { | |
if (!hasOwnProperty.call(loader.global, g)) | |
continue; | |
callback(g); | |
} | |
} | |
function forEachGlobal(callback) { | |
iterateGlobals(function(globalName) { | |
if (indexOf.call(ignoredGlobalProps, globalName) != -1) | |
return; | |
try { | |
var value = loader.global[globalName]; | |
} | |
catch(e) { | |
ignoredGlobalProps.push(globalName); | |
} | |
callback(globalName, value); | |
}); | |
} | |
var moduleGlobals = {}; | |
var globalSnapshot; | |
loader.set('@@global-helpers', loader.newModule({ | |
prepareGlobal: function(moduleName, deps) { | |
// first, we add all the dependency modules to the global | |
for (var i = 0; i < deps.length; i++) { | |
var moduleGlobal = moduleGlobals[deps[i]]; | |
if (moduleGlobal) | |
for (var m in moduleGlobal) | |
loader.global[m] = moduleGlobal[m]; | |
} | |
// now store a complete copy of the global object | |
// in order to detect changes | |
globalSnapshot = {}; | |
forEachGlobal(function(name, value) { | |
globalSnapshot[name] = value; | |
}); | |
}, | |
retrieveGlobal: function(moduleName, exportName, init) { | |
var singleGlobal; | |
var multipleExports; | |
var exports = {}; | |
// run init | |
if (init) | |
singleGlobal = init.call(loader.global); | |
// check for global changes, creating the globalObject for the module | |
// if many globals, then a module object for those is created | |
// if one global, then that is the module directly | |
else if (exportName) { | |
var firstPart = exportName.split('.')[0]; | |
singleGlobal = readGlobalProperty(exportName, loader.global); | |
exports[firstPart] = loader.global[firstPart]; | |
} | |
else { | |
forEachGlobal(function(name, value) { | |
if (globalSnapshot[name] === value) | |
return; | |
if (typeof value === 'undefined') | |
return; | |
exports[name] = value; | |
if (typeof singleGlobal !== 'undefined') { | |
if (!multipleExports && singleGlobal !== value) | |
multipleExports = true; | |
} | |
else { | |
singleGlobal = value; | |
} | |
}); | |
} | |
moduleGlobals[moduleName] = exports; | |
return multipleExports ? exports : singleGlobal; | |
} | |
})); | |
})(); | |
}); | |
//# sourceMappingURL=bundle.js.map |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
System.config({ | |
"baseURL": "/experiments", | |
"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.1.13", | |
"babel-runtime": "npm:babel-runtime@5.1.13", | |
"core-js": "npm:core-js@0.9.5", | |
"github:jspm/nodelibs-process@0.1.1": { | |
"process": "npm:process@0.10.1" | |
}, | |
"npm:core-js@0.9.5": { | |
"process": "github:jspm/nodelibs-process@0.1.1" | |
} | |
} | |
}); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(global) { | |
var defined = {}; | |
// indexOf polyfill for IE8 | |
var indexOf = Array.prototype.indexOf || function(item) { | |
for (var i = 0, l = this.length; i < l; i++) | |
if (this[i] === item) | |
return i; | |
return -1; | |
} | |
function dedupe(deps) { | |
var newDeps = []; | |
for (var i = 0, l = deps.length; i < l; i++) | |
if (indexOf.call(newDeps, deps[i]) == -1) | |
newDeps.push(deps[i]) | |
return newDeps; | |
} | |
function register(name, deps, declare, execute) { | |
if (typeof name != 'string') | |
throw "System.register provided no module name"; | |
var entry; | |
// dynamic | |
if (typeof declare == 'boolean') { | |
entry = { | |
declarative: false, | |
deps: deps, | |
execute: execute, | |
executingRequire: declare | |
}; | |
} | |
else { | |
// ES6 declarative | |
entry = { | |
declarative: true, | |
deps: deps, | |
declare: declare | |
}; | |
} | |
entry.name = name; | |
// we never overwrite an existing define | |
if (!(name in defined)) | |
defined[name] = entry; | |
entry.deps = dedupe(entry.deps); | |
// we have to normalize dependencies | |
// (assume dependencies are normalized for now) | |
// entry.normalizedDeps = entry.deps.map(normalize); | |
entry.normalizedDeps = entry.deps; | |
} | |
function buildGroups(entry, groups) { | |
groups[entry.groupIndex] = groups[entry.groupIndex] || []; | |
if (indexOf.call(groups[entry.groupIndex], entry) != -1) | |
return; | |
groups[entry.groupIndex].push(entry); | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
var depEntry = defined[depName]; | |
// not in the registry means already linked / ES6 | |
if (!depEntry || depEntry.evaluated) | |
continue; | |
// now we know the entry is in our unlinked linkage group | |
var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative); | |
// the group index of an entry is always the maximum | |
if (depEntry.groupIndex === undefined || depEntry.groupIndex < depGroupIndex) { | |
// if already in a group, remove from the old group | |
if (depEntry.groupIndex !== undefined) { | |
groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1); | |
// if the old group is empty, then we have a mixed depndency cycle | |
if (groups[depEntry.groupIndex].length == 0) | |
throw new TypeError("Mixed dependency cycle detected"); | |
} | |
depEntry.groupIndex = depGroupIndex; | |
} | |
buildGroups(depEntry, groups); | |
} | |
} | |
function link(name) { | |
var startEntry = defined[name]; | |
startEntry.groupIndex = 0; | |
var groups = []; | |
buildGroups(startEntry, groups); | |
var curGroupDeclarative = !!startEntry.declarative == groups.length % 2; | |
for (var i = groups.length - 1; i >= 0; i--) { | |
var group = groups[i]; | |
for (var j = 0; j < group.length; j++) { | |
var entry = group[j]; | |
// link each group | |
if (curGroupDeclarative) | |
linkDeclarativeModule(entry); | |
else | |
linkDynamicModule(entry); | |
} | |
curGroupDeclarative = !curGroupDeclarative; | |
} | |
} | |
// module binding records | |
var moduleRecords = {}; | |
function getOrCreateModuleRecord(name) { | |
return moduleRecords[name] || (moduleRecords[name] = { | |
name: name, | |
dependencies: [], | |
exports: {}, // start from an empty module and extend | |
importers: [] | |
}) | |
} | |
function linkDeclarativeModule(entry) { | |
// only link if already not already started linking (stops at circular) | |
if (entry.module) | |
return; | |
var module = entry.module = getOrCreateModuleRecord(entry.name); | |
var exports = entry.module.exports; | |
var declaration = entry.declare.call(global, function(name, value) { | |
module.locked = true; | |
exports[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](exports); | |
} | |
} | |
module.locked = false; | |
return value; | |
}); | |
module.setters = declaration.setters; | |
module.execute = declaration.execute; | |
if (!module.setters || !module.execute) | |
throw new TypeError("Invalid System.register form for " + entry.name); | |
// now link all the module dependencies | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
var depEntry = defined[depName]; | |
var depModule = moduleRecords[depName]; | |
// work out how to set depExports based on scenarios... | |
var depExports; | |
if (depModule) { | |
depExports = depModule.exports; | |
} | |
else if (depEntry && !depEntry.declarative) { | |
if (depEntry.module.exports && depEntry.module.exports.__esModule) | |
depExports = depEntry.module.exports; | |
else | |
depExports = { 'default': depEntry.module.exports, __useDefault: true }; | |
} | |
// in the module registry | |
else if (!depEntry) { | |
depExports = load(depName); | |
} | |
// we have an entry -> link | |
else { | |
linkDeclarativeModule(depEntry); | |
depModule = depEntry.module; | |
depExports = depModule.exports; | |
} | |
// only declarative modules have dynamic bindings | |
if (depModule && depModule.importers) { | |
depModule.importers.push(module); | |
module.dependencies.push(depModule); | |
} | |
else | |
module.dependencies.push(null); | |
// run the setter for this dependency | |
if (module.setters[i]) | |
module.setters[i](depExports); | |
} | |
} | |
// An analog to loader.get covering execution of all three layers (real declarative, simulated declarative, simulated dynamic) | |
function getModule(name) { | |
var exports; | |
var entry = defined[name]; | |
if (!entry) { | |
exports = load(name); | |
if (!exports) | |
throw new Error("Unable to load dependency " + name + "."); | |
} | |
else { | |
if (entry.declarative) | |
ensureEvaluated(name, []); | |
else if (!entry.evaluated) | |
linkDynamicModule(entry); | |
exports = entry.module.exports; | |
} | |
if ((!entry || entry.declarative) && exports && exports.__useDefault) | |
return exports['default']; | |
return exports; | |
} | |
function linkDynamicModule(entry) { | |
if (entry.module) | |
return; | |
var exports = {}; | |
var module = entry.module = { exports: exports, id: entry.name }; | |
// AMD requires execute the tree first | |
if (!entry.executingRequire) { | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
var depEntry = defined[depName]; | |
if (depEntry) | |
linkDynamicModule(depEntry); | |
} | |
} | |
// now execute | |
entry.evaluated = true; | |
var output = entry.execute.call(global, function(name) { | |
for (var i = 0, l = entry.deps.length; i < l; i++) { | |
if (entry.deps[i] != name) | |
continue; | |
return getModule(entry.normalizedDeps[i]); | |
} | |
throw new TypeError('Module ' + name + ' not declared as a dependency.'); | |
}, exports, module); | |
if (output) | |
module.exports = output; | |
} | |
/* | |
* Given a module, and the list of modules for this current branch, | |
* ensure that each of the dependencies of this module is evaluated | |
* (unless one is a circular dependency already in the list of seen | |
* modules, in which case we execute it) | |
* | |
* Then we evaluate the module itself depth-first left to right | |
* execution to match ES6 modules | |
*/ | |
function ensureEvaluated(moduleName, seen) { | |
var entry = defined[moduleName]; | |
// if already seen, that means it's an already-evaluated non circular dependency | |
if (!entry || entry.evaluated || !entry.declarative) | |
return; | |
// this only applies to declarative modules which late-execute | |
seen.push(moduleName); | |
for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { | |
var depName = entry.normalizedDeps[i]; | |
if (indexOf.call(seen, depName) == -1) { | |
if (!defined[depName]) | |
load(depName); | |
else | |
ensureEvaluated(depName, seen); | |
} | |
} | |
if (entry.evaluated) | |
return; | |
entry.evaluated = true; | |
entry.module.execute.call(global); | |
} | |
// magical execution function | |
var modules = {}; | |
function load(name) { | |
if (modules[name]) | |
return modules[name]; | |
var entry = defined[name]; | |
// first we check if this module has already been defined in the registry | |
if (!entry) | |
throw "Module " + name + " not present."; | |
// recursively ensure that the module and all its | |
// dependencies are linked (with dependency group handling) | |
link(name); | |
// now handle dependency execution in correct order | |
ensureEvaluated(name, []); | |
// remove from the registry | |
defined[name] = undefined; | |
var module = entry.module.exports; | |
if (!module || !entry.declarative && module.__esModule !== true) | |
module = { 'default': module, __useDefault: true }; | |
// return the defined module object | |
return modules[name] = module; | |
}; | |
return function(mains, declare) { | |
var System; | |
var System = { | |
register: register, | |
get: load, | |
set: function(name, module) { | |
modules[name] = module; | |
}, | |
newModule: function(module) { | |
return module; | |
}, | |
global: global | |
}; | |
System.set('@empty', {}); | |
declare(System); | |
for (var i = 0; i < mains.length; i++) | |
load(mains[i]); | |
} | |
})(typeof window != 'undefined' ? window : global) | |
/* (['mainModule'], function(System) { | |
System.register(...); | |
}); */ | |
(['src/index'], function(System) { | |
System.register("src/fake", [], false, function(__require, __exports, __module) { | |
System.get("@@global-helpers").prepareGlobal(__module.id, []); | |
(function() {}).call(System.global); | |
return System.get("@@global-helpers").retrieveGlobal(__module.id, false); | |
}); | |
System.register('src/index', ['src/fake'], function (_export) { | |
var add, sum; | |
return { | |
setters: [function (_srcFake) {}], | |
execute: function () { | |
'use strict'; | |
add = function add(a, b) { | |
return a + b; | |
}; | |
sum = function sum() { | |
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | |
args[_key] = arguments[_key]; | |
} | |
return args.reduce(add, 0); | |
}; | |
console.log(sum(1, 2, 3, 4, 5)); | |
} | |
}; | |
}); | |
(function() { | |
var loader = System; | |
if (typeof indexOf == 'undefined') | |
indexOf = Array.prototype.indexOf; | |
function readGlobalProperty(p, value) { | |
var pParts = p.split('.'); | |
while (pParts.length) | |
value = value[pParts.shift()]; | |
return value; | |
} | |
var ignoredGlobalProps = ['sessionStorage', 'localStorage', 'clipboardData', 'frames', 'external']; | |
var hasOwnProperty = loader.global.hasOwnProperty; | |
function iterateGlobals(callback) { | |
if (Object.keys) | |
Object.keys(loader.global).forEach(callback); | |
else | |
for (var g in loader.global) { | |
if (!hasOwnProperty.call(loader.global, g)) | |
continue; | |
callback(g); | |
} | |
} | |
function forEachGlobal(callback) { | |
iterateGlobals(function(globalName) { | |
if (indexOf.call(ignoredGlobalProps, globalName) != -1) | |
return; | |
try { | |
var value = loader.global[globalName]; | |
} | |
catch(e) { | |
ignoredGlobalProps.push(globalName); | |
} | |
callback(globalName, value); | |
}); | |
} | |
var moduleGlobals = {}; | |
var globalSnapshot; | |
loader.set('@@global-helpers', loader.newModule({ | |
prepareGlobal: function(moduleName, deps) { | |
// first, we add all the dependency modules to the global | |
for (var i = 0; i < deps.length; i++) { | |
var moduleGlobal = moduleGlobals[deps[i]]; | |
if (moduleGlobal) | |
for (var m in moduleGlobal) | |
loader.global[m] = moduleGlobal[m]; | |
} | |
// now store a complete copy of the global object | |
// in order to detect changes | |
globalSnapshot = {}; | |
forEachGlobal(function(name, value) { | |
globalSnapshot[name] = value; | |
}); | |
}, | |
retrieveGlobal: function(moduleName, exportName, init) { | |
var singleGlobal; | |
var multipleExports; | |
var exports = {}; | |
// run init | |
if (init) | |
singleGlobal = init.call(loader.global); | |
// check for global changes, creating the globalObject for the module | |
// if many globals, then a module object for those is created | |
// if one global, then that is the module directly | |
else if (exportName) { | |
var firstPart = exportName.split('.')[0]; | |
singleGlobal = readGlobalProperty(exportName, loader.global); | |
exports[firstPart] = loader.global[firstPart]; | |
} | |
else { | |
forEachGlobal(function(name, value) { | |
if (globalSnapshot[name] === value) | |
return; | |
if (typeof value === 'undefined') | |
return; | |
exports[name] = value; | |
if (typeof singleGlobal !== 'undefined') { | |
if (!multipleExports && singleGlobal !== value) | |
multipleExports = true; | |
} | |
else { | |
singleGlobal = value; | |
} | |
}); | |
} | |
moduleGlobals[moduleName] = exports; | |
return multipleExports ? exports : singleGlobal; | |
} | |
})); | |
})(); | |
}); | |
//# sourceMappingURL=bundle.js.mapc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import {} from 'src/fake'; | |
var add = (a, b) => a + b; | |
var sum = (...args) => args.reduce(add, 0); | |
console.log(sum(1,2,3,4,5)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<script src="jspm_packages/system.js"></script> | |
<script src="config.js"></script> | |
<script> | |
System.import('src/index'); | |
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var add = (a, b) => a + b; | |
var sum = (...args) => args.reduce(add, 0); | |
console.log(sum(1,2,3,4,5)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "experiments", | |
"version": "0.1.0", | |
"description": "", | |
"main": "index.js", | |
"scripts": { | |
"test": "echo \"Error: no test specified\" && exit 1", | |
"build:js": "node_modules/.bin/jspm bundle-sfx src/index bundle.js", | |
}, | |
"keywords": [ | |
"experimental" | |
], | |
"author": "Paul Grenier <pgrenier@gmail.com> (http://autosponge.github.io/)", | |
"devDependencies": { | |
"http-server": "^0.8.0", | |
"jspm": "^0.15.5", | |
"live-reload": "^1.1.0", | |
"parallelshell": "^1.1.1", | |
"watch": "^0.16.0" | |
}, | |
"dependencies": { | |
"es5-shim": "^4.1.1" | |
}, | |
"jspm": { | |
"directories": {}, | |
"dependencies": {}, | |
"devDependencies": { | |
"babel": "npm:babel-core@^5.1.13", | |
"babel-runtime": "npm:babel-runtime@^5.1.13", | |
"core-js": "npm:core-js@^0.9.4" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment