| Index: test/cctest/test-strings.cc
|
| diff --git a/test/cctest/test-strings.cc b/test/cctest/test-strings.cc
|
| index e4a0ba2b58a76f3db25c9a39d82d3886db8a1906..c9c820dcb768fac21f4ff3c365ec7f62889e10ab 100644
|
| --- a/test/cctest/test-strings.cc
|
| +++ b/test/cctest/test-strings.cc
|
| @@ -30,6 +30,9 @@
|
| // of ConsStrings. These operations may not be very fast, but they
|
| // should be possible without getting errors due to too deep recursion.
|
|
|
| +// TODO(jochen): Remove this after the setting is turned on globally.
|
| +#define V8_IMMINENT_DEPRECATION_WARNINGS
|
| +
|
| #include <stdlib.h>
|
|
|
| #include "src/v8.h"
|
| @@ -191,9 +194,9 @@ static void InitializeBuildingBlocks(Handle<String>* building_blocks,
|
| buf[j] = rng->next(0x10000);
|
| }
|
| Resource* resource = new Resource(buf, len);
|
| - building_blocks[i] =
|
| - v8::Utils::OpenHandle(
|
| - *v8::String::NewExternal(CcTest::isolate(), resource));
|
| + building_blocks[i] = v8::Utils::OpenHandle(
|
| + *v8::String::NewExternalTwoByte(CcTest::isolate(), resource)
|
| + .ToLocalChecked());
|
| for (int j = 0; j < len; j++) {
|
| CHECK_EQ(buf[j], building_blocks[i]->Get(j));
|
| }
|
| @@ -205,9 +208,9 @@ static void InitializeBuildingBlocks(Handle<String>* building_blocks,
|
| buf[j] = rng->next(0x80);
|
| }
|
| OneByteResource* resource = new OneByteResource(buf, len);
|
| - building_blocks[i] =
|
| - v8::Utils::OpenHandle(
|
| - *v8::String::NewExternal(CcTest::isolate(), resource));
|
| + building_blocks[i] = v8::Utils::OpenHandle(
|
| + *v8::String::NewExternalOneByte(CcTest::isolate(), resource)
|
| + .ToLocalChecked());
|
| for (int j = 0; j < len; j++) {
|
| CHECK_EQ(buf[j], building_blocks[i]->Get(j));
|
| }
|
| @@ -880,8 +883,10 @@ TEST(Utf8Conversion) {
|
| // A simple one-byte string
|
| const char* one_byte_string = "abcdef12345";
|
| int len = v8::String::NewFromUtf8(CcTest::isolate(), one_byte_string,
|
| - v8::String::kNormalString,
|
| - StrLength(one_byte_string))->Utf8Length();
|
| + v8::NewStringType::kNormal,
|
| + StrLength(one_byte_string))
|
| + .ToLocalChecked()
|
| + ->Utf8Length();
|
| CHECK_EQ(StrLength(one_byte_string), len);
|
| // A mixed one-byte and two-byte string
|
| // U+02E4 -> CB A4
|
| @@ -896,8 +901,10 @@ TEST(Utf8Conversion) {
|
| // The number of bytes expected to be written for each length
|
| const int lengths[12] = {0, 0, 2, 3, 3, 3, 6, 7, 7, 7, 10, 11};
|
| const int char_lengths[12] = {0, 0, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5};
|
| - v8::Handle<v8::String> mixed = v8::String::NewFromTwoByte(
|
| - CcTest::isolate(), mixed_string, v8::String::kNormalString, 5);
|
| + v8::Local<v8::String> mixed =
|
| + v8::String::NewFromTwoByte(CcTest::isolate(), mixed_string,
|
| + v8::NewStringType::kNormal, 5)
|
| + .ToLocalChecked();
|
| CHECK_EQ(10, mixed->Utf8Length());
|
| // Try encoding the string with all capacities
|
| char buffer[11];
|
| @@ -929,9 +936,9 @@ TEST(ExternalShortStringAdd) {
|
| CHECK_GT(kMaxLength, i::ConsString::kMinLength);
|
|
|
| // Allocate two JavaScript arrays for holding short strings.
|
| - v8::Handle<v8::Array> one_byte_external_strings =
|
| + v8::Local<v8::Array> one_byte_external_strings =
|
| v8::Array::New(CcTest::isolate(), kMaxLength + 1);
|
| - v8::Handle<v8::Array> non_one_byte_external_strings =
|
| + v8::Local<v8::Array> non_one_byte_external_strings =
|
| v8::Array::New(CcTest::isolate(), kMaxLength + 1);
|
|
|
| // Generate short one-byte and two-byte external strings.
|
| @@ -944,10 +951,13 @@ TEST(ExternalShortStringAdd) {
|
| // string data.
|
| OneByteResource* one_byte_resource = new OneByteResource(one_byte, i);
|
| v8::Local<v8::String> one_byte_external_string =
|
| - v8::String::NewExternal(CcTest::isolate(), one_byte_resource);
|
| + v8::String::NewExternalOneByte(CcTest::isolate(), one_byte_resource)
|
| + .ToLocalChecked();
|
|
|
| - one_byte_external_strings->Set(v8::Integer::New(CcTest::isolate(), i),
|
| - one_byte_external_string);
|
| + one_byte_external_strings->Set(context.local(),
|
| + v8::Integer::New(CcTest::isolate(), i),
|
| + one_byte_external_string)
|
| + .FromJust();
|
| uc16* non_one_byte = NewArray<uc16>(i + 1);
|
| for (int j = 0; j < i; j++) {
|
| non_one_byte[j] = 0x1234;
|
| @@ -956,17 +966,25 @@ TEST(ExternalShortStringAdd) {
|
| // string data.
|
| Resource* resource = new Resource(non_one_byte, i);
|
| v8::Local<v8::String> non_one_byte_external_string =
|
| - v8::String::NewExternal(CcTest::isolate(), resource);
|
| - non_one_byte_external_strings->Set(v8::Integer::New(CcTest::isolate(), i),
|
| - non_one_byte_external_string);
|
| + v8::String::NewExternalTwoByte(CcTest::isolate(), resource)
|
| + .ToLocalChecked();
|
| + non_one_byte_external_strings->Set(context.local(),
|
| + v8::Integer::New(CcTest::isolate(), i),
|
| + non_one_byte_external_string)
|
| + .FromJust();
|
| }
|
|
|
| // Add the arrays with the short external strings in the global object.
|
| - v8::Handle<v8::Object> global = context->Global();
|
| - global->Set(v8_str("external_one_byte"), one_byte_external_strings);
|
| - global->Set(v8_str("external_non_one_byte"), non_one_byte_external_strings);
|
| - global->Set(v8_str("max_length"),
|
| - v8::Integer::New(CcTest::isolate(), kMaxLength));
|
| + v8::Local<v8::Object> global = context->Global();
|
| + global->Set(context.local(), v8_str("external_one_byte"),
|
| + one_byte_external_strings)
|
| + .FromJust();
|
| + global->Set(context.local(), v8_str("external_non_one_byte"),
|
| + non_one_byte_external_strings)
|
| + .FromJust();
|
| + global->Set(context.local(), v8_str("max_length"),
|
| + v8::Integer::New(CcTest::isolate(), kMaxLength))
|
| + .FromJust();
|
|
|
| // Add short external one-byte and two-byte strings checking the result.
|
| static const char* source =
|
| @@ -1012,7 +1030,7 @@ TEST(ExternalShortStringAdd) {
|
| " return 0;"
|
| "};"
|
| "test()";
|
| - CHECK_EQ(0, CompileRun(source)->Int32Value());
|
| + CHECK_EQ(0, CompileRun(source)->Int32Value(context.local()).FromJust());
|
| }
|
|
|
|
|
| @@ -1021,14 +1039,19 @@ TEST(JSONStringifySliceMadeExternal) {
|
| // Create a sliced string from a one-byte string. The latter is turned
|
| // into a two-byte external string. Check that JSON.stringify works.
|
| v8::HandleScope handle_scope(CcTest::isolate());
|
| - v8::Handle<v8::String> underlying =
|
| + v8::Local<v8::String> underlying =
|
| CompileRun(
|
| "var underlying = 'abcdefghijklmnopqrstuvwxyz';"
|
| - "underlying")->ToString(CcTest::isolate());
|
| - v8::Handle<v8::String> slice = CompileRun(
|
| - "var slice = '';"
|
| - "slice = underlying.slice(1);"
|
| - "slice")->ToString(CcTest::isolate());
|
| + "underlying")
|
| + ->ToString(CcTest::isolate()->GetCurrentContext())
|
| + .ToLocalChecked();
|
| + v8::Local<v8::String> slice =
|
| + CompileRun(
|
| + "var slice = '';"
|
| + "slice = underlying.slice(1);"
|
| + "slice")
|
| + ->ToString(CcTest::isolate()->GetCurrentContext())
|
| + .ToLocalChecked();
|
| CHECK(v8::Utils::OpenHandle(*slice)->IsSlicedString());
|
| CHECK(v8::Utils::OpenHandle(*underlying)->IsSeqOneByteString());
|
|
|
| @@ -1079,16 +1102,23 @@ TEST(CachedHashOverflow) {
|
| };
|
|
|
| const char* line;
|
| + v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext();
|
| for (int i = 0; (line = lines[i]); i++) {
|
| printf("%s\n", line);
|
| - v8::Local<v8::Value> result = v8::Script::Compile(
|
| - v8::String::NewFromUtf8(CcTest::isolate(), line))->Run();
|
| + v8::Local<v8::Value> result =
|
| + v8::Script::Compile(context,
|
| + v8::String::NewFromUtf8(CcTest::isolate(), line,
|
| + v8::NewStringType::kNormal)
|
| + .ToLocalChecked())
|
| + .ToLocalChecked()
|
| + ->Run(context)
|
| + .ToLocalChecked();
|
| CHECK_EQ(results[i]->IsUndefined(), result->IsUndefined());
|
| CHECK_EQ(results[i]->IsNumber(), result->IsNumber());
|
| if (result->IsNumber()) {
|
| int32_t value = 0;
|
| CHECK(results[i]->ToInt32(&value));
|
| - CHECK_EQ(value, result->ToInt32(CcTest::isolate())->Value());
|
| + CHECK_EQ(value, result->ToInt32(context).ToLocalChecked()->Value());
|
| }
|
| }
|
| }
|
| @@ -1320,7 +1350,8 @@ TEST(CountBreakIterator) {
|
| " return iterator.next();"
|
| "})();");
|
| CHECK(result->IsNumber());
|
| - int uses = result->ToInt32(CcTest::isolate())->Value() == 0 ? 0 : 1;
|
| + int uses =
|
| + result->ToInt32(context.local()).ToLocalChecked()->Value() == 0 ? 0 : 1;
|
| CHECK_EQ(uses, use_counts[v8::Isolate::kBreakIterator]);
|
| // Make sure GC cleans up the break iterator, so we don't get a memory leak
|
| // reported by ASAN.
|
| @@ -1341,7 +1372,7 @@ TEST(StringReplaceAtomTwoByteResult) {
|
| CHECK(string->IsSeqTwoByteString());
|
|
|
| v8::Local<v8::String> expected = v8_str("one_byte\x80only\x80string\x80");
|
| - CHECK(expected->Equals(result));
|
| + CHECK(expected->Equals(context.local(), result).FromJust());
|
| }
|
|
|
|
|
|
|