| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 7803c873a18711126c07310b294ee50aa51415ef..0db63c1a164e33879c568253c0b19098e37fd6a2 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -88,7 +88,8 @@ using ::v8::Value;
|
| void RunWithProfiler(void (*test)()) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::Local<v8::String> profile_name = v8::String::New("my_profile1");
|
| + v8::Local<v8::String> profile_name =
|
| + v8::String::NewFromUtf8(env->GetIsolate(), "my_profile1");
|
| v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
|
|
|
| cpu_profiler->StartCpuProfiling(profile_name);
|
| @@ -202,7 +203,7 @@ THREADED_TEST(Handles) {
|
| CHECK(undef->IsUndefined());
|
|
|
| const char* c_source = "1 + 2 + 3";
|
| - Local<String> source = String::New(c_source);
|
| + Local<String> source = String::NewFromUtf8(CcTest::isolate(), c_source);
|
| Local<Script> script = Script::Compile(source);
|
| CHECK_EQ(6, script->Run()->Int32Value());
|
|
|
| @@ -214,13 +215,13 @@ THREADED_TEST(IsolateOfContext) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Handle<Context> env = Context::New(CcTest::isolate());
|
|
|
| - CHECK(!env->InContext());
|
| + CHECK(!env->GetIsolate()->InContext());
|
| CHECK(env->GetIsolate() == CcTest::isolate());
|
| env->Enter();
|
| - CHECK(env->InContext());
|
| + CHECK(env->GetIsolate()->InContext());
|
| CHECK(env->GetIsolate() == CcTest::isolate());
|
| env->Exit();
|
| - CHECK(!env->InContext());
|
| + CHECK(!env->GetIsolate()->InContext());
|
| CHECK(env->GetIsolate() == CcTest::isolate());
|
| }
|
|
|
| @@ -434,7 +435,7 @@ THREADED_TEST(Script) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| const char* c_source = "1 + 2 + 3";
|
| - Local<String> source = String::New(c_source);
|
| + Local<String> source = String::NewFromUtf8(env->GetIsolate(), c_source);
|
| Local<Script> script = Script::Compile(source);
|
| CHECK_EQ(6, script->Run()->Int32Value());
|
| }
|
| @@ -562,7 +563,8 @@ THREADED_TEST(ScriptMakingExternalString) {
|
| {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - Local<String> source = String::New(two_byte_source);
|
| + Local<String> source =
|
| + String::NewFromTwoByte(env->GetIsolate(), two_byte_source);
|
| // Trigger GCs so that the newly allocated string moves to old gen.
|
| CcTest::heap()->CollectGarbage(i::NEW_SPACE); // in survivor space now
|
| CcTest::heap()->CollectGarbage(i::NEW_SPACE); // in old gen now
|
| @@ -622,7 +624,8 @@ TEST(MakingExternalStringConditions) {
|
| CcTest::heap()->CollectGarbage(i::NEW_SPACE);
|
|
|
| uint16_t* two_byte_string = AsciiToTwoByteString("s1");
|
| - Local<String> small_string = String::New(two_byte_string);
|
| + Local<String> small_string =
|
| + String::NewFromTwoByte(env->GetIsolate(), two_byte_string);
|
| i::DeleteArray(two_byte_string);
|
|
|
| // We should refuse to externalize newly created small string.
|
| @@ -634,7 +637,7 @@ TEST(MakingExternalStringConditions) {
|
| CHECK(small_string->CanMakeExternal());
|
|
|
| two_byte_string = AsciiToTwoByteString("small string 2");
|
| - small_string = String::New(two_byte_string);
|
| + small_string = String::NewFromTwoByte(env->GetIsolate(), two_byte_string);
|
| i::DeleteArray(two_byte_string);
|
|
|
| // We should refuse externalizing newly created small string.
|
| @@ -651,7 +654,8 @@ TEST(MakingExternalStringConditions) {
|
| buf[buf_size - 1] = '\0';
|
|
|
| two_byte_string = AsciiToTwoByteString(buf);
|
| - Local<String> large_string = String::New(two_byte_string);
|
| + Local<String> large_string =
|
| + String::NewFromTwoByte(env->GetIsolate(), two_byte_string);
|
| i::DeleteArray(buf);
|
| i::DeleteArray(two_byte_string);
|
| // Large strings should be immediately accepted.
|
| @@ -667,7 +671,7 @@ TEST(MakingExternalAsciiStringConditions) {
|
| CcTest::heap()->CollectGarbage(i::NEW_SPACE);
|
| CcTest::heap()->CollectGarbage(i::NEW_SPACE);
|
|
|
| - Local<String> small_string = String::New("s1");
|
| + Local<String> small_string = String::NewFromUtf8(env->GetIsolate(), "s1");
|
| // We should refuse to externalize newly created small string.
|
| CHECK(!small_string->CanMakeExternal());
|
| // Trigger GCs so that the newly allocated string moves to old gen.
|
| @@ -676,7 +680,7 @@ TEST(MakingExternalAsciiStringConditions) {
|
| // Old space strings should be accepted.
|
| CHECK(small_string->CanMakeExternal());
|
|
|
| - small_string = String::New("small string 2");
|
| + small_string = String::NewFromUtf8(env->GetIsolate(), "small string 2");
|
| // We should refuse externalizing newly created small string.
|
| CHECK(!small_string->CanMakeExternal());
|
| for (int i = 0; i < 100; i++) {
|
| @@ -689,7 +693,7 @@ TEST(MakingExternalAsciiStringConditions) {
|
| char* buf = i::NewArray<char>(buf_size);
|
| memset(buf, 'a', buf_size);
|
| buf[buf_size - 1] = '\0';
|
| - Local<String> large_string = String::New(buf);
|
| + Local<String> large_string = String::NewFromUtf8(env->GetIsolate(), buf);
|
| i::DeleteArray(buf);
|
| // Large strings should be immediately accepted.
|
| CHECK(large_string->CanMakeExternal());
|
| @@ -899,7 +903,8 @@ THREADED_TEST(StringConcat) {
|
| Local<String> left = v8_str(one_byte_string_1);
|
|
|
| uint16_t* two_byte_source = AsciiToTwoByteString(two_byte_string_1);
|
| - Local<String> right = String::New(two_byte_source);
|
| + Local<String> right =
|
| + String::NewFromTwoByte(env->GetIsolate(), two_byte_source);
|
| i::DeleteArray(two_byte_source);
|
|
|
| Local<String> source = String::Concat(left, right);
|
| @@ -913,7 +918,7 @@ THREADED_TEST(StringConcat) {
|
| source = String::Concat(source, right);
|
|
|
| two_byte_source = AsciiToTwoByteString(two_byte_string_2);
|
| - right = String::New(two_byte_source);
|
| + right = String::NewFromTwoByte(env->GetIsolate(), two_byte_source);
|
| i::DeleteArray(two_byte_source);
|
|
|
| source = String::Concat(source, right);
|
| @@ -2522,7 +2527,7 @@ THREADED_TEST(GlobalObjectHasRealIndexedProperty) {
|
| v8::HandleScope scope(CcTest::isolate());
|
|
|
| v8::Local<v8::Object> global = env->Global();
|
| - global->Set(0, v8::String::New("value"));
|
| + global->Set(0, v8::String::NewFromUtf8(CcTest::isolate(), "value"));
|
| CHECK(global->HasRealIndexedProperty(0));
|
| }
|
|
|
| @@ -2614,8 +2619,11 @@ THREADED_TEST(EmbedderData) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - CheckEmbedderData(&env, 3, v8::String::New("The quick brown fox jumps"));
|
| - CheckEmbedderData(&env, 2, v8::String::New("over the lazy dog."));
|
| + CheckEmbedderData(
|
| + &env, 3,
|
| + v8::String::NewFromUtf8(env->GetIsolate(), "The quick brown fox jumps"));
|
| + CheckEmbedderData(&env, 2, v8::String::NewFromUtf8(env->GetIsolate(),
|
| + "over the lazy dog."));
|
| CheckEmbedderData(&env, 1, v8::Number::New(1.2345));
|
| CheckEmbedderData(&env, 0, v8::Boolean::New(true));
|
| }
|
| @@ -2692,7 +2700,7 @@ THREADED_TEST(SymbolProperties) {
|
| CHECK(!sym1->StrictEquals(sym2));
|
| CHECK(!sym2->StrictEquals(sym1));
|
|
|
| - CHECK(sym2->Name()->Equals(v8::String::New("my-symbol")));
|
| + CHECK(sym2->Name()->Equals(v8::String::NewFromUtf8(isolate, "my-symbol")));
|
|
|
| v8::Local<v8::Value> sym_val = sym2;
|
| CHECK(sym_val->IsSymbol());
|
| @@ -2723,7 +2731,8 @@ THREADED_TEST(SymbolProperties) {
|
|
|
| CHECK_EQ(0, obj->GetOwnPropertyNames()->Length());
|
| int num_props = obj->GetPropertyNames()->Length();
|
| - CHECK(obj->Set(v8::String::New("bla"), v8::Integer::New(20)));
|
| + CHECK(
|
| + obj->Set(v8::String::NewFromUtf8(isolate, "bla"), v8::Integer::New(20)));
|
| CHECK_EQ(1, obj->GetOwnPropertyNames()->Length());
|
| CHECK_EQ(num_props + 1, obj->GetPropertyNames()->Length());
|
|
|
| @@ -2765,7 +2774,7 @@ THREADED_TEST(PrivateProperties) {
|
|
|
| CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags);
|
|
|
| - CHECK(priv2->Name()->Equals(v8::String::New("my-private")));
|
| + CHECK(priv2->Name()->Equals(v8::String::NewFromUtf8(isolate, "my-private")));
|
|
|
| // Make sure delete of a non-existent private symbol property works.
|
| CHECK(obj->DeletePrivate(priv1));
|
| @@ -2780,7 +2789,8 @@ THREADED_TEST(PrivateProperties) {
|
|
|
| CHECK_EQ(0, obj->GetOwnPropertyNames()->Length());
|
| int num_props = obj->GetPropertyNames()->Length();
|
| - CHECK(obj->Set(v8::String::New("bla"), v8::Integer::New(20)));
|
| + CHECK(
|
| + obj->Set(v8::String::NewFromUtf8(isolate, "bla"), v8::Integer::New(20)));
|
| CHECK_EQ(1, obj->GetOwnPropertyNames()->Length());
|
| CHECK_EQ(num_props + 1, obj->GetPropertyNames()->Length());
|
|
|
| @@ -3224,8 +3234,7 @@ THREADED_TEST(GlobalHandle) {
|
| v8::HandleScope scope(isolate);
|
| CHECK_EQ(v8::Local<String>::New(isolate, global)->Length(), 3);
|
| }
|
| - global.Dispose();
|
| - global.Clear();
|
| + global.Reset();
|
| {
|
| v8::HandleScope scope(isolate);
|
| global.Reset(isolate, v8_str("str"));
|
| @@ -3234,7 +3243,7 @@ THREADED_TEST(GlobalHandle) {
|
| v8::HandleScope scope(isolate);
|
| CHECK_EQ(v8::Local<String>::New(isolate, global)->Length(), 3);
|
| }
|
| - global.Dispose();
|
| + global.Reset();
|
| }
|
|
|
|
|
| @@ -3261,7 +3270,7 @@ THREADED_TEST(ResettingGlobalHandle) {
|
| v8::HandleScope scope(isolate);
|
| CHECK_EQ(v8::Local<String>::New(isolate, global)->Length(), 6);
|
| }
|
| - global.Dispose();
|
| + global.Reset();
|
| CHECK_EQ(global_handles->global_handles_count(), initial_handle_count - 1);
|
| }
|
|
|
| @@ -3290,28 +3299,6 @@ THREADED_TEST(ResettingGlobalHandleToEmpty) {
|
| }
|
|
|
|
|
| -THREADED_TEST(ClearAndLeakGlobal) {
|
| - v8::Isolate* isolate = CcTest::isolate();
|
| - v8::internal::GlobalHandles* global_handles = NULL;
|
| - int initial_handle_count = 0;
|
| - v8::Persistent<String> global;
|
| - {
|
| - v8::HandleScope scope(isolate);
|
| - Local<String> str = v8_str("str");
|
| - global_handles =
|
| - reinterpret_cast<v8::internal::Isolate*>(isolate)->global_handles();
|
| - initial_handle_count = global_handles->global_handles_count();
|
| - global.Reset(isolate, str);
|
| - }
|
| - CHECK_EQ(global_handles->global_handles_count(), initial_handle_count + 1);
|
| - String* str = global.ClearAndLeak();
|
| - CHECK(global.IsEmpty());
|
| - CHECK_EQ(global_handles->global_handles_count(), initial_handle_count + 1);
|
| - global_handles->Destroy(reinterpret_cast<i::Object**>(str));
|
| - CHECK_EQ(global_handles->global_handles_count(), initial_handle_count);
|
| -}
|
| -
|
| -
|
| THREADED_TEST(GlobalHandleUpcast) {
|
| v8::Isolate* isolate = CcTest::isolate();
|
| v8::HandleScope scope(isolate);
|
| @@ -3321,7 +3308,7 @@ THREADED_TEST(GlobalHandleUpcast) {
|
| v8::Persistent<Value>::Cast(global_string);
|
| CHECK(v8::Local<v8::Value>::New(isolate, global_value)->IsString());
|
| CHECK(global_string == v8::Persistent<String>::Cast(global_value));
|
| - global_string.Dispose();
|
| + global_string.Reset();
|
| }
|
|
|
|
|
| @@ -3358,8 +3345,8 @@ THREADED_TEST(HandleEquality) {
|
| CHECK_EQ(local1 == anotherLocal1, true);
|
| CHECK_EQ(local1 != anotherLocal1, false);
|
| }
|
| - global1.Dispose();
|
| - global2.Dispose();
|
| + global1.Reset();
|
| + global2.Reset();
|
| }
|
|
|
|
|
| @@ -3389,7 +3376,7 @@ static void WeakPointerCallback(v8::Isolate* isolate,
|
| WeakCallCounter* counter) {
|
| CHECK_EQ(1234, counter->id());
|
| counter->increment();
|
| - handle->Dispose();
|
| + handle->Reset();
|
| }
|
|
|
|
|
| @@ -3509,15 +3496,15 @@ THREADED_TEST(ApiObjectGroupsForSubtypes) {
|
| {
|
| HandleScope scope(iso);
|
| g1s1.Reset(iso, Object::New());
|
| - g1s2.Reset(iso, String::New("foo1"));
|
| - g1c1.Reset(iso, String::New("foo2"));
|
| + g1s2.Reset(iso, String::NewFromUtf8(iso, "foo1"));
|
| + g1c1.Reset(iso, String::NewFromUtf8(iso, "foo2"));
|
| g1s1.MakeWeak(&counter, &WeakPointerCallback);
|
| g1s2.MakeWeak(&counter, &WeakPointerCallback);
|
| g1c1.MakeWeak(&counter, &WeakPointerCallback);
|
|
|
| g2s1.Reset(iso, Object::New());
|
| - g2s2.Reset(iso, String::New("foo3"));
|
| - g2c1.Reset(iso, String::New("foo4"));
|
| + g2s2.Reset(iso, String::NewFromUtf8(iso, "foo3"));
|
| + g2c1.Reset(iso, String::NewFromUtf8(iso, "foo4"));
|
| g2s1.MakeWeak(&counter, &WeakPointerCallback);
|
| g2s2.MakeWeak(&counter, &WeakPointerCallback);
|
| g2c1.MakeWeak(&counter, &WeakPointerCallback);
|
| @@ -4269,8 +4256,8 @@ TEST(OutOfMemory) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| v8::V8::IgnoreOutOfMemoryException();
|
| - Local<Script> script =
|
| - Script::Compile(String::New(js_code_causing_out_of_memory));
|
| + Local<Script> script = Script::Compile(String::NewFromUtf8(
|
| + context->GetIsolate(), js_code_causing_out_of_memory));
|
| Local<Value> result = script->Run();
|
|
|
| // Check for out of memory state.
|
| @@ -4284,8 +4271,8 @@ void ProvokeOutOfMemory(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| - Local<Script> script =
|
| - Script::Compile(String::New(js_code_causing_out_of_memory));
|
| + Local<Script> script = Script::Compile(String::NewFromUtf8(
|
| + context->GetIsolate(), js_code_causing_out_of_memory));
|
| Local<Value> result = script->Run();
|
|
|
| // Check for out of memory state.
|
| @@ -5175,7 +5162,7 @@ THREADED_TEST(Equality) {
|
| v8::Handle<v8::Object> obj = v8::Object::New();
|
| v8::Persistent<v8::Object> alias(isolate, obj);
|
| CHECK(v8::Local<v8::Object>::New(isolate, alias)->StrictEquals(obj));
|
| - alias.Dispose();
|
| + alias.Reset();
|
|
|
| CHECK(v8_str("a")->SameValue(v8_str("a")));
|
| CHECK(!v8_str("a")->SameValue(v8_str("b")));
|
| @@ -5500,8 +5487,7 @@ THREADED_TEST(SimplePropertyWrite) {
|
| CHECK(xValue.IsEmpty());
|
| script->Run();
|
| CHECK_EQ(v8_num(4), Local<Value>::New(CcTest::isolate(), xValue));
|
| - xValue.Dispose();
|
| - xValue.Clear();
|
| + xValue.Reset();
|
| }
|
| }
|
|
|
| @@ -5517,8 +5503,7 @@ THREADED_TEST(SetterOnly) {
|
| CHECK(xValue.IsEmpty());
|
| script->Run();
|
| CHECK_EQ(v8_num(4), Local<Value>::New(CcTest::isolate(), xValue));
|
| - xValue.Dispose();
|
| - xValue.Clear();
|
| + xValue.Reset();
|
| }
|
| }
|
|
|
| @@ -6308,7 +6293,8 @@ THREADED_TEST(UndetectableString) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - Local<String> obj = String::NewUndetectable("foo");
|
| + Local<String> obj = String::NewFromUtf8(env->GetIsolate(), "foo",
|
| + String::kUndetectableString);
|
| env->Global()->Set(v8_str("undetectable"), obj);
|
|
|
| ExpectString("undetectable", "foo");
|
| @@ -6349,7 +6335,8 @@ TEST(UndetectableOptimized) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
|
|
| - Local<String> obj = String::NewUndetectable("foo");
|
| + Local<String> obj = String::NewFromUtf8(env->GetIsolate(), "foo",
|
| + String::kUndetectableString);
|
| env->Global()->Set(v8_str("undetectable"), obj);
|
| env->Global()->Set(v8_str("detectable"), v8_str("bar"));
|
|
|
| @@ -6384,13 +6371,13 @@ static inline void PersistentHandles(v8::Isolate* isolate) {
|
| USE(PersistentHandles);
|
| Local<String> str = v8_str("foo");
|
| v8::Persistent<String> p_str(isolate, str);
|
| - p_str.Dispose();
|
| + p_str.Reset();
|
| Local<Script> scr = Script::Compile(v8_str(""));
|
| v8::Persistent<Script> p_scr(isolate, scr);
|
| - p_scr.Dispose();
|
| + p_scr.Reset();
|
| Local<ObjectTemplate> templ = ObjectTemplate::New();
|
| v8::Persistent<ObjectTemplate> p_templ(isolate, templ);
|
| - p_templ.Dispose();
|
| + p_templ.Reset();
|
| }
|
|
|
|
|
| @@ -6697,7 +6684,8 @@ static void CheckDependencies(const char* name, const char* expected) {
|
| v8::HandleScope handle_scope(CcTest::isolate());
|
| v8::ExtensionConfiguration config(1, &name);
|
| LocalContext context(&config);
|
| - CHECK_EQ(String::New(expected), context->Global()->Get(v8_str("loaded")));
|
| + CHECK_EQ(String::NewFromUtf8(CcTest::isolate(), expected),
|
| + context->Global()->Get(v8_str("loaded")));
|
| }
|
|
|
|
|
| @@ -6854,8 +6842,8 @@ TEST(RegexpOutOfMemory) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::V8::SetFatalErrorHandler(OOMCallback);
|
| LocalContext context;
|
| - Local<Script> script =
|
| - Script::Compile(String::New(js_code_causing_huge_string_flattening));
|
| + Local<Script> script = Script::Compile(String::NewFromUtf8(
|
| + CcTest::isolate(), js_code_causing_huge_string_flattening));
|
| last_location = NULL;
|
| script->Run();
|
|
|
| @@ -6892,7 +6880,7 @@ class Snorkel {
|
| class Whammy {
|
| public:
|
| explicit Whammy(v8::Isolate* isolate) : cursor_(0), isolate_(isolate) { }
|
| - ~Whammy() { script_.Dispose(); }
|
| + ~Whammy() { script_.Reset(); }
|
| v8::Handle<Script> getScript() {
|
| if (script_.IsEmpty()) script_.Reset(isolate_, v8_compile("({}).blammo"));
|
| return Local<Script>::New(isolate_, script_);
|
| @@ -6925,7 +6913,6 @@ void WhammyPropertyGetter(Local<String> name,
|
| v8::Local<v8::Object>::New(info.GetIsolate(), prev)
|
| ->Set(v8_str("next"), obj);
|
| prev.MakeWeak<Value, Snorkel>(new Snorkel(), &HandleWeakReference);
|
| - whammy->objects_[whammy->cursor_].Clear();
|
| }
|
| whammy->objects_[whammy->cursor_].Reset(info.GetIsolate(), obj);
|
| whammy->cursor_ = (whammy->cursor_ + 1) % Whammy::kObjectCount;
|
| @@ -6966,7 +6953,7 @@ THREADED_TEST(WeakReference) {
|
| static void DisposeAndSetFlag(v8::Isolate* isolate,
|
| v8::Persistent<v8::Object>* obj,
|
| bool* data) {
|
| - obj->Dispose();
|
| + obj->Reset();
|
| *(data) = true;
|
| }
|
|
|
| @@ -7012,7 +6999,7 @@ static void InvokeMarkSweep() {
|
| static void ForceScavenge(v8::Isolate* isolate,
|
| v8::Persistent<v8::Object>* obj,
|
| bool* data) {
|
| - obj->Dispose();
|
| + obj->Reset();
|
| *(data) = true;
|
| InvokeScavenge();
|
| }
|
| @@ -7021,7 +7008,7 @@ static void ForceScavenge(v8::Isolate* isolate,
|
| static void ForceMarkSweep(v8::Isolate* isolate,
|
| v8::Persistent<v8::Object>* obj,
|
| bool* data) {
|
| - obj->Dispose();
|
| + obj->Reset();
|
| *(data) = true;
|
| InvokeMarkSweep();
|
| }
|
| @@ -7414,7 +7401,8 @@ THREADED_TEST(StringWrite) {
|
| v8::Handle<String> str = v8_str("abcde");
|
| // abc<Icelandic eth><Unicode snowman>.
|
| v8::Handle<String> str2 = v8_str("abc\303\260\342\230\203");
|
| - v8::Handle<String> str3 = v8::String::New("abc\0def", 7);
|
| + v8::Handle<String> str3 = v8::String::NewFromUtf8(
|
| + context->GetIsolate(), "abc\0def", v8::String::kNormalString, 7);
|
| const int kStride = 4; // Must match stride in for loops in JS below.
|
| CompileRun(
|
| "var left = '';"
|
| @@ -7808,10 +7796,12 @@ static bool SameSymbol(Handle<String> s1, Handle<String> s2) {
|
| return *is1 == *is2;
|
| }
|
|
|
| -
|
| -static void SameSymbolHelper(const char* a, const char* b) {
|
| - Handle<String> symbol1 = v8::String::NewSymbol(a);
|
| - Handle<String> symbol2 = v8::String::NewSymbol(b);
|
| +static void SameSymbolHelper(v8::Isolate* isolate, const char* a,
|
| + const char* b) {
|
| + Handle<String> symbol1 =
|
| + v8::String::NewFromUtf8(isolate, a, v8::String::kInternalizedString);
|
| + Handle<String> symbol2 =
|
| + v8::String::NewFromUtf8(isolate, b, v8::String::kInternalizedString);
|
| CHECK(SameSymbol(symbol1, symbol2));
|
| }
|
|
|
| @@ -7820,17 +7810,23 @@ THREADED_TEST(Utf16Symbol) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
|
|
| - Handle<String> symbol1 = v8::String::NewSymbol("abc");
|
| - Handle<String> symbol2 = v8::String::NewSymbol("abc");
|
| + Handle<String> symbol1 = v8::String::NewFromUtf8(
|
| + context->GetIsolate(), "abc", v8::String::kInternalizedString);
|
| + Handle<String> symbol2 = v8::String::NewFromUtf8(
|
| + context->GetIsolate(), "abc", v8::String::kInternalizedString);
|
| CHECK(SameSymbol(symbol1, symbol2));
|
|
|
| - SameSymbolHelper("\360\220\220\205", // 4 byte encoding.
|
| + SameSymbolHelper(context->GetIsolate(),
|
| + "\360\220\220\205", // 4 byte encoding.
|
| "\355\240\201\355\260\205"); // 2 3-byte surrogates.
|
| - SameSymbolHelper("\355\240\201\355\260\206", // 2 3-byte surrogates.
|
| + SameSymbolHelper(context->GetIsolate(),
|
| + "\355\240\201\355\260\206", // 2 3-byte surrogates.
|
| "\360\220\220\206"); // 4 byte encoding.
|
| - SameSymbolHelper("x\360\220\220\205", // 4 byte encoding.
|
| + SameSymbolHelper(context->GetIsolate(),
|
| + "x\360\220\220\205", // 4 byte encoding.
|
| "x\355\240\201\355\260\205"); // 2 3-byte surrogates.
|
| - SameSymbolHelper("x\355\240\201\355\260\206", // 2 3-byte surrogates.
|
| + SameSymbolHelper(context->GetIsolate(),
|
| + "x\355\240\201\355\260\206", // 2 3-byte surrogates.
|
| "x\360\220\220\206"); // 4 byte encoding.
|
| CompileRun(
|
| "var sym0 = 'benedictus';"
|
| @@ -7847,12 +7843,22 @@ THREADED_TEST(Utf16Symbol) {
|
| "if (sym3.charCodeAt(2) != 0xdc07) throw sym1.charCodeAt(2);"
|
| "if (sym4.length != 3) throw sym4;"
|
| "if (sym4.charCodeAt(2) != 0xdc08) throw sym2.charCodeAt(2);");
|
| - Handle<String> sym0 = v8::String::NewSymbol("benedictus");
|
| - Handle<String> sym0b = v8::String::NewSymbol("S\303\270ren");
|
| - Handle<String> sym1 = v8::String::NewSymbol("\355\240\201\355\260\207");
|
| - Handle<String> sym2 = v8::String::NewSymbol("\360\220\220\210");
|
| - Handle<String> sym3 = v8::String::NewSymbol("x\355\240\201\355\260\207");
|
| - Handle<String> sym4 = v8::String::NewSymbol("x\360\220\220\210");
|
| + Handle<String> sym0 = v8::String::NewFromUtf8(
|
| + context->GetIsolate(), "benedictus", v8::String::kInternalizedString);
|
| + Handle<String> sym0b = v8::String::NewFromUtf8(
|
| + context->GetIsolate(), "S\303\270ren", v8::String::kInternalizedString);
|
| + Handle<String> sym1 =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "\355\240\201\355\260\207",
|
| + v8::String::kInternalizedString);
|
| + Handle<String> sym2 =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "\360\220\220\210",
|
| + v8::String::kInternalizedString);
|
| + Handle<String> sym3 = v8::String::NewFromUtf8(
|
| + context->GetIsolate(), "x\355\240\201\355\260\207",
|
| + v8::String::kInternalizedString);
|
| + Handle<String> sym4 =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "x\360\220\220\210",
|
| + v8::String::kInternalizedString);
|
| v8::Local<v8::Object> global = context->Global();
|
| Local<Value> s0 = global->Get(v8_str("sym0"));
|
| Local<Value> s0b = global->Get(v8_str("sym0b"));
|
| @@ -8083,10 +8089,13 @@ TEST(ExceptionInNativeScript) {
|
| v8::Local<v8::Object> global = env->Global();
|
| global->Set(v8_str("trouble"), fun->GetFunction());
|
|
|
| - Script::Compile(v8_str("function trouble() {\n"
|
| - " var o = {};\n"
|
| - " new o.foo();\n"
|
| - "};"), v8::String::New(script_resource_name))->Run();
|
| + Script::Compile(
|
| + v8_str(
|
| + "function trouble() {\n"
|
| + " var o = {};\n"
|
| + " new o.foo();\n"
|
| + "};"),
|
| + v8::String::NewFromUtf8(env->GetIsolate(), script_resource_name))->Run();
|
| Local<Value> trouble = global->Get(v8_str("trouble"));
|
| CHECK(trouble->IsFunction());
|
| Function::Cast(*trouble)->Call(global, 0, NULL);
|
| @@ -13035,7 +13044,7 @@ void NewPersistentHandleCallback(v8::Isolate* isolate,
|
| void*) {
|
| v8::HandleScope scope(isolate);
|
| bad_handle.Reset(isolate, some_object);
|
| - handle->Dispose();
|
| + handle->Reset();
|
| }
|
|
|
|
|
| @@ -13055,7 +13064,7 @@ THREADED_TEST(NewPersistentHandleFromWeakCallback) {
|
| // in reverse allocation order, so if second allocated handle is deleted,
|
| // weak callback of the first handle would be able to 'reallocate' it.
|
| handle1.MakeWeak<v8::Value, void>(NULL, NewPersistentHandleCallback);
|
| - handle2.Dispose();
|
| + handle2.Reset();
|
| CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags);
|
| }
|
|
|
| @@ -13065,9 +13074,9 @@ v8::Persistent<v8::Object> to_be_disposed;
|
| void DisposeAndForceGcCallback(v8::Isolate* isolate,
|
| v8::Persistent<v8::Value>* handle,
|
| void*) {
|
| - to_be_disposed.Dispose();
|
| + to_be_disposed.Reset();
|
| CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags);
|
| - handle->Dispose();
|
| + handle->Reset();
|
| }
|
|
|
|
|
| @@ -13089,7 +13098,7 @@ THREADED_TEST(DoNotUseDeletedNodesInSecondLevelGc) {
|
| void DisposingCallback(v8::Isolate* isolate,
|
| v8::Persistent<v8::Value>* handle,
|
| void*) {
|
| - handle->Dispose();
|
| + handle->Reset();
|
| }
|
|
|
| void HandleCreatingCallback(v8::Isolate* isolate,
|
| @@ -13097,7 +13106,7 @@ void HandleCreatingCallback(v8::Isolate* isolate,
|
| void*) {
|
| v8::HandleScope scope(isolate);
|
| v8::Persistent<v8::Object>(isolate, v8::Object::New());
|
| - handle->Dispose();
|
| + handle->Reset();
|
| }
|
|
|
|
|
| @@ -13788,7 +13797,8 @@ TEST(CatchStackOverflow) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| v8::TryCatch try_catch;
|
| - v8::Handle<v8::Script> script = v8::Script::Compile(v8::String::New(
|
| + v8::Handle<v8::Script> script = v8::Script::Compile(v8::String::NewFromUtf8(
|
| + context->GetIsolate(),
|
| "function f() {"
|
| " return f();"
|
| "}"
|
| @@ -13824,7 +13834,8 @@ static void CheckTryCatchSourceInfo(v8::Handle<v8::Script> script,
|
| THREADED_TEST(TryCatchSourceInfo) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| - v8::Handle<v8::String> source = v8::String::New(
|
| + v8::Handle<v8::String> source = v8::String::NewFromUtf8(
|
| + context->GetIsolate(),
|
| "function Foo() {\n"
|
| " return Bar();\n"
|
| "}\n"
|
| @@ -13842,16 +13853,20 @@ THREADED_TEST(TryCatchSourceInfo) {
|
| const char* resource_name;
|
| v8::Handle<v8::Script> script;
|
| resource_name = "test.js";
|
| - script = v8::Script::Compile(source, v8::String::New(resource_name));
|
| + script = v8::Script::Compile(
|
| + source, v8::String::NewFromUtf8(context->GetIsolate(), resource_name));
|
| CheckTryCatchSourceInfo(script, resource_name, 0);
|
|
|
| resource_name = "test1.js";
|
| - v8::ScriptOrigin origin1(v8::String::New(resource_name));
|
| + v8::ScriptOrigin origin1(
|
| + v8::String::NewFromUtf8(context->GetIsolate(), resource_name));
|
| script = v8::Script::Compile(source, &origin1);
|
| CheckTryCatchSourceInfo(script, resource_name, 0);
|
|
|
| resource_name = "test2.js";
|
| - v8::ScriptOrigin origin2(v8::String::New(resource_name), v8::Integer::New(7));
|
| + v8::ScriptOrigin origin2(
|
| + v8::String::NewFromUtf8(context->GetIsolate(), resource_name),
|
| + v8::Integer::New(7));
|
| script = v8::Script::Compile(source, &origin2);
|
| CheckTryCatchSourceInfo(script, resource_name, 7);
|
| }
|
| @@ -13860,12 +13875,14 @@ THREADED_TEST(TryCatchSourceInfo) {
|
| THREADED_TEST(CompilationCache) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| - v8::Handle<v8::String> source0 = v8::String::New("1234");
|
| - v8::Handle<v8::String> source1 = v8::String::New("1234");
|
| - v8::Handle<v8::Script> script0 =
|
| - v8::Script::Compile(source0, v8::String::New("test.js"));
|
| - v8::Handle<v8::Script> script1 =
|
| - v8::Script::Compile(source1, v8::String::New("test.js"));
|
| + v8::Handle<v8::String> source0 =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "1234");
|
| + v8::Handle<v8::String> source1 =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "1234");
|
| + v8::Handle<v8::Script> script0 = v8::Script::Compile(
|
| + source0, v8::String::NewFromUtf8(context->GetIsolate(), "test.js"));
|
| + v8::Handle<v8::Script> script1 = v8::Script::Compile(
|
| + source1, v8::String::NewFromUtf8(context->GetIsolate(), "test.js"));
|
| v8::Handle<v8::Script> script2 =
|
| v8::Script::Compile(source0); // different origin
|
| CHECK_EQ(1234, script0->Run()->Int32Value());
|
| @@ -13930,7 +13947,8 @@ void CheckOwnProperties(v8::Handle<v8::Value> val,
|
| THREADED_TEST(PropertyEnumeration) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| - v8::Handle<v8::Value> obj = v8::Script::Compile(v8::String::New(
|
| + v8::Handle<v8::Value> obj = v8::Script::Compile(v8::String::NewFromUtf8(
|
| + context->GetIsolate(),
|
| "var result = [];"
|
| "result[0] = {};"
|
| "result[1] = {a: 1, b: 2};"
|
| @@ -13965,7 +13983,8 @@ THREADED_TEST(PropertyEnumeration) {
|
| THREADED_TEST(PropertyEnumeration2) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| - v8::Handle<v8::Value> obj = v8::Script::Compile(v8::String::New(
|
| + v8::Handle<v8::Value> obj = v8::Script::Compile(v8::String::NewFromUtf8(
|
| + context->GetIsolate(),
|
| "var result = [];"
|
| "result[0] = {};"
|
| "result[1] = {a: 1, b: 2};"
|
| @@ -14365,7 +14384,7 @@ TEST(PreCompileInvalidPreparseDataError) {
|
| sd_data[kHeaderSize + 1 * kFunctionEntrySize + kFunctionEntryEndOffset] = 0;
|
| v8::TryCatch try_catch;
|
|
|
| - Local<String> source = String::New(script);
|
| + Local<String> source = String::NewFromUtf8(isolate, script);
|
| Local<Script> compiled_script = Script::New(source, NULL, sd);
|
| CHECK(try_catch.HasCaught());
|
| String::Utf8Value exception_value(try_catch.Message()->Get());
|
| @@ -14405,7 +14424,7 @@ TEST(PreCompileAPIVariationsAreSame) {
|
| v8::String::NewExternal(resource));
|
|
|
| v8::ScriptData* sd_from_string = v8::ScriptData::PreCompile(
|
| - v8::String::New(cstring));
|
| + v8::String::NewFromUtf8(isolate, cstring));
|
|
|
| CHECK_EQ(sd_from_cstring->Length(), sd_from_external_string->Length());
|
| CHECK_EQ(0, memcmp(sd_from_cstring->Data(),
|
| @@ -14620,11 +14639,11 @@ THREADED_TEST(MorphCompositeStringTest) {
|
| const char* expected_slice_on_cons =
|
| "ow is the time for all good men to come to the aid of the party"
|
| "Now is the time for all good men to come to the aid of the part";
|
| - CHECK_EQ(String::New(expected_cons),
|
| + CHECK_EQ(String::NewFromUtf8(env->GetIsolate(), expected_cons),
|
| env->Global()->Get(v8_str("cons")));
|
| - CHECK_EQ(String::New(expected_slice),
|
| + CHECK_EQ(String::NewFromUtf8(env->GetIsolate(), expected_slice),
|
| env->Global()->Get(v8_str("slice")));
|
| - CHECK_EQ(String::New(expected_slice_on_cons),
|
| + CHECK_EQ(String::NewFromUtf8(env->GetIsolate(), expected_slice_on_cons),
|
| env->Global()->Get(v8_str("slice_on_cons")));
|
| }
|
| i::DeleteArray(two_byte_string);
|
| @@ -14725,7 +14744,7 @@ TEST(RegExpInterruption) {
|
| timeout_thread.Join();
|
|
|
| delete regexp_interruption_data.string_resource;
|
| - regexp_interruption_data.string.Dispose();
|
| + regexp_interruption_data.string.Reset();
|
| }
|
|
|
| #endif // V8_INTERPRETED_REGEXP
|
| @@ -14790,13 +14809,15 @@ TEST(ForceSet) {
|
|
|
| v8::HandleScope scope(CcTest::isolate());
|
| v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
|
| - v8::Handle<v8::String> access_property = v8::String::New("a");
|
| + v8::Handle<v8::String> access_property =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "a");
|
| templ->SetAccessor(access_property, ForceSetGetter, ForceSetSetter);
|
| LocalContext context(NULL, templ);
|
| v8::Handle<v8::Object> global = context->Global();
|
|
|
| // Ordinary properties
|
| - v8::Handle<v8::String> simple_property = v8::String::New("p");
|
| + v8::Handle<v8::String> simple_property =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "p");
|
| global->Set(simple_property, v8::Int32::New(4), v8::ReadOnly);
|
| CHECK_EQ(4, global->Get(simple_property)->Int32Value());
|
| // This should fail because the property is read-only
|
| @@ -14836,7 +14857,8 @@ TEST(ForceSetWithInterceptor) {
|
| LocalContext context(NULL, templ);
|
| v8::Handle<v8::Object> global = context->Global();
|
|
|
| - v8::Handle<v8::String> some_property = v8::String::New("a");
|
| + v8::Handle<v8::String> some_property =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "a");
|
| CHECK_EQ(0, force_set_set_count);
|
| CHECK_EQ(0, force_set_get_count);
|
| CHECK_EQ(3, global->Get(some_property)->Int32Value());
|
| @@ -14866,7 +14888,8 @@ TEST(ForceSetWithInterceptor) {
|
| CHECK_EQ(1, force_set_set_count);
|
| CHECK_EQ(5, force_set_get_count);
|
| // The interceptor should also work for other properties
|
| - CHECK_EQ(3, global->Get(v8::String::New("b"))->Int32Value());
|
| + CHECK_EQ(3, global->Get(v8::String::NewFromUtf8(CcTest::isolate(), "b"))
|
| + ->Int32Value());
|
| CHECK_EQ(1, force_set_set_count);
|
| CHECK_EQ(6, force_set_get_count);
|
| }
|
| @@ -14879,7 +14902,8 @@ THREADED_TEST(ForceDelete) {
|
| v8::Handle<v8::Object> global = context->Global();
|
|
|
| // Ordinary properties
|
| - v8::Handle<v8::String> simple_property = v8::String::New("p");
|
| + v8::Handle<v8::String> simple_property =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "p");
|
| global->Set(simple_property, v8::Int32::New(4), v8::DontDelete);
|
| CHECK_EQ(4, global->Get(simple_property)->Int32Value());
|
| // This should fail because the property is dont-delete.
|
| @@ -14914,7 +14938,8 @@ THREADED_TEST(ForceDeleteWithInterceptor) {
|
| LocalContext context(NULL, templ);
|
| v8::Handle<v8::Object> global = context->Global();
|
|
|
| - v8::Handle<v8::String> some_property = v8::String::New("a");
|
| + v8::Handle<v8::String> some_property =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "a");
|
| global->Set(some_property, v8::Integer::New(42), v8::DontDelete);
|
|
|
| // Deleting a property should get intercepted and nothing should
|
| @@ -14980,7 +15005,8 @@ TEST(InlinedFunctionAcrossContexts) {
|
| "f();");
|
| CHECK_EQ(42, res->Int32Value());
|
| ctx2->Exit();
|
| - v8::Handle<v8::String> G_property = v8::String::New("G");
|
| + v8::Handle<v8::String> G_property =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "G");
|
| CHECK(ctx1->Global()->ForceDelete(G_property));
|
| ctx2->Enter();
|
| ExpectString(
|
| @@ -15098,10 +15124,12 @@ THREADED_TEST(ReplaceConstantFunction) {
|
| v8::HandleScope scope(context->GetIsolate());
|
| v8::Handle<v8::Object> obj = v8::Object::New();
|
| v8::Handle<v8::FunctionTemplate> func_templ = v8::FunctionTemplate::New();
|
| - v8::Handle<v8::String> foo_string = v8::String::New("foo");
|
| + v8::Handle<v8::String> foo_string =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "foo");
|
| obj->Set(foo_string, func_templ->GetFunction());
|
| v8::Handle<v8::Object> obj_clone = obj->Clone();
|
| - obj_clone->Set(foo_string, v8::String::New("Hello"));
|
| + obj_clone->Set(foo_string,
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "Hello"));
|
| CHECK(!obj->Get(foo_string)->IsUndefined());
|
| }
|
|
|
| @@ -16410,13 +16438,17 @@ THREADED_TEST(ScriptContextDependence) {
|
| LocalContext c1;
|
| v8::HandleScope scope(c1->GetIsolate());
|
| const char *source = "foo";
|
| - v8::Handle<v8::Script> dep = v8::Script::Compile(v8::String::New(source));
|
| - v8::Handle<v8::Script> indep = v8::Script::New(v8::String::New(source));
|
| - c1->Global()->Set(v8::String::New("foo"), v8::Integer::New(100));
|
| + v8::Handle<v8::Script> dep =
|
| + v8::Script::Compile(v8::String::NewFromUtf8(c1->GetIsolate(), source));
|
| + v8::Handle<v8::Script> indep =
|
| + v8::Script::New(v8::String::NewFromUtf8(c1->GetIsolate(), source));
|
| + c1->Global()->Set(v8::String::NewFromUtf8(c1->GetIsolate(), "foo"),
|
| + v8::Integer::New(100));
|
| CHECK_EQ(dep->Run()->Int32Value(), 100);
|
| CHECK_EQ(indep->Run()->Int32Value(), 100);
|
| LocalContext c2;
|
| - c2->Global()->Set(v8::String::New("foo"), v8::Integer::New(101));
|
| + c2->Global()->Set(v8::String::NewFromUtf8(c2->GetIsolate(), "foo"),
|
| + v8::Integer::New(101));
|
| CHECK_EQ(dep->Run()->Int32Value(), 100);
|
| CHECK_EQ(indep->Run()->Int32Value(), 101);
|
| }
|
| @@ -16427,8 +16459,10 @@ THREADED_TEST(StackTrace) {
|
| v8::HandleScope scope(context->GetIsolate());
|
| v8::TryCatch try_catch;
|
| const char *source = "function foo() { FAIL.FAIL; }; foo();";
|
| - v8::Handle<v8::String> src = v8::String::New(source);
|
| - v8::Handle<v8::String> origin = v8::String::New("stack-trace-test");
|
| + v8::Handle<v8::String> src =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), source);
|
| + v8::Handle<v8::String> origin =
|
| + v8::String::NewFromUtf8(context->GetIsolate(), "stack-trace-test");
|
| v8::Script::New(src, origin)->Run();
|
| CHECK(try_catch.HasCaught());
|
| v8::String::Utf8Value stack(try_catch.StackTrace());
|
| @@ -16514,7 +16548,8 @@ void AnalyzeStackInNativeCode(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| // THREADED_TEST(CaptureStackTrace) {
|
| TEST(CaptureStackTrace) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - v8::Handle<v8::String> origin = v8::String::New("capture-stack-trace-test");
|
| + v8::Handle<v8::String> origin =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "capture-stack-trace-test");
|
| Local<ObjectTemplate> templ = ObjectTemplate::New();
|
| templ->Set(v8_str("AnalyzeStackInNativeCode"),
|
| v8::FunctionTemplate::New(AnalyzeStackInNativeCode));
|
| @@ -16531,7 +16566,8 @@ TEST(CaptureStackTrace) {
|
| " bar();\n"
|
| "}\n"
|
| "var x;eval('new foo();');";
|
| - v8::Handle<v8::String> overview_src = v8::String::New(overview_source);
|
| + v8::Handle<v8::String> overview_src =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), overview_source);
|
| v8::Handle<Value> overview_result(
|
| v8::Script::New(overview_src, origin)->Run());
|
| CHECK(!overview_result.IsEmpty());
|
| @@ -16546,7 +16582,8 @@ TEST(CaptureStackTrace) {
|
| " bat();\n"
|
| "}\n"
|
| "eval('new baz();');";
|
| - v8::Handle<v8::String> detailed_src = v8::String::New(detailed_source);
|
| + v8::Handle<v8::String> detailed_src =
|
| + v8::String::NewFromUtf8(CcTest::isolate(), detailed_source);
|
| // Make the script using a non-zero line and column offset.
|
| v8::Handle<v8::Integer> line_offset = v8::Integer::New(3);
|
| v8::Handle<v8::Integer> column_offset = v8::Integer::New(5);
|
| @@ -16810,12 +16847,14 @@ TEST(ScriptIdInStackTrace) {
|
| v8::FunctionTemplate::New(AnalyzeScriptIdInStack));
|
| LocalContext context(0, templ);
|
|
|
| - v8::Handle<v8::String> scriptSource = v8::String::New(
|
| + v8::Handle<v8::String> scriptSource = v8::String::NewFromUtf8(
|
| + CcTest::isolate(),
|
| "function foo() {\n"
|
| " AnalyzeScriptIdInStack();"
|
| "}\n"
|
| "foo();\n");
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(CcTest::isolate(), "test"));
|
| v8::Local<v8::Script> script(v8::Script::Compile(scriptSource, &origin));
|
| script->Run();
|
| for (int i = 0; i < 2; i++) {
|
| @@ -17164,7 +17203,8 @@ TEST(VisitExternalStrings) {
|
|
|
| // Externalized symbol.
|
| resource[2] = new TestResource(two_byte_string);
|
| - v8::Local<v8::String> string2 = v8::String::NewSymbol(string);
|
| + v8::Local<v8::String> string2 = v8::String::NewFromUtf8(
|
| + env->GetIsolate(), string, v8::String::kInternalizedString);
|
| CHECK(string2->MakeExternal(resource[2]));
|
|
|
| // Symbolized External.
|
| @@ -17339,7 +17379,7 @@ THREADED_TEST(SpaghettiStackReThrow) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| LocalContext context;
|
| context->Global()->Set(
|
| - v8::String::New("s"),
|
| + v8::String::NewFromUtf8(CcTest::isolate(), "s"),
|
| v8::FunctionTemplate::New(SpaghettiIncident)->GetFunction());
|
| v8::TryCatch try_catch;
|
| CompileRun(
|
| @@ -17380,7 +17420,7 @@ TEST(Regress528) {
|
| v8::Local<Context> context = Context::New(isolate);
|
|
|
| context->Enter();
|
| - Local<v8::String> obj = v8::String::New("");
|
| + Local<v8::String> obj = v8::String::NewFromUtf8(isolate, "");
|
| context->SetEmbedderData(0, obj);
|
| CompileRun(source_simple);
|
| context->Exit();
|
| @@ -17452,14 +17492,15 @@ TEST(Regress528) {
|
| THREADED_TEST(ScriptOrigin) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
|
| - v8::Handle<v8::String> script = v8::String::New(
|
| - "function f() {}\n\nfunction g() {}");
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test"));
|
| + v8::Handle<v8::String> script = v8::String::NewFromUtf8(
|
| + env->GetIsolate(), "function f() {}\n\nfunction g() {}");
|
| v8::Script::Compile(script, &origin)->Run();
|
| v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("f")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f")));
|
| v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("g")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g")));
|
|
|
| v8::ScriptOrigin script_origin_f = f->GetScriptOrigin();
|
| CHECK_EQ("test", *v8::String::Utf8Value(script_origin_f.ResourceName()));
|
| @@ -17474,12 +17515,14 @@ THREADED_TEST(ScriptOrigin) {
|
| THREADED_TEST(FunctionGetInferredName) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
|
| - v8::Handle<v8::String> script = v8::String::New(
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test"));
|
| + v8::Handle<v8::String> script = v8::String::NewFromUtf8(
|
| + env->GetIsolate(),
|
| "var foo = { bar : { baz : function() {}}}; var f = foo.bar.baz;");
|
| v8::Script::Compile(script, &origin)->Run();
|
| v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("f")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f")));
|
| CHECK_EQ("foo.bar.baz", *v8::String::Utf8Value(f->GetInferredName()));
|
| }
|
|
|
| @@ -17520,23 +17563,26 @@ THREADED_TEST(FunctionGetDisplayName) {
|
| " arguments.callee.displayName = 'set_in_runtime';"
|
| "}; g();"
|
| ;
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
|
| - v8::Script::Compile(v8::String::New(code), &origin)->Run();
|
| - v8::Local<v8::Value> error = env->Global()->Get(v8::String::New("error"));
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test"));
|
| + v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), code), &origin)
|
| + ->Run();
|
| + v8::Local<v8::Value> error =
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "error"));
|
| v8::Local<v8::Function> a = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("a")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "a")));
|
| v8::Local<v8::Function> b = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("b")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "b")));
|
| v8::Local<v8::Function> c = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("c")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "c")));
|
| v8::Local<v8::Function> d = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("d")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "d")));
|
| v8::Local<v8::Function> e = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("e")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "e")));
|
| v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("f")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f")));
|
| v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("g")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g")));
|
| CHECK_EQ(false, error->BooleanValue());
|
| CHECK_EQ("display_a", *v8::String::Utf8Value(a->GetDisplayName()));
|
| CHECK_EQ("display_b", *v8::String::Utf8Value(b->GetDisplayName()));
|
| @@ -17551,14 +17597,15 @@ THREADED_TEST(FunctionGetDisplayName) {
|
| THREADED_TEST(ScriptLineNumber) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
|
| - v8::Handle<v8::String> script = v8::String::New(
|
| - "function f() {}\n\nfunction g() {}");
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test"));
|
| + v8::Handle<v8::String> script = v8::String::NewFromUtf8(
|
| + env->GetIsolate(), "function f() {}\n\nfunction g() {}");
|
| v8::Script::Compile(script, &origin)->Run();
|
| v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("f")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f")));
|
| v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("g")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "g")));
|
| CHECK_EQ(0, f->GetScriptLineNumber());
|
| CHECK_EQ(2, g->GetScriptLineNumber());
|
| }
|
| @@ -17567,15 +17614,16 @@ THREADED_TEST(ScriptLineNumber) {
|
| THREADED_TEST(ScriptColumnNumber) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"),
|
| - v8::Integer::New(3), v8::Integer::New(2));
|
| - v8::Handle<v8::String> script = v8::String::New(
|
| - "function foo() {}\n\n function bar() {}");
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test"),
|
| + v8::Integer::New(3), v8::Integer::New(2));
|
| + v8::Handle<v8::String> script = v8::String::NewFromUtf8(
|
| + env->GetIsolate(), "function foo() {}\n\n function bar() {}");
|
| v8::Script::Compile(script, &origin)->Run();
|
| v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("foo")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo")));
|
| v8::Local<v8::Function> bar = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("bar")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "bar")));
|
| CHECK_EQ(14, foo->GetScriptColumnNumber());
|
| CHECK_EQ(17, bar->GetScriptColumnNumber());
|
| }
|
| @@ -17601,18 +17649,19 @@ THREADED_TEST(FunctionIsBuiltin) {
|
| THREADED_TEST(FunctionGetScriptId) {
|
| LocalContext env;
|
| v8::HandleScope scope(env->GetIsolate());
|
| - v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"),
|
| - v8::Integer::New(3), v8::Integer::New(2));
|
| - v8::Handle<v8::String> scriptSource = v8::String::New(
|
| - "function foo() {}\n\n function bar() {}");
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "test"),
|
| + v8::Integer::New(3), v8::Integer::New(2));
|
| + v8::Handle<v8::String> scriptSource = v8::String::NewFromUtf8(
|
| + env->GetIsolate(), "function foo() {}\n\n function bar() {}");
|
| v8::Local<v8::Script> script(v8::Script::Compile(scriptSource, &origin));
|
| script->Run();
|
| v8::Local<v8::Function> foo = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("foo")));
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "foo")));
|
| v8::Local<v8::Function> bar = v8::Local<v8::Function>::Cast(
|
| - env->Global()->Get(v8::String::New("bar")));
|
| - CHECK_EQ(script->Id(), foo->GetScriptId());
|
| - CHECK_EQ(script->Id(), bar->GetScriptId());
|
| + env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "bar")));
|
| + CHECK_EQ(script->GetId(), foo->ScriptId());
|
| + CHECK_EQ(script->GetId(), bar->ScriptId());
|
| }
|
|
|
|
|
| @@ -18408,10 +18457,10 @@ TEST(RunTwoIsolatesOnSingleThread) {
|
|
|
| {
|
| v8::Isolate::Scope iscope(isolate2);
|
| - context2.Dispose();
|
| + context2.Reset();
|
| }
|
|
|
| - context1.Dispose();
|
| + context1.Reset();
|
| isolate1->Exit();
|
|
|
| v8::V8::SetFatalErrorHandler(StoringErrorCallback);
|
| @@ -18826,7 +18875,7 @@ TEST(PersistentHandleVisitor) {
|
| v8::V8::VisitHandlesWithClassIds(&visitor);
|
| CHECK_EQ(1, visitor.counter_);
|
|
|
| - object.Dispose();
|
| + object.Reset();
|
| }
|
|
|
|
|
| @@ -18838,7 +18887,7 @@ TEST(WrapperClassId) {
|
| CHECK_EQ(0, object.WrapperClassId());
|
| object.SetWrapperClassId(65535);
|
| CHECK_EQ(65535, object.WrapperClassId());
|
| - object.Dispose();
|
| + object.Reset();
|
| }
|
|
|
|
|
| @@ -18862,8 +18911,8 @@ TEST(PersistentHandleInNewSpaceVisitor) {
|
| v8::V8::VisitHandlesForPartialDependence(isolate, &visitor);
|
| CHECK_EQ(1, visitor.counter_);
|
|
|
| - object1.Dispose();
|
| - object2.Dispose();
|
| + object1.Reset();
|
| + object2.Reset();
|
| }
|
|
|
|
|
| @@ -19678,8 +19727,8 @@ TEST(CallCompletedCallback) {
|
| v8::V8::AddCallCompletedCallback(CallCompletedCallback1);
|
| v8::V8::AddCallCompletedCallback(CallCompletedCallback2);
|
| i::OS::Print("--- Script (1) ---\n");
|
| - Local<Script> script =
|
| - v8::Script::Compile(v8::String::New("recursion(0)"));
|
| + Local<Script> script = v8::Script::Compile(
|
| + v8::String::NewFromUtf8(env->GetIsolate(), "recursion(0)"));
|
| script->Run();
|
| CHECK_EQ(3, callback_fired);
|
|
|
| @@ -20292,7 +20341,7 @@ THREADED_TEST(Regress2746) {
|
| v8::Isolate* isolate = context->GetIsolate();
|
| v8::HandleScope scope(isolate);
|
| Local<Object> obj = Object::New();
|
| - Local<String> key = String::New("key");
|
| + Local<String> key = String::NewFromUtf8(context->GetIsolate(), "key");
|
| obj->SetHiddenValue(key, v8::Undefined(isolate));
|
| Local<Value> value = obj->GetHiddenValue(key);
|
| CHECK(!value.IsEmpty());
|
|
|