es6-transpiler
Advanced tools
Comparing version 0.7.13-1 to 0.7.13-5
@@ -7,3 +7,3 @@ /*global require*/ | ||
var BUILD_VERSION = '0.7.13-1'; | ||
var BUILD_VERSION = '0.7.13-5'; | ||
@@ -10,0 +10,0 @@ var fs = require("fs"); |
@@ -169,3 +169,3 @@ /*global require:false*/ | ||
if ( !regExp_flag_u_support ) { | ||
unescapeUnicode = _2523311091396972447491_1_require___lib_unescapeUnicode_js(); | ||
unescapeUnicode = _4544610081397068584968_1_require___lib_unescapeUnicode_js(); | ||
@@ -317,3 +317,3 @@ extendedRegExp["__polyfill__"] = function(convertUnicodeSequence_Map, codePointsRange_Map) { | ||
}; | ||
var es6unicodeRangeConverter = _2523311091396972447491_2_require___lib_rangeRegenerate_js(); | ||
var es6unicodeRangeConverter = _4544610081397068584968_2_require___lib_rangeRegenerate_js(); | ||
@@ -473,3 +473,3 @@ var unicodeRange = function(str, code11, code12, char1, code21, code22, char2) { | ||
_2523311091396972447491_3_require___String__RE_methods_js()(global, $RegExp, updateGlobalRegExpProperties); | ||
_4544610081397068584968_3_require___String__RE_methods_js()(global, $RegExp, updateGlobalRegExpProperties); | ||
} | ||
@@ -480,3 +480,3 @@ } | ||
;function _2523311091396972447491_1_require___lib_unescapeUnicode_js(){var module = {exports: {}};/*global module:False*/ | ||
;function _4544610081397068584968_1_require___lib_unescapeUnicode_js(){var module = {exports: {}};/*global module:False*/ | ||
/*es6-transpiler symbols:false, has-iterators:false, has-generators: false,*/ | ||
@@ -508,3 +508,3 @@ // call require: from RegExp polyfill | ||
;return module.exports}; | ||
;function _2523311091396972447491_2_require___lib_rangeRegenerate_js(){var module = {exports: {}};/*global module:false*/ | ||
;function _4544610081397068584968_2_require___lib_rangeRegenerate_js(){var module = {exports: {}};/*global module:false*/ | ||
/*es6-transpiler symbols:false, has-iterators:false, has-generators: false,*/ | ||
@@ -718,3 +718,3 @@ // call require: from RegExp polyfill | ||
;return module.exports}; | ||
;function _2523311091396972447491_3_require___String__RE_methods_js(){var module = {exports: {}};/*global module*/ | ||
;function _4544610081397068584968_3_require___String__RE_methods_js(){var module = {exports: {}};/*global module*/ | ||
/*es6-transpiler symbols:false, has-iterators:false, has-generators: false*/ | ||
@@ -721,0 +721,0 @@ // call require: from RegExp polyfill |
@@ -0,1 +1,2 @@ | ||
/*globals module,require*/ | ||
// @see http://www.nczonline.net/blog/2012/08/01/a-critical-review-of-ecmascript-6-quasi-literals/ | ||
@@ -36,6 +37,34 @@ "use strict"; | ||
, escapeQuoters: function(templateString) { | ||
return templateString | ||
, escape: function(templateString, options) { | ||
options = options || {}; | ||
var raw = options.raw, compat = options.compat; | ||
var tt = templateString; | ||
templateString = templateString | ||
.replace(/([^\\]|^)"/g, "$1\\\"").replace(/([^\\]|^)"/g, "$1\\\"") | ||
// .replace(/\t/g, "\\t").replace(/\v/g, "\\v").replace(/\f/g, "\\f") | ||
// .replace(/\f/g, "\\f") | ||
//.replace(/\b/g, "\\b") | ||
; | ||
if ( compat ) { | ||
templateString = templateString.replace(/((?:\r\n)|\n)/g, function(found, group) { | ||
return "\\n"; | ||
// return group === "\n" ? "\\n" : "\\r\\n"; | ||
}); | ||
} | ||
else { | ||
templateString = templateString.replace(/((?:\r\n)|\n)/g, function(found, group) { | ||
return "\\\n\\n"; | ||
// return group === "\n" ? "\\\n\\n" : "\\\n\\r\\n"; | ||
}); | ||
} | ||
if ( raw ) { | ||
// templateString = templateString.replace(/\\/g, "\\\\"); | ||
} | ||
// console.log(tt, raw, compat, '->', templateString); | ||
return templateString; | ||
} | ||
@@ -64,7 +93,7 @@ | ||
var quasiRawString = quasis.map(function(quasiString) { | ||
return "\"" + this.cleanupTemplateString(quasiString).replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\""; | ||
return "\"" + this.escape(this.cleanupTemplateString(quasiString), {raw: true, compat: true}) + "\""; | ||
}, this).join(", "); | ||
var quasiCookedString = quasis.map(function(quasiString) { | ||
return "\"" + this.escapeQuoters(this.cleanupTemplateString(quasiString)) + "\""; | ||
return "\"" + this.escape(this.cleanupTemplateString(quasiString), {compat: true}) + "\""; | ||
}, this).join(", "); | ||
@@ -115,6 +144,18 @@ | ||
var start = quasiContainer.range[0], end = quasiContainer.range[1]; | ||
var lineBreaks = this.alter.getRange(start, end).match(/[\r\n]/g) || []; | ||
this.alter.replace( | ||
quasiContainer.range[0] | ||
, quasiContainer.range[1] | ||
start | ||
, end | ||
, resultString | ||
, {transform: function(str) { | ||
var newLineBreaks = str.match(/[\r\n]/g) || []; | ||
var newLineBreaksCount = newLineBreaks.length; | ||
if ( newLineBreaksCount < lineBreaks.length ) { | ||
str = str + lineBreaks.slice(newLineBreaksCount).join(""); | ||
} | ||
return str; | ||
}} | ||
); | ||
@@ -144,4 +185,4 @@ | ||
quasiString = this.escapeQuoters(this.cleanupTemplateString(quasi.value.raw) | ||
.replace(/((?:\r\n)|\n)/g, "\\\n\\n")) | ||
quasiString = this.escape(this.cleanupTemplateString(quasi.value.raw) | ||
/*.replace(/((?:\r\n)|\n)/g, "\\\n\\n")*/) | ||
; | ||
@@ -148,0 +189,0 @@ |
{ | ||
"name": "es6-transpiler", | ||
"version": "0.7.13-1", | ||
"version": "0.7.13-5", | ||
"description": "es6 -> es5", | ||
@@ -5,0 +5,0 @@ "main": "./build/es5/es6-transpiler.js", |
@@ -0,1 +1,2 @@ | ||
/*globals module,require*/ | ||
// @see http://www.nczonline.net/blog/2012/08/01/a-critical-review-of-ecmascript-6-quasi-literals/ | ||
@@ -36,6 +37,34 @@ "use strict"; | ||
, escapeQuoters: function(templateString) { | ||
return templateString | ||
, escape: function(templateString, options) { | ||
options = options || {}; | ||
let raw = options.raw, compat = options.compat; | ||
var tt = templateString; | ||
templateString = templateString | ||
.replace(/([^\\]|^)"/g, "$1\\\"").replace(/([^\\]|^)"/g, "$1\\\"") | ||
// .replace(/\t/g, "\\t").replace(/\v/g, "\\v").replace(/\f/g, "\\f") | ||
// .replace(/\f/g, "\\f") | ||
//.replace(/\b/g, "\\b") | ||
; | ||
if ( compat ) { | ||
templateString = templateString.replace(/((?:\r\n)|\n)/g, function(found, group) { | ||
return "\\n"; | ||
// return group === "\n" ? "\\n" : "\\r\\n"; | ||
}); | ||
} | ||
else { | ||
templateString = templateString.replace(/((?:\r\n)|\n)/g, function(found, group) { | ||
return "\\\n\\n"; | ||
// return group === "\n" ? "\\\n\\n" : "\\\n\\r\\n"; | ||
}); | ||
} | ||
if ( raw ) { | ||
// templateString = templateString.replace(/\\/g, "\\\\"); | ||
} | ||
// console.log(tt, raw, compat, '->', templateString); | ||
return templateString; | ||
} | ||
@@ -64,7 +93,7 @@ | ||
let quasiRawString = quasis.map(function(quasiString) { | ||
return "\"" + this.cleanupTemplateString(quasiString).replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\""; | ||
return "\"" + this.escape(this.cleanupTemplateString(quasiString), {raw: true, compat: true}) + "\""; | ||
}, this).join(", "); | ||
let quasiCookedString = quasis.map(function(quasiString) { | ||
return "\"" + this.escapeQuoters(this.cleanupTemplateString(quasiString)) + "\""; | ||
return "\"" + this.escape(this.cleanupTemplateString(quasiString), {compat: true}) + "\""; | ||
}, this).join(", "); | ||
@@ -115,6 +144,18 @@ | ||
let start = quasiContainer.range[0], end = quasiContainer.range[1]; | ||
let lineBreaks = this.alter.getRange(start, end).match(/[\r\n]/g) || []; | ||
this.alter.replace( | ||
quasiContainer.range[0] | ||
, quasiContainer.range[1] | ||
start | ||
, end | ||
, resultString | ||
, {transform: function(str) { | ||
const newLineBreaks = str.match(/[\r\n]/g) || []; | ||
const newLineBreaksCount = newLineBreaks.length; | ||
if ( newLineBreaksCount < lineBreaks.length ) { | ||
str = str + lineBreaks.slice(newLineBreaksCount).join(""); | ||
} | ||
return str; | ||
}} | ||
); | ||
@@ -144,4 +185,4 @@ | ||
quasiString = this.escapeQuoters(this.cleanupTemplateString(quasi.value.raw) | ||
.replace(/((?:\r\n)|\n)/g, "\\\n\\n")) | ||
quasiString = this.escape(this.cleanupTemplateString(quasi.value.raw) | ||
/*.replace(/((?:\r\n)|\n)/g, "\\\n\\n")*/) | ||
; | ||
@@ -148,0 +189,0 @@ |
1241359
32478