Compare commits

...

9 Commits

Author SHA1 Message Date
Sebastian McKenzie
afdde8b3a7 v2.2.0 2014-12-29 12:48:45 +11:00
Sebastian McKenzie
918ddb4124 disable system tests temporairly 2014-12-29 11:16:47 +11:00
Sebastian McKenzie
18739ad78b remove unused variable 2014-12-29 11:15:24 +11:00
Sebastian McKenzie
74a84e2473 fix duplicate comments being output, breaking code 2014-12-29 11:13:50 +11:00
Sebastian McKenzie
52ffc65a06 make system module formatter modules anonymous by default - fixes #347 2014-12-29 01:55:30 +11:00
Sebastian McKenzie
d4fbfbbe47 Merge pull request #348 from guybedford/system
System test adjustments
2014-12-29 01:51:16 +11:00
guybedford
295bab544b re-exporting in setters 2014-12-28 14:43:56 +02:00
guybedford
cfe05ca10d exported variable declarations hoist along with functions 2014-12-28 14:41:32 +02:00
guybedford
da72182219 make modules anonymous 2014-12-28 14:38:52 +02:00
33 changed files with 52 additions and 38 deletions

View File

@@ -2,6 +2,11 @@
Gaps between patch versions are faulty/broken releases.
## 2.2.0
* Make `system` module formatter modules anonymous by default.
* Fix duplicate comments being output, breaking code.
## 2.1.0
* Add `cache` option to register hook.

View File

