babel-core
Advanced tools
Comparing version 4.7.4 to 4.7.5
@@ -16,2 +16,9 @@ # Changelog | ||
## 4.7.5 | ||
* **Bug Fix** | ||
* Don't remap` break`s to call the iterator return. | ||
* **Polish** | ||
* Use a different helper for computed classes for much nicer output. Also fixes a bug in symbols being non-enumerable so they wouldn't be set on the class. | ||
## 4.7.4 | ||
@@ -18,0 +25,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.createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=true;if(prop.value)prop.writable=true}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();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); | ||
(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.createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=true;if(prop.value)prop.writable=true}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();babelHelpers.createComputedClass=function(){function defineProperties(target,rawProps){var props={};for(var i=0;i<rawProps.length;i++){var prop=rawProps[i];prop.configurable=true;if(prop.value)prop.writable=true;props[prop.key]=prop}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();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); |
@@ -63,3 +63,3 @@ "use strict"; | ||
var cacheKey = "" + filename + ":" + JSON.stringify(opts); | ||
var cacheKey = "" + filename + ":" + JSON.stringify(opts) + ":" + babel.version; | ||
@@ -66,0 +66,0 @@ if (cache) { |
@@ -50,3 +50,9 @@ "use strict"; | ||
if (err.stack) err.stack = err.stack.replace(err.message, message); | ||
if (err.stack) { | ||
var newStack = err.stack.replace(err.message, message); | ||
try { | ||
err.stack = newStack; | ||
} catch (e) {} | ||
} | ||
err.message = message; | ||
@@ -57,2 +63,4 @@ } | ||
} | ||
}; | ||
}; | ||
// `err.stack` may be a readonly property in some environments |
@@ -74,3 +74,3 @@ "use strict"; | ||
File.helpers = ["inherits", "defaults", "create-class", "apply-constructor", "tagged-template-literal", "tagged-template-literal-loose", "interop-require", "to-array", "to-consumable-array", "sliced-to-array", "object-without-properties", "has-own", "slice", "bind", "define-property", "async-to-generator", "interop-require-wildcard", "typeof", "extends", "get", "set", "class-call-check", "object-destructuring-empty", "temporal-undefined", "temporal-assert-defined", "self-global"]; | ||
File.helpers = ["inherits", "defaults", "create-class", "create-computed-class", "apply-constructor", "tagged-template-literal", "tagged-template-literal-loose", "interop-require", "to-array", "to-consumable-array", "sliced-to-array", "object-without-properties", "has-own", "slice", "bind", "define-property", "async-to-generator", "interop-require-wildcard", "typeof", "extends", "get", "set", "class-call-check", "object-destructuring-empty", "temporal-undefined", "temporal-assert-defined", "self-global"]; | ||
File.validOptions = ["filename", "filenameRelative", "blacklist", "whitelist", "optional", "loose", "playground", "experimental", "modules", "moduleIds", "moduleId", "resolveModuleSource", "keepModuleIdExtensions", "code", "ast", "comments", "compact", "auxiliaryComment", "externalHelpers", "returnUsedHelpers", "inputSourceMap", "sourceMap", "sourceMapName", "sourceFileName", "sourceRoot", "moduleRoot", | ||
@@ -77,0 +77,0 @@ |
@@ -6,2 +6,4 @@ "use strict"; | ||
exports.push = push; | ||
exports.hasComputed = hasComputed; | ||
exports.toComputedObjectFromClass = toComputedObjectFromClass; | ||
exports.toClassObject = toClassObject; | ||
@@ -21,25 +23,10 @@ exports.toDefineObject = toDefineObject; | ||
function push(mutatorMap, key, kind, computed, value) { | ||
var alias; | ||
var alias = t.toKeyAlias({ computed: computed }, key); | ||
if (t.isIdentifier(key)) { | ||
alias = key.name; | ||
if (computed) alias = "computed:" + alias; | ||
} else if (t.isLiteral(key)) { | ||
alias = String(key.value); | ||
} else { | ||
alias = JSON.stringify(traverse.removeProperties(t.cloneDeep(key))); | ||
} | ||
var map; | ||
if (has(mutatorMap, alias)) { | ||
map = mutatorMap[alias]; | ||
} else { | ||
map = {}; | ||
} | ||
var map = {}; | ||
if (has(mutatorMap, alias)) map = mutatorMap[alias]; | ||
mutatorMap[alias] = map; | ||
map._key = key; | ||
if (computed) { | ||
map._computed = true; | ||
} | ||
if (computed) map._computed = true; | ||
@@ -49,2 +36,24 @@ map[kind] = value; | ||
function hasComputed(mutatorMap) { | ||
for (var key in mutatorMap) { | ||
if (mutatorMap[key]._computed) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
function toComputedObjectFromClass(obj) { | ||
var objExpr = t.arrayExpression([]); | ||
for (var i = 0; i < obj.properties.length; i++) { | ||
var prop = obj.properties[i]; | ||
var val = prop.value; | ||
val.properties.unshift(t.property("init", t.identifier("key"), t.toComputedKey(prop))); | ||
objExpr.elements.push(val); | ||
} | ||
return objExpr; | ||
} | ||
function toClassObject(mutatorMap) { | ||
@@ -67,2 +76,3 @@ var objExpr = t.objectExpression([]); | ||
t.removeComments(inheritNode); | ||
mapNode.properties.push(prop); | ||
@@ -78,35 +88,11 @@ }); | ||
function toDefineObject(mutatorMap) { | ||
var objExpr = t.objectExpression([]); | ||
each(mutatorMap, function (map) { | ||
var mapNode = t.objectExpression([]); | ||
var propNode = t.property("init", map._key, mapNode, map._computed); | ||
if (map.value) { | ||
map.writable = t.literal(true); | ||
} | ||
if (map.value) map.writable = t.literal(true); | ||
map.configurable = t.literal(true); | ||
map.enumerable = t.literal(true); | ||
each(map, function (node, key) { | ||
if (key[0] === "_") return; | ||
node = t.clone(node); | ||
var inheritNode = node; | ||
if (t.isMethodDefinition(node)) node = node.value; | ||
var prop = t.property("init", t.identifier(key), node); | ||
t.inheritsComments(prop, inheritNode); | ||
t.removeComments(inheritNode); | ||
mapNode.properties.push(prop); | ||
}); | ||
objExpr.properties.push(propNode); | ||
}); | ||
return objExpr; | ||
return toClassObject(mutatorMap); | ||
} | ||
exports.__esModule = true; |
@@ -226,2 +226,3 @@ "use strict"; | ||
var staticProps; | ||
var classHelper = "create-class"; | ||
@@ -237,2 +238,8 @@ if (this.hasInstanceMutators) { | ||
if (instanceProps || staticProps) { | ||
if (defineMap.hasComputed(this.instanceMutatorMap) || defineMap.hasComputed(this.staticMutatorMap)) { | ||
if (instanceProps) instanceProps = defineMap.toComputedObjectFromClass(instanceProps); | ||
if (staticProps) staticProps = defineMap.toComputedObjectFromClass(staticProps); | ||
classHelper = "create-computed-class"; | ||
} | ||
if (!instanceProps) instanceProps = t.literal(null); | ||
@@ -243,3 +250,3 @@ | ||
body.push(t.expressionStatement(t.callExpression(this.file.addHelper("create-class"), args))); | ||
body.push(t.expressionStatement(t.callExpression(this.file.addHelper(classHelper), args))); | ||
} | ||
@@ -246,0 +253,0 @@ }; |
@@ -145,6 +145,3 @@ "use strict"; | ||
var ref = scope.generateUidIdentifier("temp"); | ||
scope.push({ | ||
key: ref.name, | ||
id: ref | ||
}); | ||
scope.push({ id: ref }); | ||
@@ -151,0 +148,0 @@ var nodes = []; |
@@ -52,27 +52,2 @@ "use strict"; | ||
var breakVisitor = { | ||
enter: function enter(node, parent, scope, state) { | ||
if (this.isLoop()) { | ||
state.ignoreLabeless = true; | ||
scope.traverse(node, breakVisitor, state); | ||
state.ignoreLabeless = false; | ||
return this.skip(); | ||
} | ||
if (this.isBreakStatement()) { | ||
if (!node.label && state.ignoreLabeless) return; | ||
if (node.label && node.label.name !== state.label) return; | ||
// break statements mean something different in this context | ||
if (t.isSwitchCase(parent)) return; | ||
var ret = t.expressionStatement(t.callExpression(t.memberExpression(state.iteratorKey, t.identifier("return")), [])); | ||
ret = state.wrapReturn(ret); | ||
this.skip(); | ||
return [ret, node]; | ||
} | ||
} | ||
}; | ||
var loose = function loose(node, parent, scope, file) { | ||
@@ -112,13 +87,2 @@ var left = node.left; | ||
scope.traverse(node, breakVisitor, { | ||
iteratorKey: iteratorKey, | ||
label: t.isLabeledStatement(parent) && parent.label.name, | ||
wrapReturn: function wrapReturn(node) { | ||
return t.ifStatement(t.logicalExpression("&&", t.unaryExpression("!", isArrayKey, true), t.memberExpression(iteratorKey, t.identifier("return"))), node); | ||
} | ||
}); | ||
// | ||
return { | ||
@@ -173,13 +137,2 @@ declar: declar, | ||
scope.traverse(node, breakVisitor, { | ||
iteratorKey: iteratorKey, | ||
label: isLabeledParent && parent.label.name, | ||
wrapReturn: function wrapReturn(node) { | ||
return t.ifStatement(t.memberExpression(iteratorKey, t.identifier("return")), node); | ||
} | ||
}); | ||
// | ||
return { | ||
@@ -186,0 +139,0 @@ replaceParent: isLabeledParent, |
@@ -49,6 +49,3 @@ "use strict"; | ||
if (objectRef) { | ||
scope.push({ | ||
id: objectRef | ||
}); | ||
scope.push({ id: objectRef }); | ||
return t.assignmentExpression("=", objectRef, node); | ||
@@ -55,0 +52,0 @@ } |
@@ -625,14 +625,14 @@ "use strict"; | ||
if (t.isBlockStatement(block) || t.isProgram(block)) { | ||
var _block = block; | ||
if (!_block._declarations) _block._declarations = {}; | ||
if (!t.isBlockStatement(block) && !t.isProgram(block)) { | ||
block = this.getBlockParent().block; | ||
} | ||
block._declarations[opts.key || opts.id.name] = { | ||
kind: opts.kind || "var", | ||
id: opts.id, | ||
init: opts.init | ||
}; | ||
} else { | ||
throw new TypeError("cannot add a declaration here in node type " + block.type); | ||
} | ||
var _block = block; | ||
if (!_block._declarations) _block._declarations = {}; | ||
block._declarations[opts.key || opts.id.name] = { | ||
kind: opts.kind || "var", | ||
id: opts.id, | ||
init: opts.init | ||
}; | ||
}; | ||
@@ -639,0 +639,0 @@ |
@@ -146,7 +146,10 @@ "use strict"; | ||
t.toComputedKey = function (node, key) { | ||
if (!node.computed) { | ||
if (t.isIdentifier(key)) key = t.literal(key.name); | ||
} | ||
return key; | ||
t.toComputedKey = function (node) { | ||
var key = arguments[1] === undefined ? node.key : arguments[1]; | ||
return (function () { | ||
if (!node.computed) { | ||
if (t.isIdentifier(key)) key = t.literal(key.name); | ||
} | ||
return key; | ||
})(); | ||
}; | ||
@@ -175,3 +178,2 @@ | ||
kind: node.kind, | ||
key: declar.id.name, | ||
id: declar.id | ||
@@ -730,2 +732,22 @@ }); | ||
t.toKeyAlias = function (node) { | ||
var key = arguments[1] === undefined ? node.key : arguments[1]; | ||
return (function () { | ||
var alias; | ||
if (t.isIdentifier(key)) { | ||
alias = key.name; | ||
} else if (t.isLiteral(key)) { | ||
alias = JSON.stringify(key.value); | ||
} else { | ||
alias = JSON.stringify(traverse.removeProperties(t.cloneDeep(key))); | ||
} | ||
if (node.computed) alias = "[" + alias + "]"; | ||
return alias; | ||
})(); | ||
}; | ||
/** | ||
* Description | ||
*/ | ||
t.getSpecifierName = function (specifier) { | ||
@@ -732,0 +754,0 @@ return specifier.name || specifier.id; |
{ | ||
"name": "babel-core", | ||
"description": "Turn ES6 code into readable vanilla ES5 with source maps", | ||
"version": "4.7.4", | ||
"version": "4.7.5", | ||
"author": "Sebastian McKenzie <sebmck@gmail.com>", | ||
@@ -6,0 +6,0 @@ "homepage": "https://babeljs.io/", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1910737
15593