parent
d198b7ed64
commit
96d911a30f
2
acorn.js
2
acorn.js
@ -643,7 +643,7 @@
|
||||
if (isFloat || input.charAt(tokPos) === ".") {
|
||||
var next = input.charAt(++tokPos);
|
||||
if (next === "-" || next === "+") ++tokPos;
|
||||
if (readInt(10) === null) raise(start, "Invalid number");
|
||||
if (readInt(10) === null && ch === ".") raise(start, "Invalid number");
|
||||
isFloat = true;
|
||||
}
|
||||
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="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">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="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
|
||||
|
||||
testFail("{",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user