@@ -20,7 +20,8 @@ commander.option("-b, --blacklist [blacklist]", "Blacklist of transformers to NO
commander.option("-o, --out-file [out]", "Compile all input files into a single file");
commander.option("-d, --out-dir [out]", "Compile an input directory of modules into an output directory");
commander.option("-c, --remove-comments", "Remove comments from the compiled code", false);
commander.option("-a, --amd-module-ids", "Insert module id in AMD modules", false);
commander.option("-a, --amd-module-ids", "Insert module id in AMD modules", false); // todo: remove in 3.0.0
commander.option("-m, --module-ids", "Insert module id in modules", false);
commander.on("--help", function(){
var outKeys = function (title, obj) {
@@ -89,9 +90,9 @@ if (errors.length) {
exports.opts = {
sourceMapName: commander.outFile,
amdModuleIds: commander.amdModuleIds,
experimental: commander.experimental,
playground: commander.playground,
moduleIds: commander.amdModuleIds || commander.moduleIds,
blacklist: commander.blacklist,
whitelist: commander.whitelist,
sourceMap: commander.sourceMaps || commander.sourceMapsInline,

View File

@@ -152,10 +152,10 @@ result.ast;
// Default: `sourceRoot` option.
moduleRoot: "my-app",
// If truthy, insert an explicit id for each defined AMD module.
// By default, AMD modules are anonymous.
// If truthy, insert an explicit id for each defined AMD/System module.
// By default, AMD/System modules are anonymous.
// Default: false
amdModuleIds: true,
moduleIds: true,
// Optionally replace all 6to5 helper declarations with a referenece to this
// variable. If set to `true` then the default namespace is used "to5Runtime".

View File

@@ -35,6 +35,7 @@ File.normaliseOptions = function (opts) {
experimental: false,
playground: false,
whitespace: true,
moduleIds: opts.amdModuleIds || false,
blacklist: [],
whitelist: [],
sourceMap: false,

View File

@@ -55,7 +55,7 @@ AMDFormatter.prototype.transform = function (ast) {
*/
AMDFormatter.prototype.getModuleName = function () {
if (this.file.opts.amdModuleIds) {
if (this.file.opts.moduleIds) {
return DefaultFormatter.prototype.getModuleName.apply(this, arguments);
} else {
return null;

View File

@@ -1,25 +1,20 @@
module.exports = SystemFormatter;
var DefaultFormatter = require("./_default");
var AMDFormatter = require("./amd");
var traverse = require("../../traverse");
var util = require("../../util");
var t = require("../../types");
var _ = require("lodash");
var AMDFormatter = require("./amd");
var traverse = require("../../traverse");
var util = require("../../util");
var t = require("../../types");
var _ = require("lodash");
function SystemFormatter(file) {
this.exportIdentifier = file.generateUidIdentifier("export");
this.noInteropRequire = true;
AMDFormatter.apply(this, arguments);
this.moduleNameLiteral = t.literal(this.getModuleName());
}
util.inherits(SystemFormatter, AMDFormatter);
SystemFormatter.prototype.getModuleName = DefaultFormatter.prototype.getModuleName;
SystemFormatter.prototype._exportsWildcard = function (objectIdentifier) {
var leftIdentifier = t.identifier("i");
var valIdentifier = t.memberExpression(objectIdentifier, leftIdentifier, true);
@@ -67,8 +62,11 @@ SystemFormatter.prototype.buildRunnerSetters = function () {
SystemFormatter.prototype.transform = function (ast) {
var program = ast.program;
var moduleName = this.getModuleName();
var moduleNameLiteral = t.literal(moduleName);
var runner = util.template("system", {
MODULE_NAME: this.moduleNameLiteral,
MODULE_NAME: moduleNameLiteral,
MODULE_DEPENDENCIES: t.arrayExpression(this.buildDependencyLiterals()),
EXPORT_IDENTIFIER: this.exportIdentifier,
SETTERS: this.buildRunnerSetters(),
@@ -76,6 +74,8 @@ SystemFormatter.prototype.transform = function (ast) {
}, true);
var handlerBody = runner.expression.arguments[2].body.body;
if (!moduleName) runner.expression.arguments.shift();
var returnStatement = handlerBody.pop();
// hoist up function declarations for circular references

View File

@@ -293,8 +293,9 @@ t.removeComments = function (child) {
};
t.inheritsComments = function (child, parent) {
child.leadingComments = _.compact([].concat(child.leadingComments, parent.leadingComments));
child.trailingComments = _.compact([].concat(child.trailingComments, parent.trailingComments));
_.each(["leadingComments", "trailingComments"], function (key) {
child[key] = _.uniq(_.compact([].concat(child[key], parent[key])));
});
return child;
};

View File

@@ -1,7 +1,7 @@
{
"name": "6to5",
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
"version": "2.1.0",
"version": "2.2.0",
"author": "Sebastian McKenzie <sebmck@gmail.com>",
"homepage": "https://github.com/6to5/6to5",
"repository": {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/exports-default/expected", [], function (_export) {
System.register([], function (_export) {
_export("default", foo);
function foo() {}

View File

@@ -1,16 +1,12 @@
System.register("es6-modules-system/exports-from/expected", ["foo"], function (_export) {
System.register(["foo"], function (_export) {
var _foo;
return {
setters: [function (m) {
_foo = m
}],
execute: function () {
"use strict";
for (var i in _foo) {
_export(i, _foo[i])
}
_export("foo", _foo.foo);
_export("foo", _foo.foo);
@@ -24,6 +20,10 @@ System.register("es6-modules-system/exports-from/expected", ["foo"], function (_
_export("default", _foo.foo);
_export("bar", _foo.bar);
}],
execute: function () {
"use strict";
}
};
});

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/exports-named/expected", [], function (_export) {
System.register([], function (_export) {
return {
setters: [],
execute: function () {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/exports-variable/expected", [], function (_export) {
System.register([], function (_export) {
_export("foo7", foo7);
function foo7() {}

View File

@@ -1,9 +1,11 @@
import { isEven } from "./evens";
export function nextOdd(n) {
return isEven(n) ? n + 1 : n + 2;
return p = isEven(n) ? n + 1 : n + 2;
}
export var p = 5;
export var isOdd = (function (isEven) {
return function (n) {
return !isEven(n);

View File

@@ -1,8 +1,10 @@
System.register("es6-modules-system/hoist-function-exports/expected", ["./evens"], function (_export) {
System.register(["./evens"], function (_export) {
var p;
_export("nextOdd", nextOdd);
function nextOdd(n) {
return isEven(n) ? n + 1 : n + 2;
return _export("p", p = isEven(n) ? n + 1 : n + 2);
}
var _evens;
@@ -14,6 +16,8 @@ System.register("es6-modules-system/hoist-function-exports/expected", ["./evens"
"use strict";
var isEven = _evens.isEven;
_export("p", p = 5);
var isOdd = _export("isOdd", (function (isEven) {
return function (n) {
return !isEven(n);

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/imports-default/expected", ["foo"], function (_export) {
System.register([], function (_export) {
var _foo;
return {
setters: [function (m) {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/imports-glob/expected", ["foo"], function (_export) {
System.register(["foo"], function (_export) {
var _foo;
return {
setters: [function (m) {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/imports-mixing/expected", ["foo"], function (_export) {
System.register(["foo"], function (_export) {
var _foo;
return {
setters: [function (m) {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/imports-named/expected", ["foo"], function (_export) {
System.register(["foo"], function (_export) {
var _foo;
return {
setters: [function (m) {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/imports/expected", ["foo", "foo-bar", "./directory/foo-bar"], function (_export) {
System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) {
var _foo, _fooBar, _directoryFooBar;
return {
setters: [function (m) {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/overview/expected", ["foo", "foo-bar", "./directory/foo-bar"], function (_export) {
System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) {
var _foo, _fooBar, _directoryFooBar;
return {
setters: [function (m) {

View File

@@ -1,4 +1,4 @@
System.register("es6-modules-system/remap/expected", [], function (_export) {
System.register([], function (_export) {
return {
setters: [],
execute: function () {