| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index f7d8d807698a80565d3da0d5863e8b372240431c..7fac9fd6180d08fe554ad264a16ca3aa21d6fa28 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -4671,6 +4671,18 @@ THREADED_TEST(SimpleExtensions) {
|
| }
|
|
|
|
|
| +THREADED_TEST(NullExtensions) {
|
| + v8::HandleScope handle_scope;
|
| + v8::RegisterExtension(new Extension("nulltest", NULL));
|
| + const char* extension_names[] = { "nulltest" };
|
| + v8::ExtensionConfiguration extensions(1, extension_names);
|
| + v8::Handle<Context> context = Context::New(&extensions);
|
| + Context::Scope lock(context);
|
| + v8::Handle<Value> result = Script::Compile(v8_str("1+3"))->Run();
|
| + CHECK_EQ(result, v8::Integer::New(4));
|
| +}
|
| +
|
| +
|
| static const char* kEmbeddedExtensionSource =
|
| "function Ret54321(){return 54321;}~~@@$"
|
| "$%% THIS IS A SERIES OF NON-NULL-TERMINATED STRINGS.";
|
| @@ -14011,6 +14023,41 @@ THREADED_TEST(ExternalArrayInfo) {
|
| }
|
|
|
|
|
| +void ExternalArrayLimitTestHelper(v8::ExternalArrayType array_type, int size) {
|
| + v8::Handle<v8::Object> obj = v8::Object::New();
|
| + v8::V8::SetFatalErrorHandler(StoringErrorCallback);
|
| + last_location = last_message = NULL;
|
| + obj->SetIndexedPropertiesToExternalArrayData(NULL, array_type, size);
|
| + CHECK(!obj->HasIndexedPropertiesInExternalArrayData());
|
| + CHECK_NE(NULL, last_location);
|
| + CHECK_NE(NULL, last_message);
|
| +}
|
| +
|
| +
|
| +TEST(ExternalArrayLimits) {
|
| + v8::HandleScope scope;
|
| + LocalContext context;
|
| + ExternalArrayLimitTestHelper(v8::kExternalByteArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalByteArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalUnsignedByteArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalUnsignedByteArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalShortArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalShortArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalUnsignedShortArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalUnsignedShortArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalIntArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalIntArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalUnsignedIntArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalUnsignedIntArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalFloatArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalFloatArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalDoubleArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalDoubleArray, 0xffffffff);
|
| + ExternalArrayLimitTestHelper(v8::kExternalPixelArray, 0x40000000);
|
| + ExternalArrayLimitTestHelper(v8::kExternalPixelArray, 0xffffffff);
|
| +}
|
| +
|
| +
|
| THREADED_TEST(ScriptContextDependence) {
|
| v8::HandleScope scope;
|
| LocalContext c1;
|
|
|