Reviewers: Yang,
Message:
PTAL.
Description:
Fixed error introduced in r12761.
BUG=2373
Please review this at https://chromiumcodereview.appspot.com/11198068/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/json-parser.h
A + test/mjsunit/regress/regress-2373.js
Index: src/json-parser.h
diff --git a/src/json-parser.h b/src/json-parser.h
index
3161a01a79cd86ae62a88051090dce6556c15fab..9ccc8ed1fb320c087b0fbaddf01d2b9bc9fddb2b
100644
--- a/src/json-parser.h
+++ b/src/json-parser.h
@@ -400,12 +400,14 @@ Handle<Object>
JsonParser<seq_ascii>::ParseJsonNumber() {
if ('0' <= c0_ && c0_ <= '9') return ReportUnexpectedCharacter();
} else {
int i = 0;
+ int digits = 0;
if (c0_ < '1' || c0_ > '9') return ReportUnexpectedCharacter();
do {
i = i * 10 + c0_ - '0';
+ digits++;
Advance();
- } while (c0_ >= '0' && c0_ <= '9' && i <= (kMaxInt - 9) / 10);
- if (c0_ != '.' && c0_ != 'e' && c0_ != 'E') {
+ } while (c0_ >= '0' && c0_ <= '9');
+ if (c0_ != '.' && c0_ != 'e' && c0_ != 'E' && digits < 10) {
SkipWhitespace();
return Handle<Smi>(Smi::FromInt((negative ? -i : i)), isolate());
}
Index: test/mjsunit/regress/regress-2373.js
diff --git a/test/mjsunit/regress/regress-113924.js
b/test/mjsunit/regress/regress-2373.js
similarity index 95%
copy from test/mjsunit/regress/regress-113924.js
copy to test/mjsunit/regress/regress-2373.js
index
3ecdec48f219b9ea545702ebf3a396debe7a93f8..16a87ece6f57aee42d77171e8087db412610b0a3
100644
--- a/test/mjsunit/regress/regress-113924.js
+++ b/test/mjsunit/regress/regress-2373.js
@@ -25,7 +25,5 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-var count=12000;
-while(count--) {
- eval("var a = new Object(10); a[2] += 7;");
-}
+var o = JSON.parse('{"a":2600753951}');
+assertEquals(2600753951, o.a);
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev