aboutsummaryrefslogtreecommitdiff
path: root/node_modules/babel-generator/lib
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-04-20 03:09:25 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-04-24 16:14:29 +0200
commit82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch)
tree965f6eb89b84d65a62b49008fd972c004832ccd1 /node_modules/babel-generator/lib
parente6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (diff)
Reorganize module loading.
We now use webpack instead of SystemJS, effectively bundling modules into one file (plus commons chunks) for every entry point. This results in a much smaller extension size (almost half). Furthermore we use yarn/npm even for extension run-time dependencies. This relieves us from manually vendoring and building dependencies. It's also easier to understand for new developers familiar with node.
Diffstat (limited to 'node_modules/babel-generator/lib')
-rw-r--r--node_modules/babel-generator/lib/buffer.js47
-rw-r--r--node_modules/babel-generator/lib/generators/base.js7
-rw-r--r--node_modules/babel-generator/lib/generators/expressions.js15
-rw-r--r--node_modules/babel-generator/lib/generators/flow.js10
-rw-r--r--node_modules/babel-generator/lib/generators/jsx.js8
-rw-r--r--node_modules/babel-generator/lib/generators/modules.js11
-rw-r--r--node_modules/babel-generator/lib/generators/statements.js3
-rw-r--r--node_modules/babel-generator/lib/generators/template-literals.js2
-rw-r--r--node_modules/babel-generator/lib/generators/types.js20
-rw-r--r--node_modules/babel-generator/lib/index.js22
-rw-r--r--node_modules/babel-generator/lib/node/parentheses.js119
-rw-r--r--node_modules/babel-generator/lib/node/whitespace.js25
-rw-r--r--node_modules/babel-generator/lib/printer.js2
-rw-r--r--node_modules/babel-generator/lib/source-map.js48
14 files changed, 150 insertions, 189 deletions
diff --git a/node_modules/babel-generator/lib/buffer.js b/node_modules/babel-generator/lib/buffer.js
index 8919d2c29..40b6c2561 100644
--- a/node_modules/babel-generator/lib/buffer.js
+++ b/node_modules/babel-generator/lib/buffer.js
@@ -6,9 +6,9 @@ var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
-var _trimEnd = require("lodash/trimEnd");
+var _trimRight = require("trim-right");
-var _trimEnd2 = _interopRequireDefault(_trimEnd);
+var _trimRight2 = _interopRequireDefault(_trimRight);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -38,19 +38,36 @@ var Buffer = function () {
Buffer.prototype.get = function get() {
this._flush();
- return {
- code: (0, _trimEnd2.default)(this._buf.join("")),
- map: this._map ? this._map.get() : null
+ var map = this._map;
+ var result = {
+ code: (0, _trimRight2.default)(this._buf.join("")),
+ map: null,
+ rawMappings: map && map.getRawMappings()
};
+
+ if (map) {
+ Object.defineProperty(result, "map", {
+ configurable: true,
+ enumerable: true,
+ get: function get() {
+ return this.map = map.get();
+ },
+ set: function set(value) {
+ Object.defineProperty(this, "map", { value: value, writable: true });
+ }
+ });
+ }
+
+ return result;
};
Buffer.prototype.append = function append(str) {
this._flush();
- var _sourcePosition = this._sourcePosition;
- var line = _sourcePosition.line;
- var column = _sourcePosition.column;
- var filename = _sourcePosition.filename;
- var identifierName = _sourcePosition.identifierName;
+ var _sourcePosition = this._sourcePosition,
+ line = _sourcePosition.line,
+ column = _sourcePosition.column,
+ filename = _sourcePosition.filename,
+ identifierName = _sourcePosition.identifierName;
this._append(str, line, column, identifierName, filename);
};
@@ -58,11 +75,11 @@ var Buffer = function () {
Buffer.prototype.queue = function queue(str) {
if (str === "\n") while (this._queue.length > 0 && SPACES_RE.test(this._queue[0][0])) {
this._queue.shift();
- }var _sourcePosition2 = this._sourcePosition;
- var line = _sourcePosition2.line;
- var column = _sourcePosition2.column;
- var filename = _sourcePosition2.filename;
- var identifierName = _sourcePosition2.identifierName;
+ }var _sourcePosition2 = this._sourcePosition,
+ line = _sourcePosition2.line,
+ column = _sourcePosition2.column,
+ filename = _sourcePosition2.filename,
+ identifierName = _sourcePosition2.identifierName;
this._queue.unshift([str, line, column, identifierName, filename]);
};
diff --git a/node_modules/babel-generator/lib/generators/base.js b/node_modules/babel-generator/lib/generators/base.js
index 3be3a8a53..938022f76 100644
--- a/node_modules/babel-generator/lib/generators/base.js
+++ b/node_modules/babel-generator/lib/generators/base.js
@@ -31,11 +31,14 @@ function Program(node) {
function BlockStatement(node) {
this.token("{");
this.printInnerComments(node);
- if (node.body.length) {
+
+ var hasDirectives = node.directives && node.directives.length;
+
+ if (node.body.length || hasDirectives) {
this.newline();
this.printSequence(node.directives, node, { indent: true });
- if (node.directives && node.directives.length) this.newline();
+ if (hasDirectives) this.newline();
this.printSequence(node.body, node, { indent: true });
this.removeTrailingNewline();
diff --git a/node_modules/babel-generator/lib/generators/expressions.js b/node_modules/babel-generator/lib/generators/expressions.js
index c6c070788..d65fa78c0 100644
--- a/node_modules/babel-generator/lib/generators/expressions.js
+++ b/node_modules/babel-generator/lib/generators/expressions.js
@@ -13,6 +13,7 @@ exports.ThisExpression = ThisExpression;
exports.Super = Super;
exports.Decorator = Decorator;
exports.CallExpression = CallExpression;
+exports.Import = Import;
exports.EmptyStatement = EmptyStatement;
exports.ExpressionStatement = ExpressionStatement;
exports.AssignmentPattern = AssignmentPattern;
@@ -21,10 +22,6 @@ exports.BindExpression = BindExpression;
exports.MemberExpression = MemberExpression;
exports.MetaProperty = MetaProperty;
-var _isNumber = require("lodash/isNumber");
-
-var _isNumber2 = _interopRequireDefault(_isNumber);
-
var _babelTypes = require("babel-types");
var t = _interopRequireWildcard(_babelTypes);
@@ -35,8 +32,6 @@ var n = _interopRequireWildcard(_node);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
function UnaryExpression(node) {
if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof") {
this.word(node.operator);
@@ -142,6 +137,10 @@ function CallExpression(node) {
this.token(")");
}
+function Import() {
+ this.word("import");
+}
+
function buildYieldAwait(keyword) {
return function (node) {
this.word(keyword);
@@ -173,6 +172,8 @@ function ExpressionStatement(node) {
function AssignmentPattern(node) {
this.print(node.left, node);
+ if (node.left.optional) this.token("?");
+ this.print(node.left.typeAnnotation, node);
this.space();
this.token("=");
this.space();
@@ -219,7 +220,7 @@ function MemberExpression(node) {
}
var computed = node.computed;
- if (t.isLiteral(node.property) && (0, _isNumber2.default)(node.property.value)) {
+ if (t.isLiteral(node.property) && typeof node.property.value === "number") {
computed = true;
}
diff --git a/node_modules/babel-generator/lib/generators/flow.js b/node_modules/babel-generator/lib/generators/flow.js
index cc52ffe83..077f75cf8 100644
--- a/node_modules/babel-generator/lib/generators/flow.js
+++ b/node_modules/babel-generator/lib/generators/flow.js
@@ -321,11 +321,19 @@ function ObjectTypeAnnotation(node) {
this.space();
this.printJoin(props, node, {
+ addNewlines: function addNewlines(leading) {
+ if (leading && !props[0]) return 1;
+ },
+
indent: true,
statement: true,
iterator: function iterator() {
if (props.length !== 1) {
- _this.semicolon();
+ if (_this.format.flowCommaSeparator) {
+ _this.token(",");
+ } else {
+ _this.semicolon();
+ }
_this.space();
}
}
diff --git a/node_modules/babel-generator/lib/generators/jsx.js b/node_modules/babel-generator/lib/generators/jsx.js
index 492452899..6632db1c2 100644
--- a/node_modules/babel-generator/lib/generators/jsx.js
+++ b/node_modules/babel-generator/lib/generators/jsx.js
@@ -12,6 +12,7 @@ exports.JSXNamespacedName = JSXNamespacedName;
exports.JSXMemberExpression = JSXMemberExpression;
exports.JSXSpreadAttribute = JSXSpreadAttribute;
exports.JSXExpressionContainer = JSXExpressionContainer;
+exports.JSXSpreadChild = JSXSpreadChild;
exports.JSXText = JSXText;
exports.JSXElement = JSXElement;
exports.JSXOpeningElement = JSXOpeningElement;
@@ -57,6 +58,13 @@ function JSXExpressionContainer(node) {
this.token("}");
}
+function JSXSpreadChild(node) {
+ this.token("{");
+ this.token("...");
+ this.print(node.expression, node);
+ this.token("}");
+}
+
function JSXText(node) {
this.token(node.value);
}
diff --git a/node_modules/babel-generator/lib/generators/modules.js b/node_modules/babel-generator/lib/generators/modules.js
index 3dcda7cca..608053540 100644
--- a/node_modules/babel-generator/lib/generators/modules.js
+++ b/node_modules/babel-generator/lib/generators/modules.js
@@ -19,6 +19,11 @@ var t = _interopRequireWildcard(_babelTypes);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function ImportSpecifier(node) {
+ if (node.importKind === "type" || node.importKind === "typeof") {
+ this.word(node.importKind);
+ this.space();
+ }
+
this.print(node.imported, node);
if (node.local && node.local.name !== node.imported.name) {
this.space();
@@ -58,12 +63,6 @@ function ExportAllDeclaration(node) {
this.word("export");
this.space();
this.token("*");
- if (node.exported) {
- this.space();
- this.word("as");
- this.space();
- this.print(node.exported, node);
- }
this.space();
this.word("from");
this.space();
diff --git a/node_modules/babel-generator/lib/generators/statements.js b/node_modules/babel-generator/lib/generators/statements.js
index 1866fe00f..d74b19102 100644
--- a/node_modules/babel-generator/lib/generators/statements.js
+++ b/node_modules/babel-generator/lib/generators/statements.js
@@ -115,13 +115,12 @@ var buildForXStatement = function buildForXStatement(op) {
if (op === "await") {
this.word("await");
this.space();
- op = "of";
}
this.token("(");
this.print(node.left, node);
this.space();
- this.word(op);
+ this.word(op === "await" ? "of" : op);
this.space();
this.print(node.right, node);
this.token(")");
diff --git a/node_modules/babel-generator/lib/generators/template-literals.js b/node_modules/babel-generator/lib/generators/template-literals.js
index c1cdabbe0..32467eb42 100644
--- a/node_modules/babel-generator/lib/generators/template-literals.js
+++ b/node_modules/babel-generator/lib/generators/template-literals.js
@@ -15,9 +15,7 @@ function TemplateElement(node, parent) {
var value = (isFirst ? "`" : "}") + node.value.raw + (isLast ? "`" : "${");
- if (!isFirst) this.space();
this.token(value);
- if (!isLast) this.space();
}
function TemplateLiteral(node) {
diff --git a/node_modules/babel-generator/lib/generators/types.js b/node_modules/babel-generator/lib/generators/types.js
index 4dfa83735..d5e081fd2 100644
--- a/node_modules/babel-generator/lib/generators/types.js
+++ b/node_modules/babel-generator/lib/generators/types.js
@@ -128,21 +128,31 @@ function NullLiteral() {
function NumericLiteral(node) {
var raw = this.getPossibleRaw(node);
-
- this.number(raw == null ? node.value + "" : raw);
+ var value = node.value + "";
+ if (raw == null) {
+ this.number(value);
+ } else if (this.format.minified) {
+ this.number(raw.length < value.length ? raw : value);
+ } else {
+ this.number(raw);
+ }
}
function StringLiteral(node, parent) {
var raw = this.getPossibleRaw(node);
- if (raw != null) {
+ if (!this.format.minified && raw != null) {
this.token(raw);
return;
}
- var val = (0, _jsesc2.default)(node.value, {
+ var opts = {
quotes: t.isJSX(parent) ? "double" : this.format.quotes,
wrap: true
- });
+ };
+ if (this.format.jsonCompatibleStrings) {
+ opts.json = true;
+ }
+ var val = (0, _jsesc2.default)(node.value, opts);
return this.token(val);
} \ No newline at end of file
diff --git a/node_modules/babel-generator/lib/index.js b/node_modules/babel-generator/lib/index.js
index 6c7037c35..e8da09ebf 100644
--- a/node_modules/babel-generator/lib/index.js
+++ b/node_modules/babel-generator/lib/index.js
@@ -43,11 +43,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
var Generator = function (_Printer) {
(0, _inherits3.default)(Generator, _Printer);
- function Generator(ast, opts, code) {
+ function Generator(ast) {
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var code = arguments[2];
(0, _classCallCheck3.default)(this, Generator);
- opts = opts || {};
-
var tokens = ast.tokens || [];
var format = normalizeOptions(code, opts, tokens);
var map = opts.sourceMaps ? new _sourceMap2.default(opts, code) : null;
@@ -83,11 +83,13 @@ function normalizeOptions(code, opts, tokens) {
minified: opts.minified,
concise: opts.concise,
quotes: opts.quotes || findCommonStringDelimiter(code, tokens),
+ jsonCompatibleStrings: opts.jsonCompatibleStrings,
indent: {
adjustMultilineComment: true,
style: style,
base: 0
- }
+ },
+ flowCommaSeparator: opts.flowCommaSeparator
};
if (format.minified) {
@@ -103,10 +105,10 @@ function normalizeOptions(code, opts, tokens) {
}
if (format.compact === "auto") {
- format.compact = code.length > 100000;
+ format.compact = code.length > 500000;
if (format.compact) {
- console.error("[BABEL] " + messages.get("codeGeneratorDeopt", opts.filename, "100KB"));
+ console.error("[BABEL] " + messages.get("codeGeneratorDeopt", opts.filename, "500KB"));
}
}
@@ -123,7 +125,7 @@ function findCommonStringDelimiter(code, tokens) {
return DEFAULT_STRING_DELIMITER;
}
- var occurences = {
+ var occurrences = {
single: 0,
double: 0
};
@@ -136,15 +138,15 @@ function findCommonStringDelimiter(code, tokens) {
var raw = code.slice(token.start, token.end);
if (raw[0] === "'") {
- occurences.single++;
+ occurrences.single++;
} else {
- occurences.double++;
+ occurrences.double++;
}
checked++;
if (checked >= 3) break;
}
- if (occurences.single > occurences.double) {
+ if (occurrences.single > occurrences.double) {
return "single";
} else {
return "double";
diff --git a/node_modules/babel-generator/lib/node/parentheses.js b/node_modules/babel-generator/lib/node/parentheses.js
index 10eba8e2c..471af71cb 100644
--- a/node_modules/babel-generator/lib/node/parentheses.js
+++ b/node_modules/babel-generator/lib/node/parentheses.js
@@ -5,6 +5,7 @@ exports.AwaitExpression = exports.FunctionTypeAnnotation = undefined;
exports.NullableTypeAnnotation = NullableTypeAnnotation;
exports.UpdateExpression = UpdateExpression;
exports.ObjectExpression = ObjectExpression;
+exports.DoExpression = DoExpression;
exports.Binary = Binary;
exports.BinaryExpression = BinaryExpression;
exports.SequenceExpression = SequenceExpression;
@@ -55,27 +56,19 @@ function NullableTypeAnnotation(node, parent) {
exports.FunctionTypeAnnotation = NullableTypeAnnotation;
function UpdateExpression(node, parent) {
- if (t.isMemberExpression(parent) && parent.object === node) {
- return true;
- }
-
- return false;
+ return t.isMemberExpression(parent) && parent.object === node;
}
function ObjectExpression(node, parent, printStack) {
return isFirstInStatement(printStack, { considerArrow: true });
}
-function Binary(node, parent) {
- if ((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) {
- return true;
- }
-
- if (t.isUnaryLike(parent)) {
- return true;
- }
+function DoExpression(node, parent, printStack) {
+ return isFirstInStatement(printStack);
+}
- if (t.isMemberExpression(parent) && parent.object === node) {
+function Binary(node, parent) {
+ if ((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node || t.isUnaryLike(parent) || t.isMemberExpression(parent) && parent.object === node || t.isAwaitExpression(parent)) {
return true;
}
@@ -86,11 +79,7 @@ function Binary(node, parent) {
var nodeOp = node.operator;
var nodePos = PRECEDENCE[nodeOp];
- if (parentPos > nodePos) {
- return true;
- }
-
- if (parentPos === nodePos && parent.right === node && !t.isLogicalExpression(parent)) {
+ if (parentPos === nodePos && parent.right === node && !t.isLogicalExpression(parent) || parentPos > nodePos) {
return true;
}
}
@@ -99,49 +88,12 @@ function Binary(node, parent) {
}
function BinaryExpression(node, parent) {
- if (node.operator === "in") {
- if (t.isVariableDeclarator(parent)) {
- return true;
- }
-
- if (t.isFor(parent)) {
- return true;
- }
- }
-
- return false;
+ return node.operator === "in" && (t.isVariableDeclarator(parent) || t.isFor(parent));
}
function SequenceExpression(node, parent) {
- if (t.isForStatement(parent)) {
- return false;
- }
-
- if (t.isExpressionStatement(parent) && parent.expression === node) {
- return false;
- }
-
- if (t.isReturnStatement(parent)) {
- return false;
- }
-
- if (t.isThrowStatement(parent)) {
- return false;
- }
-
- if (t.isSwitchStatement(parent) && parent.discriminant === node) {
- return false;
- }
-
- if (t.isWhileStatement(parent) && parent.test === node) {
- return false;
- }
- if (t.isIfStatement(parent) && parent.test === node) {
- return false;
- }
-
- if (t.isForInStatement(parent) && parent.right === node) {
+ if (t.isForStatement(parent) || t.isThrowStatement(parent) || t.isReturnStatement(parent) || t.isIfStatement(parent) && parent.test === node || t.isWhileStatement(parent) && parent.test === node || t.isForInStatement(parent) && parent.right === node || t.isSwitchStatement(parent) && parent.discriminant === node || t.isExpressionStatement(parent) && parent.expression === node) {
return false;
}
@@ -158,15 +110,7 @@ function ClassExpression(node, parent, printStack) {
}
function UnaryLike(node, parent) {
- if (t.isMemberExpression(parent, { object: node })) {
- return true;
- }
-
- if (t.isCallExpression(parent, { callee: node }) || t.isNewExpression(parent, { callee: node })) {
- return true;
- }
-
- return false;
+ return t.isMemberExpression(parent, { object: node }) || t.isCallExpression(parent, { callee: node }) || t.isNewExpression(parent, { callee: node });
}
function FunctionExpression(node, parent, printStack) {
@@ -174,15 +118,7 @@ function FunctionExpression(node, parent, printStack) {
}
function ArrowFunctionExpression(node, parent) {
- if (t.isExportDeclaration(parent)) {
- return true;
- }
-
- if (t.isBinaryExpression(parent) || t.isLogicalExpression(parent)) {
- return true;
- }
-
- if (t.isUnaryExpression(parent)) {
+ if (t.isExportDeclaration(parent) || t.isBinaryExpression(parent) || t.isLogicalExpression(parent) || t.isUnaryExpression(parent) || t.isTaggedTemplateExpression(parent)) {
return true;
}
@@ -190,15 +126,7 @@ function ArrowFunctionExpression(node, parent) {
}
function ConditionalExpression(node, parent) {
- if (t.isUnaryLike(parent)) {
- return true;
- }
-
- if (t.isBinary(parent)) {
- return true;
- }
-
- if (t.isConditionalExpression(parent, { test: node })) {
+ if (t.isUnaryLike(parent) || t.isBinary(parent) || t.isConditionalExpression(parent, { test: node }) || t.isAwaitExpression(parent)) {
return true;
}
@@ -214,27 +142,18 @@ function AssignmentExpression(node) {
}
function isFirstInStatement(printStack) {
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var _ref$considerArrow = _ref.considerArrow;
- var considerArrow = _ref$considerArrow === undefined ? false : _ref$considerArrow;
- var _ref$considerDefaultE = _ref.considerDefaultExports;
- var considerDefaultExports = _ref$considerDefaultE === undefined ? false : _ref$considerDefaultE;
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+ _ref$considerArrow = _ref.considerArrow,
+ considerArrow = _ref$considerArrow === undefined ? false : _ref$considerArrow,
+ _ref$considerDefaultE = _ref.considerDefaultExports,
+ considerDefaultExports = _ref$considerDefaultE === undefined ? false : _ref$considerDefaultE;
var i = printStack.length - 1;
var node = printStack[i];
i--;
var parent = printStack[i];
while (i > 0) {
- if (t.isExpressionStatement(parent, { expression: node })) {
- return true;
- }
-
- if (considerDefaultExports && t.isExportDefaultDeclaration(parent, { declaration: node })) {
- return true;
- }
-
- if (considerArrow && t.isArrowFunctionExpression(parent, { body: node })) {
+ if (t.isExpressionStatement(parent, { expression: node }) || t.isTaggedTemplateExpression(parent) || considerDefaultExports && t.isExportDefaultDeclaration(parent, { declaration: node }) || considerArrow && t.isArrowFunctionExpression(parent, { body: node })) {
return true;
}
diff --git a/node_modules/babel-generator/lib/node/whitespace.js b/node_modules/babel-generator/lib/node/whitespace.js
index d3690a84a..f39e75525 100644
--- a/node_modules/babel-generator/lib/node/whitespace.js
+++ b/node_modules/babel-generator/lib/node/whitespace.js
@@ -1,13 +1,5 @@
"use strict";
-var _isBoolean = require("lodash/isBoolean");
-
-var _isBoolean2 = _interopRequireDefault(_isBoolean);
-
-var _each = require("lodash/each");
-
-var _each2 = _interopRequireDefault(_each);
-
var _map = require("lodash/map");
var _map2 = _interopRequireDefault(_map);
@@ -144,19 +136,14 @@ exports.list = {
}
};
-(0, _each2.default)({
- Function: true,
- Class: true,
- Loop: true,
- LabeledStatement: true,
- SwitchStatement: true,
- TryStatement: true
-}, function (amounts, type) {
- if ((0, _isBoolean2.default)(amounts)) {
+[["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function (_ref) {
+ var type = _ref[0],
+ amounts = _ref[1];
+
+ if (typeof amounts === "boolean") {
amounts = { after: amounts, before: amounts };
}
-
- (0, _each2.default)([type].concat(t.FLIPPED_ALIAS_KEYS[type] || []), function (type) {
+ [type].concat(t.FLIPPED_ALIAS_KEYS[type] || []).forEach(function (type) {
exports.nodes[type] = function () {
return amounts;
};
diff --git a/node_modules/babel-generator/lib/printer.js b/node_modules/babel-generator/lib/printer.js
index 058ad72b7..8eb3eddac 100644
--- a/node_modules/babel-generator/lib/printer.js
+++ b/node_modules/babel-generator/lib/printer.js
@@ -340,8 +340,6 @@ var Printer = function () {
};
Printer.prototype.getPossibleRaw = function getPossibleRaw(node) {
- if (this.format.minified) return;
-
var extra = node.extra;
if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) {
return extra.raw;
diff --git a/node_modules/babel-generator/lib/source-map.js b/node_modules/babel-generator/lib/source-map.js
index 192d8bca0..b44d1f080 100644
--- a/node_modules/babel-generator/lib/source-map.js
+++ b/node_modules/babel-generator/lib/source-map.js
@@ -22,27 +22,38 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
var SourceMap = function () {
function SourceMap(opts, code) {
- var _this = this;
-
(0, _classCallCheck3.default)(this, SourceMap);
+ this._cachedMap = null;
+ this._code = code;
this._opts = opts;
- this._map = new _sourceMap2.default.SourceMapGenerator({
- file: opts.sourceMapTarget,
- sourceRoot: opts.sourceRoot
- });
+ this._rawMappings = [];
+ }
- if (typeof code === "string") {
- this._map.setSourceContent(opts.sourceFileName, code);
- } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") {
- (0, _keys2.default)(code).forEach(function (sourceFileName) {
- _this._map.setSourceContent(sourceFileName, code[sourceFileName]);
+ SourceMap.prototype.get = function get() {
+ if (!this._cachedMap) {
+ var map = this._cachedMap = new _sourceMap2.default.SourceMapGenerator({
+ file: this._opts.sourceMapTarget,
+ sourceRoot: this._opts.sourceRoot
});
+
+ var code = this._code;
+ if (typeof code === "string") {
+ map.setSourceContent(this._opts.sourceFileName, code);
+ } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") {
+ (0, _keys2.default)(code).forEach(function (sourceFileName) {
+ map.setSourceContent(sourceFileName, code[sourceFileName]);
+ });
+ }
+
+ this._rawMappings.forEach(map.addMapping, map);
}
- }
- SourceMap.prototype.get = function get() {
- return this._map.toJSON();
+ return this._cachedMap.toJSON();
+ };
+
+ SourceMap.prototype.getRawMappings = function getRawMappings() {
+ return this._rawMappings.slice();
};
SourceMap.prototype.mark = function mark(generatedLine, generatedColumn, line, column, identifierName, filename) {
@@ -52,18 +63,19 @@ var SourceMap = function () {
return;
}
+ this._cachedMap = null;
this._lastGenLine = generatedLine;
this._lastSourceLine = line;
this._lastSourceColumn = column;
- this._map.addMapping({
- name: identifierName,
+ this._rawMappings.push({
+ name: identifierName || undefined,
generated: {
line: generatedLine,
column: generatedColumn
},
- source: line == null ? null : filename || this._opts.sourceFileName,
- original: line == null ? null : {
+ source: line == null ? undefined : filename || this._opts.sourceFileName,
+ original: line == null ? undefined : {
line: line,
column: column
}