Avoid quoting when reporting errors for literals

This is a small win performance-wise.

Results of benchmark with 100 runs on V8:

  Before:  31.65 kB/s
  After:   32.83 kB/s
  Speedup: 3.728 %

Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like
Gecko) Chrome/5.0.375.127 Safari/533.4
redux
David Majda 14 years ago
parent c8836c0312
commit b6288a8d9c

@ -644,13 +644,14 @@ PEG.compiler.emitter = function(ast) {
"} else {",
" var ${resultVar} = null;",
" if (reportMatchFailures) {",
" matchFailed(quote(${value|string}));",
" matchFailed(${valueQuoted|string});",
" }",
"}",
{
value: node.value,
length: node.value.length,
resultVar: resultVar
value: node.value,
valueQuoted: quote(node.value),
length: node.value.length,
resultVar: resultVar
}
);
},

@ -187,7 +187,7 @@ PEG.parser = (function(){
} else {
var result8 = null;
if (reportMatchFailures) {
matchFailed(quote(""));
matchFailed("\"\"");
}
}
if (result8 !== null) {
@ -719,7 +719,7 @@ PEG.parser = (function(){
} else {
var result18 = null;
if (reportMatchFailures) {
matchFailed(quote(""));
matchFailed("\"\"");
}
}
if (result18 !== null) {
@ -888,7 +888,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("{"));
matchFailed("\"{\"");
}
}
if (result2 !== null) {
@ -925,7 +925,7 @@ PEG.parser = (function(){
} else {
var result4 = null;
if (reportMatchFailures) {
matchFailed(quote("}"));
matchFailed("\"}\"");
}
}
if (result4 !== null) {
@ -1033,7 +1033,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("="));
matchFailed("\"=\"");
}
}
if (result2 !== null) {
@ -1077,7 +1077,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote(":"));
matchFailed("\":\"");
}
}
if (result2 !== null) {
@ -1121,7 +1121,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote(";"));
matchFailed("\";\"");
}
}
if (result2 !== null) {
@ -1165,7 +1165,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("/"));
matchFailed("\"/\"");
}
}
if (result2 !== null) {
@ -1209,7 +1209,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("&"));
matchFailed("\"&\"");
}
}
if (result2 !== null) {
@ -1253,7 +1253,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("!"));
matchFailed("\"!\"");
}
}
if (result2 !== null) {
@ -1297,7 +1297,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("?"));
matchFailed("\"?\"");
}
}
if (result2 !== null) {
@ -1341,7 +1341,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("*"));
matchFailed("\"*\"");
}
}
if (result2 !== null) {
@ -1385,7 +1385,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("+"));
matchFailed("\"+\"");
}
}
if (result2 !== null) {
@ -1429,7 +1429,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("("));
matchFailed("\"(\"");
}
}
if (result2 !== null) {
@ -1473,7 +1473,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote(")"));
matchFailed("\")\"");
}
}
if (result2 !== null) {
@ -1517,7 +1517,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("."));
matchFailed("\".\"");
}
}
if (result2 !== null) {
@ -1566,7 +1566,7 @@ PEG.parser = (function(){
} else {
var result11 = null;
if (reportMatchFailures) {
matchFailed(quote("_"));
matchFailed("\"_\"");
}
}
if (result11 !== null) {
@ -1578,7 +1578,7 @@ PEG.parser = (function(){
} else {
var result10 = null;
if (reportMatchFailures) {
matchFailed(quote("$"));
matchFailed("\"$\"");
}
}
if (result10 !== null) {
@ -1604,7 +1604,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("_"));
matchFailed("\"_\"");
}
}
if (result7 !== null) {
@ -1616,7 +1616,7 @@ PEG.parser = (function(){
} else {
var result6 = null;
if (reportMatchFailures) {
matchFailed(quote("$"));
matchFailed("\"$\"");
}
}
if (result6 !== null) {
@ -1643,7 +1643,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("_"));
matchFailed("\"_\"");
}
}
if (result7 !== null) {
@ -1655,7 +1655,7 @@ PEG.parser = (function(){
} else {
var result6 = null;
if (reportMatchFailures) {
matchFailed(quote("$"));
matchFailed("\"$\"");
}
}
if (result6 !== null) {
@ -1765,7 +1765,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\""));
matchFailed("\"\\\"\"");
}
}
if (result2 !== null) {
@ -1782,7 +1782,7 @@ PEG.parser = (function(){
} else {
var result4 = null;
if (reportMatchFailures) {
matchFailed(quote("\""));
matchFailed("\"\\\"\"");
}
}
if (result4 !== null) {
@ -1881,7 +1881,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("\""));
matchFailed("\"\\\"\"");
}
}
if (result7 !== null) {
@ -1893,7 +1893,7 @@ PEG.parser = (function(){
} else {
var result6 = null;
if (reportMatchFailures) {
matchFailed(quote("\\"));
matchFailed("\"\\\\\"");
}
}
if (result6 !== null) {
@ -1963,7 +1963,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("'"));
matchFailed("\"'\"");
}
}
if (result2 !== null) {
@ -1980,7 +1980,7 @@ PEG.parser = (function(){
} else {
var result4 = null;
if (reportMatchFailures) {
matchFailed(quote("'"));
matchFailed("\"'\"");
}
}
if (result4 !== null) {
@ -2079,7 +2079,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("'"));
matchFailed("\"'\"");
}
}
if (result7 !== null) {
@ -2091,7 +2091,7 @@ PEG.parser = (function(){
} else {
var result6 = null;
if (reportMatchFailures) {
matchFailed(quote("\\"));
matchFailed("\"\\\\\"");
}
}
if (result6 !== null) {
@ -2162,7 +2162,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("["));
matchFailed("\"[\"");
}
}
if (result2 !== null) {
@ -2172,7 +2172,7 @@ PEG.parser = (function(){
} else {
var result10 = null;
if (reportMatchFailures) {
matchFailed(quote("^"));
matchFailed("\"^\"");
}
}
var result3 = result10 !== null ? result10 : '';
@ -2210,7 +2210,7 @@ PEG.parser = (function(){
} else {
var result5 = null;
if (reportMatchFailures) {
matchFailed(quote("]"));
matchFailed("\"]\"");
}
}
if (result5 !== null) {
@ -2284,7 +2284,7 @@ PEG.parser = (function(){
} else {
var result3 = null;
if (reportMatchFailures) {
matchFailed(quote("-"));
matchFailed("\"-\"");
}
}
if (result3 !== null) {
@ -2426,7 +2426,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("]"));
matchFailed("\"]\"");
}
}
if (result7 !== null) {
@ -2438,7 +2438,7 @@ PEG.parser = (function(){
} else {
var result6 = null;
if (reportMatchFailures) {
matchFailed(quote("\\"));
matchFailed("\"\\\\\"");
}
}
if (result6 !== null) {
@ -2508,7 +2508,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\\"));
matchFailed("\"\\\\\"");
}
}
if (result2 !== null) {
@ -2525,7 +2525,7 @@ PEG.parser = (function(){
} else {
var result8 = null;
if (reportMatchFailures) {
matchFailed(quote("x"));
matchFailed("\"x\"");
}
}
if (result8 !== null) {
@ -2537,7 +2537,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("u"));
matchFailed("\"u\"");
}
}
if (result7 !== null) {
@ -2620,7 +2620,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\\0"));
matchFailed("\"\\\\0\"");
}
}
if (result2 !== null) {
@ -2674,7 +2674,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\\x"));
matchFailed("\"\\\\x\"");
}
}
if (result2 !== null) {
@ -2726,7 +2726,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\\u"));
matchFailed("\"\\\\u\"");
}
}
if (result2 !== null) {
@ -2790,7 +2790,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\\"));
matchFailed("\"\\\\\"");
}
}
if (result2 !== null) {
@ -3064,7 +3064,7 @@ PEG.parser = (function(){
} else {
var result1 = null;
if (reportMatchFailures) {
matchFailed(quote("//"));
matchFailed("\"//\"");
}
}
if (result1 !== null) {
@ -3172,7 +3172,7 @@ PEG.parser = (function(){
} else {
var result1 = null;
if (reportMatchFailures) {
matchFailed(quote("/*"));
matchFailed("\"/*\"");
}
}
if (result1 !== null) {
@ -3187,7 +3187,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("*/"));
matchFailed("\"*/\"");
}
}
reportMatchFailures = savedReportMatchFailuresVar0;
@ -3229,7 +3229,7 @@ PEG.parser = (function(){
} else {
var result7 = null;
if (reportMatchFailures) {
matchFailed(quote("*/"));
matchFailed("\"*/\"");
}
}
reportMatchFailures = savedReportMatchFailuresVar0;
@ -3267,7 +3267,7 @@ PEG.parser = (function(){
} else {
var result3 = null;
if (reportMatchFailures) {
matchFailed(quote("*/"));
matchFailed("\"*/\"");
}
}
if (result3 !== null) {
@ -3310,7 +3310,7 @@ PEG.parser = (function(){
} else {
var result5 = null;
if (reportMatchFailures) {
matchFailed(quote("\n"));
matchFailed("\"\\n\"");
}
}
if (result5 !== null) {
@ -3322,7 +3322,7 @@ PEG.parser = (function(){
} else {
var result4 = null;
if (reportMatchFailures) {
matchFailed(quote("\r\n"));
matchFailed("\"\\r\\n\"");
}
}
if (result4 !== null) {
@ -3334,7 +3334,7 @@ PEG.parser = (function(){
} else {
var result3 = null;
if (reportMatchFailures) {
matchFailed(quote("\r"));
matchFailed("\"\\r\"");
}
}
if (result3 !== null) {
@ -3346,7 +3346,7 @@ PEG.parser = (function(){
} else {
var result2 = null;
if (reportMatchFailures) {
matchFailed(quote("\u2028"));
matchFailed("\"\\u2028\"");
}
}
if (result2 !== null) {
@ -3358,7 +3358,7 @@ PEG.parser = (function(){
} else {
var result1 = null;
if (reportMatchFailures) {
matchFailed(quote("\u2029"));
matchFailed("\"\\u2029\"");
}
}
if (result1 !== null) {

Loading…
Cancel
Save