Added handling of empty handles to String::AsciiValue and String::Value.
authorsgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 22 Oct 2008 06:30:29 +0000 (06:30 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 22 Oct 2008 06:30:29 +0000 (06:30 +0000)
Review URL: http://codereview.chromium.org/7832

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/api.cc

index 9a662f46c877334fe617d9e00cdb2f7e33b3ea50..b694007520deabdb9421754b70a24a7860a553cd 100644 (file)
@@ -2689,6 +2689,11 @@ String::Utf8Value::~Utf8Value() {
 
 String::AsciiValue::AsciiValue(v8::Handle<v8::Value> obj) {
   EnsureInitialized("v8::String::AsciiValue::AsciiValue()");
+  if (obj.IsEmpty()) {
+    str_ = NULL;
+    length_ = 0;
+    return;
+  }
   HandleScope scope;
   TryCatch try_catch;
   Handle<String> str = obj->ToString();
@@ -2710,6 +2715,11 @@ String::AsciiValue::~AsciiValue() {
 
 String::Value::Value(v8::Handle<v8::Value> obj) {
   EnsureInitialized("v8::String::Value::Value()");
+  if (obj.IsEmpty()) {
+    str_ = NULL;
+    length_ = 0;
+    return;
+  }
   HandleScope scope;
   TryCatch try_catch;
   Handle<String> str = obj->ToString();