Comparing version 3.5.0 to 3.5.1
@@ -39,6 +39,9 @@ "use strict"; | ||
var method = node.value; | ||
if (state.selfReference) { | ||
// todo: support generators | ||
node.value = util.template("property-method-assignment-wrapper", { | ||
FUNCTION: node.value, | ||
var templateName = "property-method-assignment-wrapper"; | ||
if (method.generator) templateName += "-generator"; | ||
node.value = util.template(templateName, { | ||
FUNCTION: method, | ||
FUNCTION_ID: key, | ||
@@ -49,4 +52,4 @@ FUNCTION_KEY: scope.generateUidIdentifier(id), | ||
} else { | ||
node.value.id = key; | ||
method.id = key; | ||
} | ||
}; |
@@ -115,2 +115,8 @@ "use strict"; | ||
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; | ||
} | ||
for (var i = 0; i < pattern.properties.length; i++) { | ||
@@ -117,0 +123,0 @@ var prop = pattern.properties[i]; |
@@ -30,4 +30,5 @@ "use strict"; | ||
block.body = block.body.concat(node.body.body); | ||
block._declarations = node.body._declarations; | ||
t.inherits(loop, node); | ||
// todo: find out why this is necessary? #538 | ||
@@ -34,0 +35,0 @@ loop._scopeInfo = node._scopeInfo; |
@@ -5,6 +5,2 @@ "use strict"; | ||
function returnBlock(expr) { | ||
return t.blockStatement([t.returnStatement(expr)]); | ||
} | ||
function transformExpression(node, scope, state) { | ||
@@ -16,48 +12,18 @@ if (!node) return; | ||
case "ConditionalExpression": | ||
var callConsequent = subTransform(node.consequent); | ||
var callAlternate = subTransform(node.alternate); | ||
if (!callConsequent && !callAlternate) { | ||
return; | ||
} | ||
// any value of ternary operator can be final one | ||
subTransform(node.consequent); | ||
subTransform(node.alternate); | ||
break; | ||
// if ternary operator had tail recursion in value, convert to optimized if-statement | ||
node.type = "IfStatement"; | ||
node.consequent = callConsequent ? t.toBlock(callConsequent) : returnBlock(node.consequent); | ||
if (callAlternate) { | ||
node.alternate = t.isIfStatement(callAlternate) ? callAlternate : t.toBlock(callAlternate); | ||
} else { | ||
node.alternate = returnBlock(node.alternate); | ||
} | ||
return [node]; | ||
case "LogicalExpression": | ||
// only call in right-value of can be optimized | ||
var callRight = subTransform(node.right); | ||
if (!callRight) { | ||
return; | ||
} | ||
// only right expression can be final and so optimized | ||
subTransform(node.right); | ||
break; | ||
var test = state.wrapSideEffect(node.left); | ||
if (node.operator === "&&") { | ||
test.expr = t.unaryExpression("!", test.expr); | ||
} | ||
return [t.ifStatement(test.expr, returnBlock(test.ref))].concat(callRight); | ||
case "SequenceExpression": | ||
// only last element of sequence can be optimized | ||
var seq = node.expressions; | ||
subTransform(seq[seq.length - 1]); | ||
break; | ||
// only last element can be optimized | ||
var lastCall = subTransform(seq[seq.length - 1]); | ||
if (!lastCall) { | ||
return; | ||
} | ||
// remove converted expression from sequence | ||
// and convert to regular expression if needed | ||
if (--seq.length === 1) { | ||
node = seq[0]; | ||
} | ||
return [t.expressionStatement(node)].concat(lastCall); | ||
case "CallExpression": | ||
@@ -82,6 +48,5 @@ var callee = node.callee, thisBinding; | ||
return [t.returnStatement(t.callExpression( | ||
state.getHelperRef(), | ||
args | ||
))]; | ||
node.callee = state.getHelperRef(); | ||
node.arguments = args; | ||
break; | ||
} | ||
@@ -98,15 +63,13 @@ })(node); | ||
// it contains tail recursion | ||
return transformExpression(node.argument, scope, state); | ||
transformExpression(node.argument, scope, state); | ||
} else if (t.isFunction(node)) { | ||
return this.skip(); | ||
// inner function's bodies are irrelevant | ||
this.skip(); | ||
} else if (t.isTryStatement(parent)) { | ||
if (node === parent.block) { | ||
return this.skip(); | ||
} else if (node === parent.finalizer) { | ||
return; | ||
} else { | ||
if (parent.finalizer) { | ||
this.skip(); | ||
} | ||
return; | ||
// `try`-blocks can't be optimized | ||
this.skip(); | ||
} else if (parent.finalizer && node !== parent.finalizer) { | ||
// `catch` clause followed by `finally` can't be optimized | ||
this.skip(); | ||
} | ||
@@ -113,0 +76,0 @@ } |
@@ -95,3 +95,5 @@ module.exports = { | ||
"minification.deadCodeElimination": require("./minification/dead-code-elimination"), | ||
"minification.renameLocalVariables": require("./minification/rename-local-variables") | ||
"minification.renameLocalVariables": require("./minification/rename-local-variables"), | ||
_cleanUp: require("./internal/cleanup") | ||
}; |
@@ -693,6 +693,8 @@ "use strict"; | ||
t.inherits = function (child, parent) { | ||
child.range = parent.range; | ||
child.start = parent.start; | ||
child.loc = parent.loc; | ||
child.end = parent.end; | ||
child._declarations = parent._declarations; | ||
child._scopeInfo = parent._scopeInfo; | ||
child.range = parent.range; | ||
child.start = parent.start; | ||
child.loc = parent.loc; | ||
child.end = parent.end; | ||
t.inheritsComments(child, parent); | ||
@@ -699,0 +701,0 @@ return child; |
{ | ||
"name": "6to5-core", | ||
"description": "Turn ES6 code into readable vanilla ES5 with source maps", | ||
"version": "3.5.0", | ||
"version": "3.5.1", | ||
"author": "Sebastian McKenzie <sebmck@gmail.com>", | ||
@@ -25,3 +25,3 @@ "homepage": "https://6to5.org/", | ||
"dependencies": { | ||
"acorn-6to5": "0.11.1-27", | ||
"acorn-6to5": "0.11.1-28", | ||
"ast-types": "~0.6.1", | ||
@@ -28,0 +28,0 @@ "chalk": "^0.5.1", |
@@ -1,1 +0,1 @@ | ||
(function(global){var to5Runtime=global.to5Runtime={};to5Runtime.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};to5Runtime.defaults=function(obj,defaults){for(var key in defaults){if(obj[key]===undefined){obj[key]=defaults[key]}}return obj};to5Runtime.prototypeProperties=function(child,staticProps,instanceProps){if(staticProps)Object.defineProperties(child,staticProps);if(instanceProps)Object.defineProperties(child.prototype,instanceProps)};to5Runtime.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};to5Runtime.taggedTemplateLiteral=function(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))};to5Runtime.taggedTemplateLiteralLoose=function(strings,raw){strings.raw=raw;return strings};to5Runtime.interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj};to5Runtime.toArray=function(arr){return Array.isArray(arr)?arr:Array.from(arr)};to5Runtime.slicedToArray=function(arr,i){if(Array.isArray(arr)){return arr}else{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}};to5Runtime.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};to5Runtime.hasOwn=Object.prototype.hasOwnProperty;to5Runtime.slice=Array.prototype.slice;to5Runtime.bind=Function.prototype.bind;to5Runtime.defineProperty=function(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})};to5Runtime.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()})}};to5Runtime.interopRequireWildcard=function(obj){return obj&&obj.__esModule?obj:{"default":obj}};to5Runtime._typeof=function(obj){return obj&&obj.constructor===Symbol?"symbol":typeof obj};to5Runtime._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};to5Runtime.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)}};to5Runtime.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}else{return set(parent,property,value,receiver)}}else if("value"in desc&&desc.writable){desc.value=value;return}else{var setter=desc.set;if(setter===undefined){return}return setter.call(receiver,value)}};to5Runtime.classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}};to5Runtime.objectDestructuringEmpty=function(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")};to5Runtime.temporalUndefined={};to5Runtime.temporalAssertDefined=function(val,name,undef){if(val===undef){throw new ReferenceError(name+" is not defined - temporal dead zone")}return true};to5Runtime.tailCall=function(){function Tail(func,args,context){this.func=func;this.args=args;this.context=context}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);isRunning=false}return result}}()})(typeof global==="undefined"?self:global); | ||
(function(global){var to5Runtime=global.to5Runtime={};to5Runtime.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};to5Runtime.defaults=function(obj,defaults){for(var key in defaults){if(obj[key]===undefined){obj[key]=defaults[key]}}return obj};to5Runtime.prototypeProperties=function(child,staticProps,instanceProps){if(staticProps)Object.defineProperties(child,staticProps);if(instanceProps)Object.defineProperties(child.prototype,instanceProps)};to5Runtime.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};to5Runtime.taggedTemplateLiteral=function(strings,raw){return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))};to5Runtime.taggedTemplateLiteralLoose=function(strings,raw){strings.raw=raw;return strings};to5Runtime.interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj};to5Runtime.toArray=function(arr){return Array.isArray(arr)?arr:Array.from(arr)};to5Runtime.slicedToArray=function(arr,i){if(Array.isArray(arr)){return arr}else{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}};to5Runtime.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};to5Runtime.hasOwn=Object.prototype.hasOwnProperty;to5Runtime.slice=Array.prototype.slice;to5Runtime.bind=Function.prototype.bind;to5Runtime.defineProperty=function(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})};to5Runtime.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()})}};to5Runtime.interopRequireWildcard=function(obj){return obj&&obj.__esModule?obj:{"default":obj}};to5Runtime._typeof=function(obj){return obj&&obj.constructor===Symbol?"symbol":typeof obj};to5Runtime._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};to5Runtime.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)}};to5Runtime.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)}}};to5Runtime.classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}};to5Runtime.objectDestructuringEmpty=function(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")};to5Runtime.temporalUndefined={};to5Runtime.temporalAssertDefined=function(val,name,undef){if(val===undef){throw new ReferenceError(name+" is not defined - temporal dead zone")}return true};to5Runtime.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}}()})(typeof global==="undefined"?self:global); |
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
1489382
156
12600
+ Addedacorn-6to5@0.11.1-28(transitive)
- Removedacorn-6to5@0.11.1-27(transitive)
Updatedacorn-6to5@0.11.1-28