Socket
Socket
Sign inDemoInstall

babel-core

Package Overview
Dependencies
65
Maintainers
1
Versions
257
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.3.0 to 4.4.1

21

bin/babel/index.js

@@ -18,2 +18,3 @@ #!/usr/bin/env node

commander.option("-c, --compact [mode]", "When set to \"auto\" compact is `true` when the input size exceeds 100KB. (auto|true|false)", "auto");
commander.option("-m, --modules [modules]", "Module formatter type to use [common]", "common");

@@ -117,18 +118,14 @@ commander.option("-l, --whitelist [whitelist]", "Whitelist of transformers to ONLY use", util.list);

modules: commander.modules,
compact: commander.compact,
loose: commander.loose
};
setTimeout(function () {
// this is just a hack to give `babel-minify` and other files including this
// time to modify `exports.opts`
var fn;
var fn;
if (commander.outDir) {
fn = require("./dir");
} else {
fn = require("./file");
}
if (commander.outDir) {
fn = require("./dir");
} else {
fn = require("./file");
}
fn(commander, filenames, exports.opts);
}, 0);
fn(commander, filenames, exports.opts);

@@ -16,2 +16,16 @@ # Changelog

## 4.4.0
* **New Feature**
* `/*** @jsx NAMESPACE **/` comments are now honored by the `react` transformer.
* `getModuleName` option.
* Infer function expression names. Thanks [@RReverser](https://github.com/RReverser)!
* **Bug Fix**
* Add proper control flow for tail recursion optimisation.
* **Internal**
* Remove useless `format` options and move the `format.compact` option to `format`.
* **Polish**
* Newline handling of the code generator has been heavily improved.
* Code generator now deopts whitespace if the input size is >100KB.
## 4.3.0

@@ -18,0 +32,0 @@

@@ -1,1 +0,1 @@

(function(global){var babelHelpers=global.babelHelpers={};babelHelpers.inherits=function(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)subClass.__proto__=superClass};babelHelpers.defaults=function(obj,defaults){var keys=Object.getOwnPropertyNames(defaults);for(var i=0;i<keys.length;i++){var key=keys[i];var value=Object.getOwnPropertyDescriptor(defaults,key);if(value&&value.configurable&&obj[key]===undefined){Object.defineProperty(obj,key,value)}}return obj};babelHelpers.prototypeProperties=function(child,staticProps,instanceProps){if(staticProps)Object.defineProperties(child,staticProps);if(instanceProps)Object.defineProperties(child.prototype,instanceProps)};babelHelpers.applyConstructor=function(Constructor,args){var instance=Object.create(Constructor.prototype);var result=Constructor.apply(instance,args);return result!=null&&(typeof result=="object"||typeof result=="function")?result:instance};babelHelpers.taggedTemplateLiteral=function(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))};babelHelpers.taggedTemplateLiteralLoose=function(strings,raw){strings.raw=raw;return strings};babelHelpers.interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj};babelHelpers.toArray=function(arr){return Array.isArray(arr)?arr:Array.from(arr)};babelHelpers.toConsumableArray=function(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}else{return Array.from(arr)}};babelHelpers.slicedToArray=function(arr,i){if(Array.isArray(arr)){return arr}else if(Symbol.iterator in Object(arr)){var _arr=[];for(var _iterator=arr[Symbol.iterator](),_step;!(_step=_iterator.next()).done;){_arr.push(_step.value);if(i&&_arr.length===i)break}return _arr}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}};babelHelpers.objectWithoutProperties=function(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i]}return target};babelHelpers.hasOwn=Object.prototype.hasOwnProperty;babelHelpers.slice=Array.prototype.slice;babelHelpers.bind=Function.prototype.bind;babelHelpers.defineProperty=function(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})};babelHelpers.asyncToGenerator=function(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){var callNext=step.bind(null,"next");var callThrow=step.bind(null,"throw");function step(key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(callNext,callThrow)}}callNext()})}};babelHelpers.interopRequireWildcard=function(obj){return obj&&obj.__esModule?obj:{"default":obj}};babelHelpers._typeof=function(obj){return obj&&obj.constructor===Symbol?"symbol":typeof obj};babelHelpers._extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};babelHelpers.get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined}else{return get(parent,property,receiver)}}else if("value"in desc&&desc.writable){return desc.value}else{var getter=desc.get;if(getter===undefined){return undefined}return getter.call(receiver)}};babelHelpers.set=function set(object,property,value,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent!==null){return set(parent,property,value,receiver)}}else if("value"in desc&&desc.writable){return desc.value=value}else{var setter=desc.set;if(setter!==undefined){return setter.call(receiver,value)}}};babelHelpers.classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}};babelHelpers.objectDestructuringEmpty=function(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")};babelHelpers.temporalUndefined={};babelHelpers.temporalAssertDefined=function(val,name,undef){if(val===undef){throw new ReferenceError(name+" is not defined - temporal dead zone")}return true};babelHelpers.tailCall=function(){function Tail(func,args,context){this.func=func;this.args=args;this.context=context}Tail.prototype._isTailDescriptor=true;var isRunning=false;return function(func,args,context){var result=new Tail(func,args,context);if(!isRunning){isRunning=true;do{result=result.func.apply(result.context,result.args)}while(result instanceof Tail||result&&result._isTailDescriptor);isRunning=false}return result}}();babelHelpers.selfGlobal=typeof global==="undefined"?self:global})(typeof global==="undefined"?self:global);
(function(global){var babelHelpers=global.babelHelpers={};babelHelpers.inherits=function(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)subClass.__proto__=superClass};babelHelpers.defaults=function(obj,defaults){var keys=Object.getOwnPropertyNames(defaults);for(var i=0;i<keys.length;i++){var key=keys[i];var value=Object.getOwnPropertyDescriptor(defaults,key);if(value&&value.configurable&&obj[key]===undefined){Object.defineProperty(obj,key,value)}}return obj};babelHelpers.prototypeProperties=function(child,staticProps,instanceProps){if(staticProps)Object.defineProperties(child,staticProps);if(instanceProps)Object.defineProperties(child.prototype,instanceProps)};babelHelpers.applyConstructor=function(Constructor,args){var instance=Object.create(Constructor.prototype);var result=Constructor.apply(instance,args);return result!=null&&(typeof result=="object"||typeof result=="function")?result:instance};babelHelpers.taggedTemplateLiteral=function(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))};babelHelpers.taggedTemplateLiteralLoose=function(strings,raw){strings.raw=raw;return strings};babelHelpers.interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj};babelHelpers.toArray=function(arr){return Array.isArray(arr)?arr:Array.from(arr)};babelHelpers.toConsumableArray=function(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}else{return Array.from(arr)}};babelHelpers.slicedToArray=function(arr,i){if(Array.isArray(arr)){return arr}else if(Symbol.iterator in Object(arr)){var _arr=[];for(var _iterator=arr[Symbol.iterator](),_step;!(_step=_iterator.next()).done;){_arr.push(_step.value);if(i&&_arr.length===i)break}return _arr}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}};babelHelpers.objectWithoutProperties=function(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i]}return target};babelHelpers.hasOwn=Object.prototype.hasOwnProperty;babelHelpers.slice=Array.prototype.slice;babelHelpers.bind=Function.prototype.bind;babelHelpers.defineProperty=function(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})};babelHelpers.asyncToGenerator=function(fn){return function(){var gen=fn.apply(this,arguments);return new Promise(function(resolve,reject){var callNext=step.bind(null,"next");var callThrow=step.bind(null,"throw");function step(key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(callNext,callThrow)}}callNext()})}};babelHelpers.interopRequireWildcard=function(obj){return obj&&obj.__esModule?obj:{"default":obj}};babelHelpers._typeof=function(obj){return obj&&obj.constructor===Symbol?"symbol":typeof obj};babelHelpers._extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};babelHelpers.get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined}else{return get(parent,property,receiver)}}else if("value"in desc&&desc.writable){return desc.value}else{var getter=desc.get;if(getter===undefined){return undefined}return getter.call(receiver)}};babelHelpers.set=function set(object,property,value,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent!==null){return set(parent,property,value,receiver)}}else if("value"in desc&&desc.writable){return desc.value=value}else{var setter=desc.set;if(setter!==undefined){return setter.call(receiver,value)}}};babelHelpers.classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}};babelHelpers.objectDestructuringEmpty=function(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")};babelHelpers.temporalUndefined={};babelHelpers.temporalAssertDefined=function(val,name,undef){if(val===undef){throw new ReferenceError(name+" is not defined - temporal dead zone")}return true};babelHelpers.selfGlobal=typeof global==="undefined"?self:global})(typeof global==="undefined"?self:global);

@@ -62,4 +62,3 @@ "use strict";

if (this.format.compact) return;
if (this.buf && !this.isLast([" ", "\n"])) {
if (this.buf && !this.isLast(" ") && !this.isLast("\n")) {
this.push(" ");

@@ -70,2 +69,3 @@ }

Buffer.prototype.removeLast = function (cha) {
if (this.format.compact) return;
if (!this.isLast(cha)) return;

@@ -78,3 +78,5 @@

Buffer.prototype.newline = function (i, removeLast) {
if (this.format.compact || this.format.concise) {
if (this.format.compact) return;
if (this.format.concise) {
this.space();

@@ -87,7 +89,10 @@ return;

if (isNumber(i)) {
if (this.endsWith("{\n")) i--;
if (this.endsWith(repeating("\n", i > 0 ? i : 0))) return;
i = Math.min(2, i);
while (i--) {
if (this.endsWith("{\n") || this.endsWith(":\n")) i--;
if (i <= 0) return;
while (i > 0) {
this._newline(removeLast);
i--;
}

@@ -105,7 +110,9 @@ return;

Buffer.prototype._newline = function (removeLast) {
// never allow more than two lines
if (this.endsWith("\n\n")) return;
// remove the last newline
if (removeLast && this.isLast("\n")) this.removeLast("\n");
this.removeLast(" ");
// remove whitespace if last character was a newline
this._removeSpacesAfterLastNewline();

@@ -118,2 +125,3 @@ this._push("\n");

*/
Buffer.prototype._removeSpacesAfterLastNewline = function () {

@@ -139,3 +147,3 @@ var lastNewlineIndex = this.buf.lastIndexOf("\n");

Buffer.prototype.push = function (str, noIndent) {
if (this._indent && !noIndent && str !== "\n") {
if (!this.format.compact && this._indent && !noIndent && str !== "\n") {
// we have an indent level and we aren't pushing a newline

@@ -148,3 +156,3 @@ var indent = this.getIndent();

// we've got a newline before us so prepend on the indentation
if (this.isLast("\n")) str = indent + str;
if (this.isLast("\n")) this._push(indent);
}

@@ -161,9 +169,9 @@

Buffer.prototype.endsWith = function (str) {
var d = this.buf.length - str.length;
return d >= 0 && this.buf.lastIndexOf(str) === d;
return this.buf.slice(-str.length) === str;
};
Buffer.prototype.isLast = function (cha, shouldTrimRight) {
Buffer.prototype.isLast = function (cha) {
if (this.format.compact) return false;
var buf = this.buf;
if (shouldTrimRight) buf = trimRight(buf);
var last = buf[buf.length - 1];

@@ -170,0 +178,0 @@

@@ -49,7 +49,5 @@ "use strict";

print(node.callee);
if (node.arguments.length || this.format.parentheses) {
this.push("(");
print.list(node.arguments);
this.push(")");
}
this.push("(");
print.list(node.arguments);
this.push(")");
};

@@ -56,0 +54,0 @@

@@ -65,2 +65,6 @@ "use strict";

if (node.isType) {
this.push("type ");
}
var specfiers = node.specifiers;

@@ -67,0 +71,0 @@ if (specfiers && specfiers.length) {

@@ -25,8 +25,3 @@ "use strict";

if (this.isLast("}")) this.space();
this.keyword("else");
if (this.format.format && !t.isBlockStatement(node.alternate)) {
this.push(" ");
}
this.push("else ");
print.indentOnComments(node.alternate);

@@ -157,3 +152,10 @@ }

this.push("{");
print.sequence(node.cases, { indent: true });
print.sequence(node.cases, {
indent: true,
addNewlines: function (leading, cas) {
if (!leading && node.cases[node.cases.length - 1] === cas) return -1;
}
});
this.push("}");

@@ -171,4 +173,6 @@ };

this.newline();
print.sequence(node.consequent, { indent: true });
if (node.consequent.length) {
this.newline();
print.sequence(node.consequent, { indent: true });
}
};

@@ -195,3 +199,3 @@

var sep = ",";
if (hasInits) {
if (!this.format.compact && hasInits) {
sep += "\n" + repeating(" ", node.kind.length + 1);

@@ -198,0 +202,0 @@ } else {

@@ -75,3 +75,3 @@ "use strict";

} else {
if (i > 0 && !self.format.compact) self.push(" ");
if (i > 0) self.push(" ");
print(elem);

@@ -78,0 +78,0 @@ if (i < len - 1) self.push(",");

@@ -15,5 +15,5 @@ "use strict";

var Position = require("./position");
var messages = require("../messages");
var Buffer = require("./buffer");
var extend = require("lodash/object/extend");
var merge = require("lodash/object/merge");
var each = require("lodash/collection/each");

@@ -32,3 +32,3 @@ var n = require("./node");

this.whitespace = new Whitespace(this.tokens, this.comments);
this.whitespace = new Whitespace(this.tokens, this.comments, this.format);
this.position = new Position;

@@ -52,7 +52,5 @@ this.map = new SourceMap(this.position, opts, code);

return merge({
parentheses: true,
var format = {
comments: opts.comments == null || opts.comments,
compact: false,
concise: false,
compact: opts.compact,
indent: {

@@ -63,3 +61,13 @@ adjustMultilineComment: true,

}
}, opts.format || {});
};
if (format.compact === "auto") {
format.compact = code.length > 100000; // 100KB
if (format.compact) {
console.error(messages.get("codeGeneratorDeopt", opts.filename, "100KB"));
}
}
return format;
};

@@ -122,7 +130,3 @@

opts = opts || {};
var sep = opts.separator || ", ";
if (self.format.compact) sep = ",";
opts.separator = sep;
opts.separator = opts.separator || ", ";
print.join(items, opts);

@@ -175,9 +179,10 @@ };

if (!leading) lines++; // always include at least a single line after
if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;
var needs = n.needsWhitespaceAfter;
if (leading) needs = n.needsWhitespaceBefore;
lines += needs(node, parent);
if (needs(node, parent)) lines++;
// generated nodes can't add starting file whitespace
if (!self.buffer.get()) lines = 0;
if (!self.buffer.buf) lines = 0;
}

@@ -236,2 +241,3 @@

statement: opts.statement,
addNewlines: opts.addNewlines,
after: function () {

@@ -312,2 +318,3 @@ if (opts.iterator) {

if (this.format.compact) return;
if (!this.format.comments) return;

@@ -314,0 +321,0 @@ if (!comments || !comments.length) return;

@@ -7,5 +7,5 @@ "use strict";

var parens = require("./parentheses");
var t = require("../../types");
var each = require("lodash/collection/each");
var some = require("lodash/collection/some");
var t = require("../../types");

@@ -46,10 +46,15 @@ var find = function (obj, node, parent) {

var lines = find(whitespace[type].nodes, node, parent);
if (lines) return lines;
var linesInfo = find(whitespace.nodes, node, parent);
each(find(whitespace[type].list, node, parent), function (expr) {
lines = Node.needsWhitespace(expr, node, type);
if (lines) return false;
});
return lines || 0;
if (!linesInfo) {
var items = find(whitespace.list, node, parent);
if (items) {
for (var i = 0; i < items.length; i++) {
linesInfo = Node.needsWhitespace(items[i], node, type);
if (linesInfo) break;
}
}
}
return (linesInfo && linesInfo[type]) || 0;
};

@@ -56,0 +61,0 @@

"use strict";
var t = require("../../types");
var each = require("lodash/collection/each");
var map = require("lodash/collection/map");
var isNumber = require("lodash/lang/isNumber");
var isBoolean = require("lodash/lang/isBoolean");
var each = require("lodash/collection/each");
var map = require("lodash/collection/map");
var t = require("../../types");
exports.before = {
nodes: {
Property: function (node, parent) {
if (parent.properties[0] === node) {
return 1;
}
},
var crawl = function (node, state) {
state = state || {};
SpreadProperty: function (node, parent) {
return exports.before.nodes.Property(node, parent);
},
if (t.isMemberExpression(node)) {
crawl(node.object, state);
if (node.computed) crawl(node.property, state);
} else if (t.isBinary(node) || t.isAssignmentExpression(node)) {
crawl(node.left, state);
crawl(node.right, state);
} else if (t.isCallExpression(node)) {
state.hasCall = true;
crawl(node.callee, state);
} else if (t.isFunction(node)) {
state.hasFunction = true;
} else if (t.isIdentifier(node)) {
state.hasHelper = state.hasHelper || isHelper(node.callee);
}
SwitchCase: function (node, parent) {
if (parent.cases[0] === node) {
return 1;
}
},
return state;
};
CallExpression: function (node) {
if (t.isFunction(node.callee)) {
return 1;
}
}
var isHelper = function (node) {
if (t.isMemberExpression(node)) {
return isHelper(node.object) || isHelper(node.property);
} else if (t.isIdentifier(node)) {
return node.name === "require" || node.name[0] === "_";
} else if (t.isCallExpression(node)) {
return isHelper(node.callee);
} else if (t.isBinary(node) || t.isAssignmentExpression(node)) {
return (t.isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right);
} else {
return false;
}
};
exports.after = {
nodes: {
LogicalExpression: function (node) {
return t.isFunction(node.left) || t.isFunction(node.right);
},
var isType = function (node) {
return t.isLiteral(node) || t.isObjectExpression(node) || t.isArrayExpression(node) ||
t.isIdentifier(node) || t.isMemberExpression(node);
};
AssignmentExpression: function (node) {
if (t.isFunction(node.right)) {
return 1;
}
exports.nodes = {
AssignmentExpression: function (node) {
var state = crawl(node.right);
if ((state.hasCall && state.hasHelper) || state.hasFunction) {
return {
before: state.hasFunction,
after: true
};
}
},
list: {
VariableDeclaration: function (node) {
return map(node.declarations, "init");
},
SwitchCase: function (node, parent) {
return {
before: node.consequent.length || parent.cases[0] === node
};
},
ArrayExpression: function (node) {
return node.elements;
},
LogicalExpression: function (node) {
if (t.isFunction(node.left) || t.isFunction(node.right)) {
return {
after: true
};
}
},
ObjectExpression: function (node) {
return node.properties;
Literal: function (node) {
if (node.value === "use strict") {
return {
after: true
};
}
},
CallExpression: function (node) {
if (t.isFunction(node.callee) || isHelper(node)) {
return {
before: true,
after: true
};
}
},
VariableDeclaration: function (node) {
for (var i = 0; i < node.declarations.length; i++) {
var declar = node.declarations[i];
var enabled = isHelper(declar.id) && !isType(declar.init);
if (!enabled) {
var state = crawl(declar.init);
enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;
}
if (enabled) {
return {
before: true,
after: true
};
}
}
},
IfStatement: function (node) {
if (t.isBlockStatement(node.consequent)) {
return {
before: true,
after: true
};
}
}
};
exports.nodes.Property =
exports.nodes.SpreadProperty = function (node, parent) {
if (parent.properties[0] === node) {
return {
before: true
};
}
};
exports.list = {
VariableDeclaration: function (node) {
return map(node.declarations, "init");
},
ArrayExpression: function (node) {
return node.elements;
},
ObjectExpression: function (node) {
return node.properties;
}
};
each({
Function: 1,
Class: 1,
For: 1,
ArrayExpression: { after: 1 },
ObjectExpression: { after: 1 },
SwitchStatement: 1,
IfStatement: { before: 1 },
CallExpression: { after: 1 },
Literal: { after: 1 }
Function: true,
Class: true,
Loop: true,
LabeledStatement: true,
SwitchStatement: true,
TryStatement: true
}, function (amounts, type) {
if (isNumber(amounts)) {
if (isBoolean(amounts)) {
amounts = { after: amounts, before: amounts };

@@ -78,8 +155,6 @@ }

each([type].concat(t.FLIPPED_ALIAS_KEYS[type] || []), function (type) {
each(amounts, function (amount, key) {
exports[key].nodes[type] = function () {
return amount;
};
});
exports.nodes[type] = function () {
return amounts;
};
});
});

@@ -16,7 +16,9 @@ "use strict";

*/
function getLookupIndex(i, base, max) {
i += base;
if (i >= max)
if (i >= max) {
i -= max;
}

@@ -23,0 +25,0 @@ return i;

@@ -20,3 +20,4 @@ var util = require("util");

didYouMean: "Did you mean $1?",
evalInStrictMode: "eval is not allowed in strict mode"
evalInStrictMode: "eval is not allowed in strict mode",
codeGeneratorDeopt: "Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2."
};

@@ -23,0 +24,0 @@

@@ -63,3 +63,2 @@ "use strict";

"temporal-assert-defined",
"tail-call",
"self-global"

@@ -87,9 +86,14 @@ ];

"ast",
"format",
"playground",
"experimental",
"resolveModuleSource",
"externalHelpers",
"auxiliaryComment",
"compact",
"resolveModuleSource",
"getModuleName",
// legacy
"format",
// these are used by plugins

@@ -119,3 +123,2 @@ "ignore",

playground: false,
whitespace: true,
moduleIds: false,

@@ -129,2 +132,3 @@ blacklist: [],

modules: "common",
compact: "auto",
loose: [],

@@ -146,2 +150,3 @@ code: true,

opts.optional = util.arrayify(opts.optional);
opts.compact = util.booleanify(opts.compact);
opts.loose = util.arrayify(opts.loose);

@@ -185,4 +190,3 @@

opts.optional.push("reactCompat");
console.error("The reactCompat option has been moved into the optional transformer " +
"`reactCompat` - backwards compatibility will be removed in v4.0.0");
console.error("The reactCompat option has been moved into the optional transformer `reactCompat`");
}

@@ -189,0 +193,0 @@

@@ -76,3 +76,3 @@ "use strict";

if (opts.pre) {
opts.pre(state);
opts.pre(state, file);
}

@@ -90,3 +90,3 @@

if (opts.post) {
opts.post(state);
opts.post(state, file);
}

@@ -93,0 +93,0 @@

@@ -149,2 +149,4 @@ "use strict";

var opts = this.file.opts;
if (opts.getModuleName) return opts.getModuleName(opts.filename);
var filenameRelative = opts.filenameRelative;

@@ -151,0 +153,0 @@ var moduleName = "";

@@ -7,8 +7,7 @@ "use strict";

var AMDFormatter = require("./amd");
var useStrict = require("../helpers/use-strict");
var util = require("../../util");
var t = require("../../types");
var last = require("lodash/array/last");
var each = require("lodash/collection/each");
var map = require("lodash/collection/map");
var t = require("../../types");

@@ -197,7 +196,3 @@ function SystemFormatter(file) {

if (useStrict.has(block)) {
handlerBody.unshift(block.body.shift());
}
program.body = [runner];
};

@@ -162,3 +162,3 @@ "use strict";

if (node.key.name === "constructor") {
if ((!node.computed && t.isIdentifier(node.key, { name: "constructor" })) || t.isLiteral(node.key, { value: "constructor" })) {
this.pushConstructor(node);

@@ -165,0 +165,0 @@ } else {

@@ -44,19 +44,26 @@ "use strict";

DestructuringTransformer.prototype.push = function (elem, parentId) {
if (t.isObjectPattern(elem)) {
this.pushObjectPattern(elem, parentId);
} else if (t.isArrayPattern(elem)) {
this.pushArrayPattern(elem, parentId);
} else if (t.isAssignmentPattern(elem)) {
this.pushAssignmentPattern(elem, parentId);
DestructuringTransformer.prototype.push = function (id, init) {
if (t.isObjectPattern(id)) {
this.pushObjectPattern(id, init);
} else if (t.isArrayPattern(id)) {
this.pushArrayPattern(id, init);
} else if (t.isAssignmentPattern(id)) {
this.pushAssignmentPattern(id, init);
} else {
this.nodes.push(this.buildVariableAssignment(elem, parentId));
this.nodes.push(this.buildVariableAssignment(id, init));
}
};
DestructuringTransformer.prototype.pushAssignmentPattern = function (pattern, parentId) {
var tempParentId = this.scope.generateUidBasedOnNode(parentId);
DestructuringTransformer.prototype.get = function () {
};
DestructuringTransformer.prototype.pushAssignmentPattern = function (pattern, valueRef) {
// we need to assign the current value of the assignment to avoid evaluating
// it more than once
var tempValueRef = this.scope.generateUidBasedOnNode(valueRef);
var declar = t.variableDeclaration("var", [
t.variableDeclarator(tempParentId, parentId)
t.variableDeclarator(tempValueRef, valueRef)
]);

@@ -66,8 +73,10 @@ declar._blockHoist = this.blockHoist;

//
this.nodes.push(this.buildVariableAssignment(
pattern.left,
t.conditionalExpression(
t.binaryExpression("===", tempParentId, t.identifier("undefined")),
t.binaryExpression("===", tempValueRef, t.identifier("undefined")),
pattern.right,
tempParentId
tempValueRef
)

@@ -77,55 +86,70 @@ ));

DestructuringTransformer.prototype.pushObjectSpread = function (pattern, parentId, prop, i) {
DestructuringTransformer.prototype.pushObjectSpread = function (pattern, objRef, spreadProp, spreadPropIndex) {
// get all the keys that appear in this object before the current spread
var keys = [];
for (var i2 = 0; i2 < pattern.properties.length; i2++) {
var prop2 = pattern.properties[i2];
if (i2 >= i) break;
if (t.isSpreadProperty(prop2)) continue;
for (var i = 0; i < pattern.properties.length; i++) {
var prop = pattern.properties[i];
var key = prop2.key;
if (t.isIdentifier(key)) {
key = t.literal(prop2.key.name);
}
// we've exceeded the index of the spread property to all properties to the
// right need to be ignored
if (i >= spreadPropIndex) break;
// ignore other spread properties
if (t.isSpreadProperty(prop)) continue;
var key = prop.key;
if (t.isIdentifier(key)) key = t.literal(prop.key.name);
keys.push(key);
}
keys = t.arrayExpression(keys);
var value = t.callExpression(this.file.addHelper("object-without-properties"), [parentId, keys]);
this.nodes.push(this.buildVariableAssignment(prop.argument, value));
//
var value = t.callExpression(this.file.addHelper("object-without-properties"), [objRef, keys]);
this.nodes.push(this.buildVariableAssignment(spreadProp.argument, value));
};
DestructuringTransformer.prototype.pushObjectProperty = function (prop, parentId) {
DestructuringTransformer.prototype.pushObjectProperty = function (prop, propRef) {
if (t.isLiteral(prop.key)) prop.computed = true;
var pattern2 = prop.value;
var patternId2 = t.memberExpression(parentId, prop.key, prop.computed);
var pattern = prop.value;
var objRef = t.memberExpression(propRef, prop.key, prop.computed);
if (t.isPattern(pattern2)) {
this.push(pattern2, patternId2);
if (t.isPattern(pattern)) {
this.push(pattern, objRef);
} else {
this.nodes.push(this.buildVariableAssignment(pattern2, patternId2));
this.nodes.push(this.buildVariableAssignment(pattern, objRef));
}
};
DestructuringTransformer.prototype.pushObjectPattern = function (pattern, parentId) {
DestructuringTransformer.prototype.pushObjectPattern = function (pattern, objRef) {
// https://github.com/babel/babel/issues/681
if (!pattern.properties.length) {
this.nodes.push(t.expressionStatement(
t.callExpression(this.file.addHelper("object-destructuring-empty"), [parentId])
t.callExpression(this.file.addHelper("object-destructuring-empty"), [objRef])
));
}
if (pattern.properties.length > 1 && t.isMemberExpression(parentId)) {
var temp = this.scope.generateUidBasedOnNode(parentId, this.file);
this.nodes.push(this.buildVariableDeclaration(temp, parentId));
parentId = temp;
// if we have more than one properties in this pattern and the objectRef is a
// member expression then we need to assign it to a temporary variable so it's
// only evaluated once
if (pattern.properties.length > 1 && t.isMemberExpression(objRef)) {
var temp = this.scope.generateUidBasedOnNode(objRef, this.file);
this.nodes.push(this.buildVariableDeclaration(temp, objRef));
objRef = temp;
}
//
for (var i = 0; i < pattern.properties.length; i++) {
var prop = pattern.properties[i];
if (t.isSpreadProperty(prop)) {
this.pushObjectSpread(pattern, parentId, prop, i);
this.pushObjectSpread(pattern, objRef, prop, i);
} else {
this.pushObjectProperty(prop, parentId);
this.pushObjectProperty(prop, objRef);
}

@@ -144,16 +168,66 @@ }

DestructuringTransformer.prototype.pushArrayPattern = function (pattern, parentId) {
DestructuringTransformer.prototype.canUnpackArrayPattern = function (pattern, arr) {
// not an array so there's no way we can deal with this
if (!t.isArrayExpression(arr)) return false;
// pattern has less elements than the array and doesn't have a rest so some
// elements wont be evaluated
if (pattern.elements.length < arr.elements.length && !hasRest(pattern)) return false;
// deopt on holes
for (var i = 0; i < pattern.elements.length; i++) {
if (!pattern.elements[i]) return false;
}
return true;
};
DestructuringTransformer.prototype.pushUnpackedArrayPattern = function (pattern, arr) {
for (var i = 0; i < pattern.elements.length; i++) {
var elem = pattern.elements[i];
if (t.isRestElement(elem)) {
this.push(elem.argument, t.arrayExpression(arr.elements.slice(i)));
} else {
this.push(elem, arr.elements[i]);
}
}
};
DestructuringTransformer.prototype.pushArrayPattern = function (pattern, arrayRef) {
if (!pattern.elements) return;
// if we have a rest then we need all the elements
// optimise basic array destructuring of an array expression
//
// we can't do this to a pattern of unequal size to it's right hand
// array expression as then there will be values that wont be evaluated
//
// eg: var [a, b] = [1, 2];
if (this.canUnpackArrayPattern(pattern, arrayRef)) {
return this.pushUnpackedArrayPattern(pattern, arrayRef);
}
// if we have a rest then we need all the elements so don't tell
// `scope.toArray` to only get a certain amount
var count = !hasRest(pattern) && pattern.elements.length;
var toArray = this.scope.toArray(parentId, count);
// so we need to ensure that the `arrayRef` is an array, `scope.toArray` will
// return a locally bound identifier if it's been inferred to be an array,
// otherwise it'll be a call to a helper that will ensure it's one
var _parentId = this.scope.generateUidBasedOnNode(parentId);
this.nodes.push(this.buildVariableDeclaration(_parentId, toArray));
parentId = _parentId;
var toArray = this.scope.toArray(arrayRef, count);
this.scope.assignTypeGeneric(parentId.name, "Array");
if (t.isIdentifier(toArray)) {
// we've been given an identifier so it must have been inferred to be an
// array
arrayRef = toArray;
} else {
arrayRef = this.scope.generateUidBasedOnNode(arrayRef);
this.nodes.push(this.buildVariableDeclaration(arrayRef, toArray));
this.scope.assignTypeGeneric(arrayRef.name, "Array");
}
//
for (var i = 0; i < pattern.elements.length; i++) {

@@ -165,28 +239,35 @@ var elem = pattern.elements[i];

var newPatternId;
var elemRef;
if (t.isRestElement(elem)) {
newPatternId = this.scope.toArray(parentId);
elemRef = this.scope.toArray(arrayRef);
if (i > 0) {
newPatternId = t.callExpression(t.memberExpression(newPatternId, t.identifier("slice")), [t.literal(i)]);
elemRef = t.callExpression(t.memberExpression(elemRef, t.identifier("slice")), [t.literal(i)]);
}
// set the element to the rest element argument since we've dealt with it
// being a rest already
elem = elem.argument;
} else {
newPatternId = t.memberExpression(parentId, t.literal(i), true);
elemRef = t.memberExpression(arrayRef, t.literal(i), true);
}
this.push(elem, newPatternId);
this.push(elem, elemRef);
}
};
DestructuringTransformer.prototype.init = function (pattern, parentId) {
if (!t.isArrayExpression(parentId) && !t.isMemberExpression(parentId) && !t.isIdentifier(parentId)) {
var key = this.scope.generateUidBasedOnNode(parentId);
this.nodes.push(this.buildVariableDeclaration(key, parentId));
parentId = key;
DestructuringTransformer.prototype.init = function (pattern, ref) {
// trying to destructure a value that we can't evaluate more than once so we
// need to save it to a variable
if (!t.isArrayExpression(ref) && !t.isMemberExpression(ref) && !t.isIdentifier(ref)) {
var key = this.scope.generateUidBasedOnNode(ref);
this.nodes.push(this.buildVariableDeclaration(key, ref));
ref = key;
}
this.push(pattern, parentId);
//
this.push(pattern, ref);
};

@@ -252,3 +333,3 @@

hasDestructuringTransformer = true;
var parentId = scope.generateUidIdentifier("ref");
var ref = scope.generateUidIdentifier("ref");

@@ -262,5 +343,5 @@ var destructuring = new DestructuringTransformer({

});
destructuring.init(pattern, parentId);
destructuring.init(pattern, ref);
return parentId;
return ref;
});

@@ -267,0 +348,0 @@

@@ -40,2 +40,25 @@ "use strict";

var breakVisitor = {
enter: function (node, parent, scope, state) {
if (t.isLoop(node)) {
state.ignoreLabeless = true;
scope.traverse(node, breakVisitor, state);
state.ignoreLabeless = false;
return this.skip();
}
if (t.isBreakStatement(node)) {
if (!node.label && state.ignoreLabeless) return;
if (node.label && node.label.name !== state.label) return;
var ret = t.expressionStatement(
t.callExpression(t.memberExpression(state.iteratorKey, t.identifier("return")), [])
);
if (state.wrapReturn) ret = state.wrapReturn(ret);
return [ret, node];
}
}
};
var loose = function (node, parent, scope, file) {

@@ -58,5 +81,8 @@ var left = node.left;

var iteratorKey = scope.generateUidIdentifier("iterator");
var isArrayKey = scope.generateUidIdentifier("isArray");
var loop = util.template("for-of-loose", {
LOOP_OBJECT: scope.generateUidIdentifier("iterator"),
IS_ARRAY: scope.generateUidIdentifier("isArray"),
LOOP_OBJECT: iteratorKey,
IS_ARRAY: isArrayKey,
OBJECT: node.right,

@@ -73,2 +99,14 @@ INDEX: scope.generateUidIdentifier("i"),

//
scope.traverse(node, breakVisitor, {
iteratorKey: iteratorKey,
wrapReturn: function (node) {
return t.ifStatement(t.unaryExpression("!", isArrayKey, true), node);
},
label: t.isLabeledStatement(parent) && parent.label.name
});
//
return {

@@ -99,4 +137,8 @@ declar: declar,

//
var iteratorKey = scope.generateUidIdentifier("iterator");
var loop = util.template("for-of", {
ITERATOR_KEY: scope.generateUidIdentifier("iterator"),
ITERATOR_KEY: iteratorKey,
STEP_KEY: stepKey,

@@ -106,2 +148,11 @@ OBJECT: node.right

//
scope.traverse(node, breakVisitor, {
iteratorKey: iteratorKey,
label: t.isLabeledStatement(parent) && parent.label.name
});
//
return {

@@ -108,0 +159,0 @@ declar: declar,

"use strict";
var nameMethod = require("../../helpers/name-method");
var t = require("../../../types");
var clone = require("lodash/lang/clone");
var clone = require("lodash/lang/clone");
var t = require("../../../types");

@@ -11,6 +10,5 @@ exports.check = function (node) {

exports.Property = function (node, parent, scope, file) {
exports.Property = function (node) {
if (node.method) {
node.method = false;
nameMethod.property(node, file, scope);
}

@@ -17,0 +15,0 @@

@@ -43,2 +43,6 @@ "use strict";

TailCallTransformer.prototype.getAgainId = function () {
return this.againId = this.againId || this.scope.generateUidIdentifier("again");
};
TailCallTransformer.prototype.getParams = function () {

@@ -116,3 +120,8 @@ var params = this.params;

body.unshift(t.expressionStatement(
t.assignmentExpression("=", this.getAgainId(), t.literal(false)))
);
node.body = util.template("tail-call-body", {
AGAIN_ID: this.getAgainId(),
THIS_ID: this.thisId,

@@ -291,2 +300,5 @@ ARGUMENTS_ID: this.argumentsId,

body.push(t.expressionStatement(
t.assignmentExpression("=", this.getAgainId(), t.literal(true))
));
body.push(t.continueStatement(this.getFunctionId()));

@@ -293,0 +305,0 @@

module.exports = {
useStrict: require("./other/use-strict"),
// this goes at the start so we only transform the original user code
"spec.functionName": require("./spec/function-name"),
"validation.undeclaredVariableCheck": require("./validation/undeclared-variable-check"),

@@ -94,3 +97,2 @@ "validation.noForInOfAssignment": require("./validation/no-for-in-of-assignment"),

"spec.undefinedToVoid": require("./spec/undefined-to-void"),
"spec.functionName": require("./spec/function-name"),

@@ -97,0 +99,0 @@ _moduleFormatter: require("./internal/module-formatter"),

"use strict";
var useStrict = require("../../helpers/use-strict");
var groupBy = require("lodash/collection/groupBy");
var flatten = require("lodash/array/flatten");
var values = require("lodash/object/values");
var groupBy = require("lodash/collection/groupBy");
var flatten = require("lodash/array/flatten");
var values = require("lodash/object/values");

@@ -25,13 +24,11 @@ // Priority:

useStrict.wrap(node, function () {
var nodePriorities = groupBy(node.body, function (bodyNode) {
var priority = bodyNode._blockHoist;
if (priority == null) priority = 1;
if (priority === true) priority = 2;
return priority;
});
var nodePriorities = groupBy(node.body, function (bodyNode) {
var priority = bodyNode._blockHoist;
if (priority == null) priority = 1;
if (priority === true) priority = 2;
return priority;
});
node.body = flatten(values(nodePriorities).reverse());
});
node.body = flatten(values(nodePriorities).reverse());
}
};
"use strict";
var useStrict = require("../../helpers/use-strict");
var t = require("../../../types");
var t = require("../../../types");

@@ -15,23 +14,21 @@ exports.secondPass = true;

useStrict.wrap(node, function () {
for (var i in node._declarations) {
var declar = node._declarations[i];
for (var i in node._declarations) {
var declar = node._declarations[i];
kind = declar.kind || "var";
var declarNode = t.variableDeclarator(declar.id, declar.init);
kind = declar.kind || "var";
var declarNode = t.variableDeclarator(declar.id, declar.init);
if (declar.init) {
node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, [declarNode])));
} else {
kinds[kind] = kinds[kind] || [];
kinds[kind].push(declarNode);
}
if (declar.init) {
node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, [declarNode])));
} else {
kinds[kind] = kinds[kind] || [];
kinds[kind].push(declarNode);
}
}
for (kind in kinds) {
node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, kinds[kind])));
}
});
for (kind in kinds) {
node.body.unshift(file.attachAuxiliaryComment(t.variableDeclaration(kind, kinds[kind])));
}
node._declarations = null;
};
"use strict";
var useStrict = require("../../helpers/use-strict");
exports.Program = function (program, parent, scope, file) {
if (!file.transformers["es6.modules"].canRun()) return;
useStrict.wrap(program, function () {
program.body = file.dynamicImports.concat(program.body);
});
program.body = file.dynamicImports.concat(program.body);

@@ -12,0 +8,0 @@ if (file.moduleFormatter.transform) {

@@ -6,2 +6,18 @@ "use strict";

var JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/;
exports.Program = function (node, parent, scope, file) {
var id = "React.createElement";
var comment = file.ast.comments[0];
if (comment) {
var matches = JSX_ANNOTATION_REGEX.exec(comment.value);
if (matches) id = matches[1];
}
file.set("jsxIdentifier", id.split(".").map(t.identifier).reduce(function (object, property) {
return t.memberExpression(object, property);
}));
};
require("../../helpers/build-react-transformer")(exports, {

@@ -18,5 +34,5 @@ pre: function (state) {

post: function (state) {
state.callee = t.memberExpression(t.identifier("React"), t.identifier("createElement"));
post: function (state, file) {
state.callee = file.get("jsxIdentifier");
}
});
"use strict";
var useStrict = require("../../helpers/use-strict");
var messages = require("../../../messages");
var t = require("../../../types");
var messages = require("../../../messages");
var t = require("../../../types");
exports.Program = function (program) {
if (!useStrict.has(program)) {
program.body.unshift(t.expressionStatement(t.literal("use strict")));
var first = program.body[0];
if (t.isExpressionStatement(first) && t.isLiteral(first.expression, { value: "use strict" })) {
program.body.shift();
}
};
exports.post = function (file) {
file.ast.program.body.unshift(t.expressionStatement(t.literal("use strict")));
};
exports.FunctionDeclaration =

@@ -14,0 +18,0 @@ exports.FunctionExpression = function () {

"use strict";
var util = require("../../../util");
var t = require("../../../types");
var t = require("../../../types");
var util = require("../../../util");

@@ -14,8 +14,13 @@ var propertyFunctionVisitor = {

exports.FunctionExpression = function (node, parent, scope, file) {
//exports.ArrowFunctionExpression =
exports.FunctionExpression = function (node, parent, scope) {
// has an `id` so we don't need to infer one
if (node.id) return;
var id;
if (t.isProperty(parent)) {
if (t.isProperty(parent) && parent.kind === "init" && !parent.computed) {
// { foo: function () {} };
id = parent.key;
} else if (t.isVariableDeclarator(parent)) {
// var foo = function () {};
id = parent.id;

@@ -25,15 +30,52 @@ } else {

}
var binding = scope.getBindingIdentifier(id.name);
var outerId, selfGlobalId;
if (!t.isIdentifier(id)) return;
var name = t.toIdentifier(id.name);
id = t.identifier(name);
// check to see if we have a local binding of the id we're setting inside of
// the function, this is important as there are caveats associated
var bindingInfo = scope.getOwnBindingInfo(name);
if (bindingInfo) {
if (bindingInfo.type === "param") {
// safari will blow up in strict mode with code like:
//
// var t = function t(t) {};
//
// with the error:
//
// Cannot declare a parameter named 't' as it shadows the name of a
// strict mode function.
//
// this isn't to the spec and they've invented this behaviour which is
// **extremely** annoying so we avoid setting the name if it has a param
// with the same id
} else {
// otherwise it's defined somewhere in scope like:
//
// var t = function () {
// var t = 2;
// };
//
// so we can safely just set the id and move along as it shadows the
// bound function id
node.id = id;
}
return;
}
//
var binding = scope.getBindingIdentifier(name);
var outerId;
scope.traverse(node, propertyFunctionVisitor, {
name: id.name,
name: name,
binding: binding,
getOuter: function () {
if (!binding) {
return t.memberExpression(
selfGlobalId || (selfGlobalId = file.addHelper("self-global")),
id
);
}
return t.callExpression(

@@ -45,12 +87,12 @@ outerId || (outerId = scope.generateUidIdentifier("getOuter")),

});
node.id = id;
if (outerId) {
return util.template("named-func", {
GET_OUTER_ID: outerId,
ID: id,
FUNCTION: node
FUNCTION: node,
ID: id
});
}
};
exports.optional = true;

@@ -22,3 +22,3 @@ {

"ArrowFunctionExpression": ["Scopable", "Function", "Expression"],
"FunctionDeclaration": ["Statement", "Declaration", "Scopable", "Function"],
"FunctionDeclaration": ["Scopable", "Function", "Statement", "Declaration"],
"FunctionExpression": ["Scopable", "Function", "Expression"],

@@ -43,5 +43,5 @@

"ForOfStatement": ["Statement", "For", "Scopable", "Loop"],
"ForInStatement": ["Statement", "For", "Scopable", "Loop"],
"ForStatement": ["Statement", "For", "Scopable", "Loop"],
"ForOfStatement": ["Scopable", "Statement", "For", "Loop"],
"ForInStatement": ["Scopable", "Statement", "For", "Loop"],
"ForStatement": ["Scopable", "Statement", "For", "Loop"],

@@ -48,0 +48,0 @@ "ObjectPattern": ["Pattern"],

@@ -59,2 +59,8 @@ "use strict";

exports.booleanify = function (val) {
if (val === "true") return true;
if (val === "false") return false;
return val;
};
var templateVisitor = {

@@ -61,0 +67,0 @@ enter: function (node, parent, scope, nodes) {

{
"name": "babel-core",
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
"version": "4.3.0",
"version": "4.4.1",
"author": "Sebastian McKenzie <sebmck@gmail.com>",

@@ -6,0 +6,0 @@ "homepage": "https://babeljs.io/",

<p align="center">
<img alt="babel" src="https://raw.githubusercontent.com/babel/logo/master/logo.png" width="546">
<a href="https://babeljs.io/">
<img alt="babel" src="https://raw.githubusercontent.com/babel/logo/master/logo.png" width="546">
</a>
</p>

@@ -13,1 +15,5 @@

</p>
<p align="center">
For documentation and website issues please visit the <a href="https://github.com/babel/babel.github.io">babel.github.io</a> repo.
</p>

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc