parent
d198b7ed64
commit
96d911a30f
2
acorn.js
2
acorn.js
@ -643,7 +643,7 @@
|
|||||||
if (isFloat || input.charAt(tokPos) === ".") {
|
if (isFloat || input.charAt(tokPos) === ".") {
|
||||||
var next = input.charAt(++tokPos);
|
var next = input.charAt(++tokPos);
|
||||||
if (next === "-" || next === "+") ++tokPos;
|
if (next === "-" || next === "+") ++tokPos;
|
||||||
if (readInt(10) === null) raise(start, "Invalid number");
|
if (readInt(10) === null && ch === ".") raise(start, "Invalid number");
|
||||||
isFloat = true;
|
isFloat = true;
|
||||||
}
|
}
|
||||||
if (/e/i.test(input.charAt(tokPos))) {
|
if (/e/i.test(input.charAt(tokPos))) {
|
||||||
|
|||||||
@ -417,7 +417,7 @@ will return <code>null</code> unless the integer has exactly <code>len</code> di
|
|||||||
<span class="k">if</span> <span class="p">(</span><span class="nx">isFloat</span> <span class="o">||</span> <span class="nx">input</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span><span class="nx">tokPos</span><span class="p">)</span> <span class="o">===</span> <span class="s2">"."</span><span class="p">)</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="p">(</span><span class="nx">isFloat</span> <span class="o">||</span> <span class="nx">input</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span><span class="nx">tokPos</span><span class="p">)</span> <span class="o">===</span> <span class="s2">"."</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="kd">var</span> <span class="nx">next</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span><span class="o">++</span><span class="nx">tokPos</span><span class="p">);</span>
|
<span class="kd">var</span> <span class="nx">next</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span><span class="o">++</span><span class="nx">tokPos</span><span class="p">);</span>
|
||||||
<span class="k">if</span> <span class="p">(</span><span class="nx">next</span> <span class="o">===</span> <span class="s2">"-"</span> <span class="o">||</span> <span class="nx">next</span> <span class="o">===</span> <span class="s2">"+"</span><span class="p">)</span> <span class="o">++</span><span class="nx">tokPos</span><span class="p">;</span>
|
<span class="k">if</span> <span class="p">(</span><span class="nx">next</span> <span class="o">===</span> <span class="s2">"-"</span> <span class="o">||</span> <span class="nx">next</span> <span class="o">===</span> <span class="s2">"+"</span><span class="p">)</span> <span class="o">++</span><span class="nx">tokPos</span><span class="p">;</span>
|
||||||
<span class="k">if</span> <span class="p">(</span><span class="nx">readInt</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="nx">raise</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="s2">"Invalid number"</span><span class="p">);</span>
|
<span class="k">if</span> <span class="p">(</span><span class="nx">readInt</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">&&</span> <span class="nx">ch</span> <span class="o">===</span> <span class="s2">"."</span><span class="p">)</span> <span class="nx">raise</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="s2">"Invalid number"</span><span class="p">);</span>
|
||||||
<span class="nx">isFloat</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
<span class="nx">isFloat</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
<span class="k">if</span> <span class="p">(</span><span class="sr">/e/i</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">input</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span><span class="nx">tokPos</span><span class="p">)))</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="p">(</span><span class="sr">/e/i</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">input</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span><span class="nx">tokPos</span><span class="p">)))</span> <span class="p">{</span>
|
||||||
|
|||||||
@ -25981,6 +25981,50 @@ test("(function () { 'use strict'; '\0'; }())", {
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("123..toString(10)", {
|
||||||
|
type: "Program",
|
||||||
|
start: 0,
|
||||||
|
end: 17,
|
||||||
|
body: [
|
||||||
|
{
|
||||||
|
type: "ExpressionStatement",
|
||||||
|
start: 0,
|
||||||
|
end: 17,
|
||||||
|
expression: {
|
||||||
|
type: "CallExpression",
|
||||||
|
start: 0,
|
||||||
|
callee: {
|
||||||
|
type: "MemberExpression",
|
||||||
|
start: 0,
|
||||||
|
object: {
|
||||||
|
type: "Literal",
|
||||||
|
start: 0,
|
||||||
|
end: 4,
|
||||||
|
value: 123
|
||||||
|
},
|
||||||
|
property: {
|
||||||
|
type: "Identifier",
|
||||||
|
start: 5,
|
||||||
|
end: 13,
|
||||||
|
name: "toString"
|
||||||
|
},
|
||||||
|
computed: false,
|
||||||
|
end: 13
|
||||||
|
},
|
||||||
|
arguments: [
|
||||||
|
{
|
||||||
|
type: "Literal",
|
||||||
|
start: 14,
|
||||||
|
end: 16,
|
||||||
|
value: 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
end: 17
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
// Failure tests
|
// Failure tests
|
||||||
|
|
||||||
testFail("{",
|
testFail("{",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user