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

Reply via email to