Reviewers: Toon Verwaest,

Message:
PTAL.

Description:
Improve handle allocation in JSON.parse.


BUG=


Please review this at http://codereview.chromium.org/11358065/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/json-parser.h


Index: src/json-parser.h
diff --git a/src/json-parser.h b/src/json-parser.h
index dc757c993606b4c6f64ee070ee43c9b0cc1d9435..c18ec38dedcd6e7b0a5a668c9f0acaec0a55e780 100644
--- a/src/json-parser.h
+++ b/src/json-parser.h
@@ -176,8 +176,8 @@ Handle<Object> JsonParser<seq_ascii>::ParseJson(Handle<String> source,
                                                 Zone* zone) {
   isolate_ = source->map()->GetHeap()->isolate();
   factory_ = isolate_->factory();
-  object_constructor_ =
-      Handle<JSFunction>(isolate()->native_context()->object_function());
+  object_constructor_ = Handle<JSFunction>(
+      isolate()->native_context()->object_function(), isolate());
   zone_ = zone;
   FlattenString(source);
   source_ = source;
@@ -611,7 +611,7 @@ Handle<String> JsonParser<seq_ascii>::ScanJsonString() {
   Advance();
   if (c0_ == '"') {
     AdvanceSkipWhitespace();
-    return Handle<String>(isolate()->heap()->empty_string());
+    return isolate()->factory()->empty_string();
   }

   if (seq_ascii && is_symbol) {
@@ -657,7 +657,7 @@ Handle<String> JsonParser<seq_ascii>::ScanJsonString() {
         position_ = position;
         // Advance past the last '"'.
         AdvanceSkipWhitespace();
-        return Handle<String>(String::cast(element));
+        return Handle<String>(String::cast(element), isolate());
       }
       entry = SymbolTable::NextProbe(entry, count++, capacity);
     }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to