diff --git a/acorn.js b/acorn.js index 7785748cab..732c42c92c 100644 --- a/acorn.js +++ b/acorn.js @@ -673,7 +673,7 @@ function readInt(radix, len) { var start = tokPos, total = 0; - for (;;) { + for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) { var code = input.charCodeAt(tokPos), val; if (code >= 97) val = code - 97 + 10; // a else if (code >= 65) val = code - 65 + 10; // A diff --git a/index.html b/index.html index 625d5a6ccb..aae57ab37e 100644 --- a/index.html +++ b/index.html @@ -451,7 +451,7 @@ here (don't ask).
len is given, this
will return null unless the integer has exactly len digits. function readInt(radix, len) {
var start = tokPos, total = 0;
- for (;;) {
+ for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {
var code = input.charCodeAt(tokPos), val;
if (code >= 97) val = code - 97 + 10; // a
else if (code >= 65) val = code - 65 + 10; // A
diff --git a/test/tests.js b/test/tests.js
index e571d49670..ac69bb6381 100644
--- a/test/tests.js
+++ b/test/tests.js
@@ -26016,6 +26016,19 @@ test("a\u2028b", {
]
});
+test("'a\\u0026b'", {
+ type: "Program",
+ body: [
+ {
+ type: "ExpressionStatement",
+ expression: {
+ type: "Literal",
+ value: "a\u0026b"
+ }
+ }
+ ]
+});
+
// Failure tests
testFail("{",