| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 15687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15698 } | 15698 } |
| 15699 | 15699 |
| 15700 | 15700 |
| 15701 THREADED_TEST(PixelArray) { | 15701 THREADED_TEST(PixelArray) { |
| 15702 LocalContext context; | 15702 LocalContext context; |
| 15703 i::Isolate* isolate = CcTest::i_isolate(); | 15703 i::Isolate* isolate = CcTest::i_isolate(); |
| 15704 i::Factory* factory = isolate->factory(); | 15704 i::Factory* factory = isolate->factory(); |
| 15705 v8::HandleScope scope(context->GetIsolate()); | 15705 v8::HandleScope scope(context->GetIsolate()); |
| 15706 const int kElementCount = 260; | 15706 const int kElementCount = 260; |
| 15707 uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount)); | 15707 uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount)); |
| 15708 i::Handle<i::ExternalPixelArray> pixels = | 15708 i::Handle<i::ExternalUint8ClampedArray> pixels = |
| 15709 i::Handle<i::ExternalPixelArray>::cast( | 15709 i::Handle<i::ExternalUint8ClampedArray>::cast( |
| 15710 factory->NewExternalArray(kElementCount, | 15710 factory->NewExternalArray(kElementCount, |
| 15711 v8::kExternalPixelArray, | 15711 v8::kExternalUint8ClampedArray, |
| 15712 pixel_data)); | 15712 pixel_data)); |
| 15713 // Force GC to trigger verification. | 15713 // Force GC to trigger verification. |
| 15714 CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags); | 15714 CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags); |
| 15715 for (int i = 0; i < kElementCount; i++) { | 15715 for (int i = 0; i < kElementCount; i++) { |
| 15716 pixels->set(i, i % 256); | 15716 pixels->set(i, i % 256); |
| 15717 } | 15717 } |
| 15718 // Force GC to trigger verification. | 15718 // Force GC to trigger verification. |
| 15719 CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags); | 15719 CcTest::heap()->CollectAllGarbage(i::Heap::kNoGCFlags); |
| 15720 for (int i = 0; i < kElementCount; i++) { | 15720 for (int i = 0; i < kElementCount; i++) { |
| 15721 CHECK_EQ(i % 256, pixels->get_scalar(i)); | 15721 CHECK_EQ(i % 256, pixels->get_scalar(i)); |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16112 } | 16112 } |
| 16113 | 16113 |
| 16114 | 16114 |
| 16115 THREADED_TEST(PixelArrayWithInterceptor) { | 16115 THREADED_TEST(PixelArrayWithInterceptor) { |
| 16116 LocalContext context; | 16116 LocalContext context; |
| 16117 i::Factory* factory = CcTest::i_isolate()->factory(); | 16117 i::Factory* factory = CcTest::i_isolate()->factory(); |
| 16118 v8::Isolate* isolate = context->GetIsolate(); | 16118 v8::Isolate* isolate = context->GetIsolate(); |
| 16119 v8::HandleScope scope(isolate); | 16119 v8::HandleScope scope(isolate); |
| 16120 const int kElementCount = 260; | 16120 const int kElementCount = 260; |
| 16121 uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount)); | 16121 uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount)); |
| 16122 i::Handle<i::ExternalPixelArray> pixels = | 16122 i::Handle<i::ExternalUint8ClampedArray> pixels = |
| 16123 i::Handle<i::ExternalPixelArray>::cast( | 16123 i::Handle<i::ExternalUint8ClampedArray>::cast( |
| 16124 factory->NewExternalArray(kElementCount, | 16124 factory->NewExternalArray(kElementCount, |
| 16125 v8::kExternalPixelArray, | 16125 v8::kExternalUint8ClampedArray, |
| 16126 pixel_data)); | 16126 pixel_data)); |
| 16127 for (int i = 0; i < kElementCount; i++) { | 16127 for (int i = 0; i < kElementCount; i++) { |
| 16128 pixels->set(i, i % 256); | 16128 pixels->set(i, i % 256); |
| 16129 } | 16129 } |
| 16130 v8::Handle<v8::ObjectTemplate> templ = | 16130 v8::Handle<v8::ObjectTemplate> templ = |
| 16131 v8::ObjectTemplate::New(context->GetIsolate()); | 16131 v8::ObjectTemplate::New(context->GetIsolate()); |
| 16132 templ->SetIndexedPropertyHandler(NotHandledIndexedPropertyGetter, | 16132 templ->SetIndexedPropertyHandler(NotHandledIndexedPropertyGetter, |
| 16133 NotHandledIndexedPropertySetter); | 16133 NotHandledIndexedPropertySetter); |
| 16134 v8::Handle<v8::Object> obj = templ->NewInstance(); | 16134 v8::Handle<v8::Object> obj = templ->NewInstance(); |
| 16135 obj->SetIndexedPropertiesToPixelData(pixel_data, kElementCount); | 16135 obj->SetIndexedPropertiesToPixelData(pixel_data, kElementCount); |
| 16136 context->Global()->Set(v8_str("pixels"), obj); | 16136 context->Global()->Set(v8_str("pixels"), obj); |
| 16137 v8::Handle<v8::Value> result = CompileRun("pixels[1]"); | 16137 v8::Handle<v8::Value> result = CompileRun("pixels[1]"); |
| 16138 CHECK_EQ(1, result->Int32Value()); | 16138 CHECK_EQ(1, result->Int32Value()); |
| 16139 result = CompileRun("var sum = 0;" | 16139 result = CompileRun("var sum = 0;" |
| 16140 "for (var i = 0; i < 8; i++) {" | 16140 "for (var i = 0; i < 8; i++) {" |
| 16141 " sum += pixels[i] = pixels[i] = -i;" | 16141 " sum += pixels[i] = pixels[i] = -i;" |
| 16142 "}" | 16142 "}" |
| 16143 "sum;"); | 16143 "sum;"); |
| 16144 CHECK_EQ(-28, result->Int32Value()); | 16144 CHECK_EQ(-28, result->Int32Value()); |
| 16145 result = CompileRun("pixels.hasOwnProperty('1')"); | 16145 result = CompileRun("pixels.hasOwnProperty('1')"); |
| 16146 CHECK(result->BooleanValue()); | 16146 CHECK(result->BooleanValue()); |
| 16147 free(pixel_data); | 16147 free(pixel_data); |
| 16148 } | 16148 } |
| 16149 | 16149 |
| 16150 | 16150 |
| 16151 static int ExternalArrayElementSize(v8::ExternalArrayType array_type) { | 16151 static int ExternalArrayElementSize(v8::ExternalArrayType array_type) { |
| 16152 switch (array_type) { | 16152 switch (array_type) { |
| 16153 case v8::kExternalByteArray: | 16153 case v8::kExternalInt8Array: |
| 16154 case v8::kExternalUnsignedByteArray: | 16154 case v8::kExternalUint8Array: |
| 16155 case v8::kExternalPixelArray: | 16155 case v8::kExternalUint8ClampedArray: |
| 16156 return 1; | 16156 return 1; |
| 16157 break; | 16157 break; |
| 16158 case v8::kExternalShortArray: | 16158 case v8::kExternalInt16Array: |
| 16159 case v8::kExternalUnsignedShortArray: | 16159 case v8::kExternalUint16Array: |
| 16160 return 2; | 16160 return 2; |
| 16161 break; | 16161 break; |
| 16162 case v8::kExternalIntArray: | 16162 case v8::kExternalInt32Array: |
| 16163 case v8::kExternalUnsignedIntArray: | 16163 case v8::kExternalUint32Array: |
| 16164 case v8::kExternalFloatArray: | 16164 case v8::kExternalFloat32Array: |
| 16165 return 4; | 16165 return 4; |
| 16166 break; | 16166 break; |
| 16167 case v8::kExternalDoubleArray: | 16167 case v8::kExternalFloat64Array: |
| 16168 return 8; | 16168 return 8; |
| 16169 break; | 16169 break; |
| 16170 default: | 16170 default: |
| 16171 UNREACHABLE(); | 16171 UNREACHABLE(); |
| 16172 return -1; | 16172 return -1; |
| 16173 } | 16173 } |
| 16174 UNREACHABLE(); | 16174 UNREACHABLE(); |
| 16175 return -1; | 16175 return -1; |
| 16176 } | 16176 } |
| 16177 | 16177 |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16319 element_count); | 16319 element_count); |
| 16320 result = CompileRun(test_buf.start()); | 16320 result = CompileRun(test_buf.start()); |
| 16321 CHECK_EQ(false, result->BooleanValue()); | 16321 CHECK_EQ(false, result->BooleanValue()); |
| 16322 | 16322 |
| 16323 // Check other boundary conditions, values and operations. | 16323 // Check other boundary conditions, values and operations. |
| 16324 result = CompileRun("for (var i = 0; i < 8; i++) {" | 16324 result = CompileRun("for (var i = 0; i < 8; i++) {" |
| 16325 " ext_array[7] = undefined;" | 16325 " ext_array[7] = undefined;" |
| 16326 "}" | 16326 "}" |
| 16327 "ext_array[7];"); | 16327 "ext_array[7];"); |
| 16328 CHECK_EQ(0, result->Int32Value()); | 16328 CHECK_EQ(0, result->Int32Value()); |
| 16329 if (array_type == v8::kExternalDoubleArray || | 16329 if (array_type == v8::kExternalFloat64Array || |
| 16330 array_type == v8::kExternalFloatArray) { | 16330 array_type == v8::kExternalFloat32Array) { |
| 16331 CHECK_EQ(static_cast<int>(i::OS::nan_value()), | 16331 CHECK_EQ(static_cast<int>(i::OS::nan_value()), |
| 16332 static_cast<int>( | 16332 static_cast<int>( |
| 16333 jsobj->GetElement(isolate, 7)->ToObjectChecked()->Number())); | 16333 jsobj->GetElement(isolate, 7)->ToObjectChecked()->Number())); |
| 16334 } else { | 16334 } else { |
| 16335 CheckElementValue(isolate, 0, jsobj, 7); | 16335 CheckElementValue(isolate, 0, jsobj, 7); |
| 16336 } | 16336 } |
| 16337 | 16337 |
| 16338 result = CompileRun("for (var i = 0; i < 8; i++) {" | 16338 result = CompileRun("for (var i = 0; i < 8; i++) {" |
| 16339 " ext_array[6] = '2.3';" | 16339 " ext_array[6] = '2.3';" |
| 16340 "}" | 16340 "}" |
| 16341 "ext_array[6];"); | 16341 "ext_array[6];"); |
| 16342 CHECK_EQ(2, result->Int32Value()); | 16342 CHECK_EQ(2, result->Int32Value()); |
| 16343 CHECK_EQ(2, | 16343 CHECK_EQ(2, |
| 16344 static_cast<int>( | 16344 static_cast<int>( |
| 16345 jsobj->GetElement(isolate, 6)->ToObjectChecked()->Number())); | 16345 jsobj->GetElement(isolate, 6)->ToObjectChecked()->Number())); |
| 16346 | 16346 |
| 16347 if (array_type != v8::kExternalFloatArray && | 16347 if (array_type != v8::kExternalFloat32Array && |
| 16348 array_type != v8::kExternalDoubleArray) { | 16348 array_type != v8::kExternalFloat64Array) { |
| 16349 // Though the specification doesn't state it, be explicit about | 16349 // Though the specification doesn't state it, be explicit about |
| 16350 // converting NaNs and +/-Infinity to zero. | 16350 // converting NaNs and +/-Infinity to zero. |
| 16351 result = CompileRun("for (var i = 0; i < 8; i++) {" | 16351 result = CompileRun("for (var i = 0; i < 8; i++) {" |
| 16352 " ext_array[i] = 5;" | 16352 " ext_array[i] = 5;" |
| 16353 "}" | 16353 "}" |
| 16354 "for (var i = 0; i < 8; i++) {" | 16354 "for (var i = 0; i < 8; i++) {" |
| 16355 " ext_array[i] = NaN;" | 16355 " ext_array[i] = NaN;" |
| 16356 "}" | 16356 "}" |
| 16357 "ext_array[5];"); | 16357 "ext_array[5];"); |
| 16358 CHECK_EQ(0, result->Int32Value()); | 16358 CHECK_EQ(0, result->Int32Value()); |
| 16359 CheckElementValue(isolate, 0, jsobj, 5); | 16359 CheckElementValue(isolate, 0, jsobj, 5); |
| 16360 | 16360 |
| 16361 result = CompileRun("for (var i = 0; i < 8; i++) {" | 16361 result = CompileRun("for (var i = 0; i < 8; i++) {" |
| 16362 " ext_array[i] = 5;" | 16362 " ext_array[i] = 5;" |
| 16363 "}" | 16363 "}" |
| 16364 "for (var i = 0; i < 8; i++) {" | 16364 "for (var i = 0; i < 8; i++) {" |
| 16365 " ext_array[i] = Infinity;" | 16365 " ext_array[i] = Infinity;" |
| 16366 "}" | 16366 "}" |
| 16367 "ext_array[5];"); | 16367 "ext_array[5];"); |
| 16368 int expected_value = | 16368 int expected_value = |
| 16369 (array_type == v8::kExternalPixelArray) ? 255 : 0; | 16369 (array_type == v8::kExternalUint8ClampedArray) ? 255 : 0; |
| 16370 CHECK_EQ(expected_value, result->Int32Value()); | 16370 CHECK_EQ(expected_value, result->Int32Value()); |
| 16371 CheckElementValue(isolate, expected_value, jsobj, 5); | 16371 CheckElementValue(isolate, expected_value, jsobj, 5); |
| 16372 | 16372 |
| 16373 result = CompileRun("for (var i = 0; i < 8; i++) {" | 16373 result = CompileRun("for (var i = 0; i < 8; i++) {" |
| 16374 " ext_array[i] = 5;" | 16374 " ext_array[i] = 5;" |
| 16375 "}" | 16375 "}" |
| 16376 "for (var i = 0; i < 8; i++) {" | 16376 "for (var i = 0; i < 8; i++) {" |
| 16377 " ext_array[i] = -Infinity;" | 16377 " ext_array[i] = -Infinity;" |
| 16378 "}" | 16378 "}" |
| 16379 "ext_array[5];"); | 16379 "ext_array[5];"); |
| 16380 CHECK_EQ(0, result->Int32Value()); | 16380 CHECK_EQ(0, result->Int32Value()); |
| 16381 CheckElementValue(isolate, 0, jsobj, 5); | 16381 CheckElementValue(isolate, 0, jsobj, 5); |
| 16382 | 16382 |
| 16383 // Check truncation behavior of integral arrays. | 16383 // Check truncation behavior of integral arrays. |
| 16384 const char* unsigned_data = | 16384 const char* unsigned_data = |
| 16385 "var source_data = [0.6, 10.6];" | 16385 "var source_data = [0.6, 10.6];" |
| 16386 "var expected_results = [0, 10];"; | 16386 "var expected_results = [0, 10];"; |
| 16387 const char* signed_data = | 16387 const char* signed_data = |
| 16388 "var source_data = [0.6, 10.6, -0.6, -10.6];" | 16388 "var source_data = [0.6, 10.6, -0.6, -10.6];" |
| 16389 "var expected_results = [0, 10, 0, -10];"; | 16389 "var expected_results = [0, 10, 0, -10];"; |
| 16390 const char* pixel_data = | 16390 const char* pixel_data = |
| 16391 "var source_data = [0.6, 10.6];" | 16391 "var source_data = [0.6, 10.6];" |
| 16392 "var expected_results = [1, 11];"; | 16392 "var expected_results = [1, 11];"; |
| 16393 bool is_unsigned = | 16393 bool is_unsigned = |
| 16394 (array_type == v8::kExternalUnsignedByteArray || | 16394 (array_type == v8::kExternalUint8Array || |
| 16395 array_type == v8::kExternalUnsignedShortArray || | 16395 array_type == v8::kExternalUint16Array || |
| 16396 array_type == v8::kExternalUnsignedIntArray); | 16396 array_type == v8::kExternalUint32Array); |
| 16397 bool is_pixel_data = array_type == v8::kExternalPixelArray; | 16397 bool is_pixel_data = array_type == v8::kExternalUint8ClampedArray; |
| 16398 | 16398 |
| 16399 i::OS::SNPrintF(test_buf, | 16399 i::OS::SNPrintF(test_buf, |
| 16400 "%s" | 16400 "%s" |
| 16401 "var all_passed = true;" | 16401 "var all_passed = true;" |
| 16402 "for (var i = 0; i < source_data.length; i++) {" | 16402 "for (var i = 0; i < source_data.length; i++) {" |
| 16403 " for (var j = 0; j < 8; j++) {" | 16403 " for (var j = 0; j < 8; j++) {" |
| 16404 " ext_array[j] = source_data[i];" | 16404 " ext_array[j] = source_data[i];" |
| 16405 " }" | 16405 " }" |
| 16406 " all_passed = all_passed &&" | 16406 " all_passed = all_passed &&" |
| 16407 " (ext_array[5] == expected_results[i]);" | 16407 " (ext_array[5] == expected_results[i]);" |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16517 | 16517 |
| 16518 ObjectWithExternalArrayTestHelper<FixedTypedArrayClass, ElementType>( | 16518 ObjectWithExternalArrayTestHelper<FixedTypedArrayClass, ElementType>( |
| 16519 context.local(), obj, kElementCount, array_type, | 16519 context.local(), obj, kElementCount, array_type, |
| 16520 static_cast<int64_t>(low), | 16520 static_cast<int64_t>(low), |
| 16521 static_cast<int64_t>(high)); | 16521 static_cast<int64_t>(high)); |
| 16522 } | 16522 } |
| 16523 | 16523 |
| 16524 | 16524 |
| 16525 THREADED_TEST(FixedUint8Array) { | 16525 THREADED_TEST(FixedUint8Array) { |
| 16526 FixedTypedArrayTestHelper<i::FixedUint8Array, i::UINT8_ELEMENTS, uint8_t>( | 16526 FixedTypedArrayTestHelper<i::FixedUint8Array, i::UINT8_ELEMENTS, uint8_t>( |
| 16527 v8::kExternalUnsignedByteArray, | 16527 v8::kExternalUint8Array, |
| 16528 0x0, 0xFF); | 16528 0x0, 0xFF); |
| 16529 } | 16529 } |
| 16530 | 16530 |
| 16531 | 16531 |
| 16532 THREADED_TEST(FixedUint8ClampedArray) { | 16532 THREADED_TEST(FixedUint8ClampedArray) { |
| 16533 FixedTypedArrayTestHelper<i::FixedUint8ClampedArray, | 16533 FixedTypedArrayTestHelper<i::FixedUint8ClampedArray, |
| 16534 i::UINT8_CLAMPED_ELEMENTS, uint8_t>( | 16534 i::UINT8_CLAMPED_ELEMENTS, uint8_t>( |
| 16535 v8::kExternalPixelArray, | 16535 v8::kExternalUint8ClampedArray, |
| 16536 0x0, 0xFF); | 16536 0x0, 0xFF); |
| 16537 } | 16537 } |
| 16538 | 16538 |
| 16539 | 16539 |
| 16540 THREADED_TEST(FixedInt8Array) { | 16540 THREADED_TEST(FixedInt8Array) { |
| 16541 FixedTypedArrayTestHelper<i::FixedInt8Array, i::INT8_ELEMENTS, int8_t>( | 16541 FixedTypedArrayTestHelper<i::FixedInt8Array, i::INT8_ELEMENTS, int8_t>( |
| 16542 v8::kExternalByteArray, | 16542 v8::kExternalInt8Array, |
| 16543 -0x80, 0x7F); | 16543 -0x80, 0x7F); |
| 16544 } | 16544 } |
| 16545 | 16545 |
| 16546 | 16546 |
| 16547 THREADED_TEST(FixedUint16Array) { | 16547 THREADED_TEST(FixedUint16Array) { |
| 16548 FixedTypedArrayTestHelper<i::FixedUint16Array, i::UINT16_ELEMENTS, uint16_t>( | 16548 FixedTypedArrayTestHelper<i::FixedUint16Array, i::UINT16_ELEMENTS, uint16_t>( |
| 16549 v8::kExternalUnsignedShortArray, | 16549 v8::kExternalUint16Array, |
| 16550 0x0, 0xFFFF); | 16550 0x0, 0xFFFF); |
| 16551 } | 16551 } |
| 16552 | 16552 |
| 16553 | 16553 |
| 16554 THREADED_TEST(FixedInt16Array) { | 16554 THREADED_TEST(FixedInt16Array) { |
| 16555 FixedTypedArrayTestHelper<i::FixedInt16Array, i::INT16_ELEMENTS, int16_t>( | 16555 FixedTypedArrayTestHelper<i::FixedInt16Array, i::INT16_ELEMENTS, int16_t>( |
| 16556 v8::kExternalShortArray, | 16556 v8::kExternalInt16Array, |
| 16557 -0x8000, 0x7FFF); | 16557 -0x8000, 0x7FFF); |
| 16558 } | 16558 } |
| 16559 | 16559 |
| 16560 | 16560 |
| 16561 THREADED_TEST(FixedUint32Array) { | 16561 THREADED_TEST(FixedUint32Array) { |
| 16562 FixedTypedArrayTestHelper<i::FixedUint32Array, i::UINT32_ELEMENTS, uint32_t>( | 16562 FixedTypedArrayTestHelper<i::FixedUint32Array, i::UINT32_ELEMENTS, uint32_t>( |
| 16563 v8::kExternalUnsignedIntArray, | 16563 v8::kExternalUint32Array, |
| 16564 0x0, UINT_MAX); | 16564 0x0, UINT_MAX); |
| 16565 } | 16565 } |
| 16566 | 16566 |
| 16567 | 16567 |
| 16568 THREADED_TEST(FixedInt32Array) { | 16568 THREADED_TEST(FixedInt32Array) { |
| 16569 FixedTypedArrayTestHelper<i::FixedInt32Array, i::INT32_ELEMENTS, int32_t>( | 16569 FixedTypedArrayTestHelper<i::FixedInt32Array, i::INT32_ELEMENTS, int32_t>( |
| 16570 v8::kExternalIntArray, | 16570 v8::kExternalInt32Array, |
| 16571 INT_MIN, INT_MAX); | 16571 INT_MIN, INT_MAX); |
| 16572 } | 16572 } |
| 16573 | 16573 |
| 16574 | 16574 |
| 16575 THREADED_TEST(FixedFloat32Array) { | 16575 THREADED_TEST(FixedFloat32Array) { |
| 16576 FixedTypedArrayTestHelper<i::FixedFloat32Array, i::FLOAT32_ELEMENTS, float>( | 16576 FixedTypedArrayTestHelper<i::FixedFloat32Array, i::FLOAT32_ELEMENTS, float>( |
| 16577 v8::kExternalFloatArray, | 16577 v8::kExternalFloat32Array, |
| 16578 -500, 500); | 16578 -500, 500); |
| 16579 } | 16579 } |
| 16580 | 16580 |
| 16581 | 16581 |
| 16582 THREADED_TEST(FixedFloat64Array) { | 16582 THREADED_TEST(FixedFloat64Array) { |
| 16583 FixedTypedArrayTestHelper<i::FixedFloat64Array, i::FLOAT64_ELEMENTS, float>( | 16583 FixedTypedArrayTestHelper<i::FixedFloat64Array, i::FLOAT64_ELEMENTS, float>( |
| 16584 v8::kExternalDoubleArray, | 16584 v8::kExternalFloat64Array, |
| 16585 -500, 500); | 16585 -500, 500); |
| 16586 } | 16586 } |
| 16587 | 16587 |
| 16588 | 16588 |
| 16589 template <class ExternalArrayClass, class ElementType> | 16589 template <class ExternalArrayClass, class ElementType> |
| 16590 static void ExternalArrayTestHelper(v8::ExternalArrayType array_type, | 16590 static void ExternalArrayTestHelper(v8::ExternalArrayType array_type, |
| 16591 int64_t low, | 16591 int64_t low, |
| 16592 int64_t high) { | 16592 int64_t high) { |
| 16593 LocalContext context; | 16593 LocalContext context; |
| 16594 i::Isolate* isolate = CcTest::i_isolate(); | 16594 i::Isolate* isolate = CcTest::i_isolate(); |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16796 v8::Int32::New(context->GetIsolate(), 256)); | 16796 v8::Int32::New(context->GetIsolate(), 256)); |
| 16797 context->Global()->Set(v8_str("ext_array"), obj2); | 16797 context->Global()->Set(v8_str("ext_array"), obj2); |
| 16798 result = CompileRun("ext_array[''] = function() {return 1503;};" | 16798 result = CompileRun("ext_array[''] = function() {return 1503;};" |
| 16799 "ext_array['']();"); | 16799 "ext_array['']();"); |
| 16800 } | 16800 } |
| 16801 | 16801 |
| 16802 free(array_data); | 16802 free(array_data); |
| 16803 } | 16803 } |
| 16804 | 16804 |
| 16805 | 16805 |
| 16806 THREADED_TEST(ExternalByteArray) { | 16806 THREADED_TEST(ExternalInt8Array) { |
| 16807 ExternalArrayTestHelper<i::ExternalByteArray, int8_t>( | 16807 ExternalArrayTestHelper<i::ExternalInt8Array, int8_t>( |
| 16808 v8::kExternalByteArray, | 16808 v8::kExternalInt8Array, |
| 16809 -128, | 16809 -128, |
| 16810 127); | 16810 127); |
| 16811 } | 16811 } |
| 16812 | 16812 |
| 16813 | 16813 |
| 16814 THREADED_TEST(ExternalUnsignedByteArray) { | 16814 THREADED_TEST(ExternalUint8Array) { |
| 16815 ExternalArrayTestHelper<i::ExternalUnsignedByteArray, uint8_t>( | 16815 ExternalArrayTestHelper<i::ExternalUint8Array, uint8_t>( |
| 16816 v8::kExternalUnsignedByteArray, | 16816 v8::kExternalUint8Array, |
| 16817 0, | 16817 0, |
| 16818 255); | 16818 255); |
| 16819 } | 16819 } |
| 16820 | 16820 |
| 16821 | 16821 |
| 16822 THREADED_TEST(ExternalPixelArray) { | 16822 THREADED_TEST(ExternalUint8ClampedArray) { |
| 16823 ExternalArrayTestHelper<i::ExternalPixelArray, uint8_t>( | 16823 ExternalArrayTestHelper<i::ExternalUint8ClampedArray, uint8_t>( |
| 16824 v8::kExternalPixelArray, | 16824 v8::kExternalUint8ClampedArray, |
| 16825 0, | 16825 0, |
| 16826 255); | 16826 255); |
| 16827 } | 16827 } |
| 16828 | 16828 |
| 16829 | 16829 |
| 16830 THREADED_TEST(ExternalShortArray) { | 16830 THREADED_TEST(ExternalInt16Array) { |
| 16831 ExternalArrayTestHelper<i::ExternalShortArray, int16_t>( | 16831 ExternalArrayTestHelper<i::ExternalInt16Array, int16_t>( |
| 16832 v8::kExternalShortArray, | 16832 v8::kExternalInt16Array, |
| 16833 -32768, | 16833 -32768, |
| 16834 32767); | 16834 32767); |
| 16835 } | 16835 } |
| 16836 | 16836 |
| 16837 | 16837 |
| 16838 THREADED_TEST(ExternalUnsignedShortArray) { | 16838 THREADED_TEST(ExternalUint16Array) { |
| 16839 ExternalArrayTestHelper<i::ExternalUnsignedShortArray, uint16_t>( | 16839 ExternalArrayTestHelper<i::ExternalUint16Array, uint16_t>( |
| 16840 v8::kExternalUnsignedShortArray, | 16840 v8::kExternalUint16Array, |
| 16841 0, | 16841 0, |
| 16842 65535); | 16842 65535); |
| 16843 } | 16843 } |
| 16844 | 16844 |
| 16845 | 16845 |
| 16846 THREADED_TEST(ExternalIntArray) { | 16846 THREADED_TEST(ExternalInt32Array) { |
| 16847 ExternalArrayTestHelper<i::ExternalIntArray, int32_t>( | 16847 ExternalArrayTestHelper<i::ExternalInt32Array, int32_t>( |
| 16848 v8::kExternalIntArray, | 16848 v8::kExternalInt32Array, |
| 16849 INT_MIN, // -2147483648 | 16849 INT_MIN, // -2147483648 |
| 16850 INT_MAX); // 2147483647 | 16850 INT_MAX); // 2147483647 |
| 16851 } | 16851 } |
| 16852 | 16852 |
| 16853 | 16853 |
| 16854 THREADED_TEST(ExternalUnsignedIntArray) { | 16854 THREADED_TEST(ExternalUint32Array) { |
| 16855 ExternalArrayTestHelper<i::ExternalUnsignedIntArray, uint32_t>( | 16855 ExternalArrayTestHelper<i::ExternalUint32Array, uint32_t>( |
| 16856 v8::kExternalUnsignedIntArray, | 16856 v8::kExternalUint32Array, |
| 16857 0, | 16857 0, |
| 16858 UINT_MAX); // 4294967295 | 16858 UINT_MAX); // 4294967295 |
| 16859 } | 16859 } |
| 16860 | 16860 |
| 16861 | 16861 |
| 16862 THREADED_TEST(ExternalFloatArray) { | 16862 THREADED_TEST(ExternalFloat32Array) { |
| 16863 ExternalArrayTestHelper<i::ExternalFloatArray, float>( | 16863 ExternalArrayTestHelper<i::ExternalFloat32Array, float>( |
| 16864 v8::kExternalFloatArray, | 16864 v8::kExternalFloat32Array, |
| 16865 -500, | 16865 -500, |
| 16866 500); | 16866 500); |
| 16867 } | 16867 } |
| 16868 | 16868 |
| 16869 | 16869 |
| 16870 THREADED_TEST(ExternalDoubleArray) { | 16870 THREADED_TEST(ExternalFloat64Array) { |
| 16871 ExternalArrayTestHelper<i::ExternalDoubleArray, double>( | 16871 ExternalArrayTestHelper<i::ExternalFloat64Array, double>( |
| 16872 v8::kExternalDoubleArray, | 16872 v8::kExternalFloat64Array, |
| 16873 -500, | 16873 -500, |
| 16874 500); | 16874 500); |
| 16875 } | 16875 } |
| 16876 | 16876 |
| 16877 | 16877 |
| 16878 THREADED_TEST(ExternalArrays) { | 16878 THREADED_TEST(ExternalArrays) { |
| 16879 TestExternalByteArray(); | 16879 TestExternalInt8Array(); |
| 16880 TestExternalUnsignedByteArray(); | 16880 TestExternalUint8Array(); |
| 16881 TestExternalShortArray(); | 16881 TestExternalInt16Array(); |
| 16882 TestExternalUnsignedShortArray(); | 16882 TestExternalUint16Array(); |
| 16883 TestExternalIntArray(); | 16883 TestExternalInt32Array(); |
| 16884 TestExternalUnsignedIntArray(); | 16884 TestExternalUint32Array(); |
| 16885 TestExternalFloatArray(); | 16885 TestExternalFloat32Array(); |
| 16886 } | 16886 } |
| 16887 | 16887 |
| 16888 | 16888 |
| 16889 void ExternalArrayInfoTestHelper(v8::ExternalArrayType array_type) { | 16889 void ExternalArrayInfoTestHelper(v8::ExternalArrayType array_type) { |
| 16890 LocalContext context; | 16890 LocalContext context; |
| 16891 v8::HandleScope scope(context->GetIsolate()); | 16891 v8::HandleScope scope(context->GetIsolate()); |
| 16892 for (int size = 0; size < 100; size += 10) { | 16892 for (int size = 0; size < 100; size += 10) { |
| 16893 int element_size = ExternalArrayElementSize(array_type); | 16893 int element_size = ExternalArrayElementSize(array_type); |
| 16894 void* external_data = malloc(size * element_size); | 16894 void* external_data = malloc(size * element_size); |
| 16895 v8::Handle<v8::Object> obj = v8::Object::New(context->GetIsolate()); | 16895 v8::Handle<v8::Object> obj = v8::Object::New(context->GetIsolate()); |
| 16896 obj->SetIndexedPropertiesToExternalArrayData( | 16896 obj->SetIndexedPropertiesToExternalArrayData( |
| 16897 external_data, array_type, size); | 16897 external_data, array_type, size); |
| 16898 CHECK(obj->HasIndexedPropertiesInExternalArrayData()); | 16898 CHECK(obj->HasIndexedPropertiesInExternalArrayData()); |
| 16899 CHECK_EQ(external_data, obj->GetIndexedPropertiesExternalArrayData()); | 16899 CHECK_EQ(external_data, obj->GetIndexedPropertiesExternalArrayData()); |
| 16900 CHECK_EQ(array_type, obj->GetIndexedPropertiesExternalArrayDataType()); | 16900 CHECK_EQ(array_type, obj->GetIndexedPropertiesExternalArrayDataType()); |
| 16901 CHECK_EQ(size, obj->GetIndexedPropertiesExternalArrayDataLength()); | 16901 CHECK_EQ(size, obj->GetIndexedPropertiesExternalArrayDataLength()); |
| 16902 free(external_data); | 16902 free(external_data); |
| 16903 } | 16903 } |
| 16904 } | 16904 } |
| 16905 | 16905 |
| 16906 | 16906 |
| 16907 THREADED_TEST(ExternalArrayInfo) { | 16907 THREADED_TEST(ExternalArrayInfo) { |
| 16908 ExternalArrayInfoTestHelper(v8::kExternalByteArray); | 16908 ExternalArrayInfoTestHelper(v8::kExternalInt8Array); |
| 16909 ExternalArrayInfoTestHelper(v8::kExternalUnsignedByteArray); | 16909 ExternalArrayInfoTestHelper(v8::kExternalUint8Array); |
| 16910 ExternalArrayInfoTestHelper(v8::kExternalShortArray); | 16910 ExternalArrayInfoTestHelper(v8::kExternalInt16Array); |
| 16911 ExternalArrayInfoTestHelper(v8::kExternalUnsignedShortArray); | 16911 ExternalArrayInfoTestHelper(v8::kExternalUint16Array); |
| 16912 ExternalArrayInfoTestHelper(v8::kExternalIntArray); | 16912 ExternalArrayInfoTestHelper(v8::kExternalInt32Array); |
| 16913 ExternalArrayInfoTestHelper(v8::kExternalUnsignedIntArray); | 16913 ExternalArrayInfoTestHelper(v8::kExternalUint32Array); |
| 16914 ExternalArrayInfoTestHelper(v8::kExternalFloatArray); | 16914 ExternalArrayInfoTestHelper(v8::kExternalFloat32Array); |
| 16915 ExternalArrayInfoTestHelper(v8::kExternalDoubleArray); | 16915 ExternalArrayInfoTestHelper(v8::kExternalFloat64Array); |
| 16916 ExternalArrayInfoTestHelper(v8::kExternalPixelArray); | 16916 ExternalArrayInfoTestHelper(v8::kExternalUint8ClampedArray); |
| 16917 } | 16917 } |
| 16918 | 16918 |
| 16919 | 16919 |
| 16920 void ExtArrayLimitsHelper(v8::Isolate* isolate, | 16920 void ExtArrayLimitsHelper(v8::Isolate* isolate, |
| 16921 v8::ExternalArrayType array_type, | 16921 v8::ExternalArrayType array_type, |
| 16922 int size) { | 16922 int size) { |
| 16923 v8::Handle<v8::Object> obj = v8::Object::New(isolate); | 16923 v8::Handle<v8::Object> obj = v8::Object::New(isolate); |
| 16924 v8::V8::SetFatalErrorHandler(StoringErrorCallback); | 16924 v8::V8::SetFatalErrorHandler(StoringErrorCallback); |
| 16925 last_location = last_message = NULL; | 16925 last_location = last_message = NULL; |
| 16926 obj->SetIndexedPropertiesToExternalArrayData(NULL, array_type, size); | 16926 obj->SetIndexedPropertiesToExternalArrayData(NULL, array_type, size); |
| 16927 CHECK(!obj->HasIndexedPropertiesInExternalArrayData()); | 16927 CHECK(!obj->HasIndexedPropertiesInExternalArrayData()); |
| 16928 CHECK_NE(NULL, last_location); | 16928 CHECK_NE(NULL, last_location); |
| 16929 CHECK_NE(NULL, last_message); | 16929 CHECK_NE(NULL, last_message); |
| 16930 } | 16930 } |
| 16931 | 16931 |
| 16932 | 16932 |
| 16933 TEST(ExternalArrayLimits) { | 16933 TEST(ExternalArrayLimits) { |
| 16934 LocalContext context; | 16934 LocalContext context; |
| 16935 v8::Isolate* isolate = context->GetIsolate(); | 16935 v8::Isolate* isolate = context->GetIsolate(); |
| 16936 v8::HandleScope scope(isolate); | 16936 v8::HandleScope scope(isolate); |
| 16937 ExtArrayLimitsHelper(isolate, v8::kExternalByteArray, 0x40000000); | 16937 ExtArrayLimitsHelper(isolate, v8::kExternalInt8Array, 0x40000000); |
| 16938 ExtArrayLimitsHelper(isolate, v8::kExternalByteArray, 0xffffffff); | 16938 ExtArrayLimitsHelper(isolate, v8::kExternalInt8Array, 0xffffffff); |
| 16939 ExtArrayLimitsHelper(isolate, v8::kExternalUnsignedByteArray, 0x40000000); | 16939 ExtArrayLimitsHelper(isolate, v8::kExternalUint8Array, 0x40000000); |
| 16940 ExtArrayLimitsHelper(isolate, v8::kExternalUnsignedByteArray, 0xffffffff); | 16940 ExtArrayLimitsHelper(isolate, v8::kExternalUint8Array, 0xffffffff); |
| 16941 ExtArrayLimitsHelper(isolate, v8::kExternalShortArray, 0x40000000); | 16941 ExtArrayLimitsHelper(isolate, v8::kExternalInt16Array, 0x40000000); |
| 16942 ExtArrayLimitsHelper(isolate, v8::kExternalShortArray, 0xffffffff); | 16942 ExtArrayLimitsHelper(isolate, v8::kExternalInt16Array, 0xffffffff); |
| 16943 ExtArrayLimitsHelper(isolate, v8::kExternalUnsignedShortArray, 0x40000000); | 16943 ExtArrayLimitsHelper(isolate, v8::kExternalUint16Array, 0x40000000); |
| 16944 ExtArrayLimitsHelper(isolate, v8::kExternalUnsignedShortArray, 0xffffffff); | 16944 ExtArrayLimitsHelper(isolate, v8::kExternalUint16Array, 0xffffffff); |
| 16945 ExtArrayLimitsHelper(isolate, v8::kExternalIntArray, 0x40000000); | 16945 ExtArrayLimitsHelper(isolate, v8::kExternalInt32Array, 0x40000000); |
| 16946 ExtArrayLimitsHelper(isolate, v8::kExternalIntArray, 0xffffffff); | 16946 ExtArrayLimitsHelper(isolate, v8::kExternalInt32Array, 0xffffffff); |
| 16947 ExtArrayLimitsHelper(isolate, v8::kExternalUnsignedIntArray, 0x40000000); | 16947 ExtArrayLimitsHelper(isolate, v8::kExternalUint32Array, 0x40000000); |
| 16948 ExtArrayLimitsHelper(isolate, v8::kExternalUnsignedIntArray, 0xffffffff); | 16948 ExtArrayLimitsHelper(isolate, v8::kExternalUint32Array, 0xffffffff); |
| 16949 ExtArrayLimitsHelper(isolate, v8::kExternalFloatArray, 0x40000000); | 16949 ExtArrayLimitsHelper(isolate, v8::kExternalFloat32Array, 0x40000000); |
| 16950 ExtArrayLimitsHelper(isolate, v8::kExternalFloatArray, 0xffffffff); | 16950 ExtArrayLimitsHelper(isolate, v8::kExternalFloat32Array, 0xffffffff); |
| 16951 ExtArrayLimitsHelper(isolate, v8::kExternalDoubleArray, 0x40000000); | 16951 ExtArrayLimitsHelper(isolate, v8::kExternalFloat64Array, 0x40000000); |
| 16952 ExtArrayLimitsHelper(isolate, v8::kExternalDoubleArray, 0xffffffff); | 16952 ExtArrayLimitsHelper(isolate, v8::kExternalFloat64Array, 0xffffffff); |
| 16953 ExtArrayLimitsHelper(isolate, v8::kExternalPixelArray, 0x40000000); | 16953 ExtArrayLimitsHelper(isolate, v8::kExternalUint8ClampedArray, 0x40000000); |
| 16954 ExtArrayLimitsHelper(isolate, v8::kExternalPixelArray, 0xffffffff); | 16954 ExtArrayLimitsHelper(isolate, v8::kExternalUint8ClampedArray, 0xffffffff); |
| 16955 } | 16955 } |
| 16956 | 16956 |
| 16957 | 16957 |
| 16958 template <typename ElementType, typename TypedArray, | 16958 template <typename ElementType, typename TypedArray, |
| 16959 class ExternalArrayClass> | 16959 class ExternalArrayClass> |
| 16960 void TypedArrayTestHelper(v8::ExternalArrayType array_type, | 16960 void TypedArrayTestHelper(v8::ExternalArrayType array_type, |
| 16961 int64_t low, int64_t high) { | 16961 int64_t low, int64_t high) { |
| 16962 const int kElementCount = 50; | 16962 const int kElementCount = 50; |
| 16963 | 16963 |
| 16964 i::ScopedVector<ElementType> backing_store(kElementCount+2); | 16964 i::ScopedVector<ElementType> backing_store(kElementCount+2); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 16983 for (int i = 0; i < kElementCount; i++) { | 16983 for (int i = 0; i < kElementCount; i++) { |
| 16984 data[i] = static_cast<ElementType>(i); | 16984 data[i] = static_cast<ElementType>(i); |
| 16985 } | 16985 } |
| 16986 | 16986 |
| 16987 ObjectWithExternalArrayTestHelper<ExternalArrayClass, ElementType>( | 16987 ObjectWithExternalArrayTestHelper<ExternalArrayClass, ElementType>( |
| 16988 env.local(), ta, kElementCount, array_type, low, high); | 16988 env.local(), ta, kElementCount, array_type, low, high); |
| 16989 } | 16989 } |
| 16990 | 16990 |
| 16991 | 16991 |
| 16992 THREADED_TEST(Uint8Array) { | 16992 THREADED_TEST(Uint8Array) { |
| 16993 TypedArrayTestHelper<uint8_t, v8::Uint8Array, i::ExternalUnsignedByteArray>( | 16993 TypedArrayTestHelper<uint8_t, v8::Uint8Array, i::ExternalUint8Array>( |
| 16994 v8::kExternalUnsignedByteArray, 0, 0xFF); | 16994 v8::kExternalUint8Array, 0, 0xFF); |
| 16995 } | 16995 } |
| 16996 | 16996 |
| 16997 | 16997 |
| 16998 THREADED_TEST(Int8Array) { | 16998 THREADED_TEST(Int8Array) { |
| 16999 TypedArrayTestHelper<int8_t, v8::Int8Array, i::ExternalByteArray>( | 16999 TypedArrayTestHelper<int8_t, v8::Int8Array, i::ExternalInt8Array>( |
| 17000 v8::kExternalByteArray, -0x80, 0x7F); | 17000 v8::kExternalInt8Array, -0x80, 0x7F); |
| 17001 } | 17001 } |
| 17002 | 17002 |
| 17003 | 17003 |
| 17004 THREADED_TEST(Uint16Array) { | 17004 THREADED_TEST(Uint16Array) { |
| 17005 TypedArrayTestHelper<uint16_t, | 17005 TypedArrayTestHelper<uint16_t, |
| 17006 v8::Uint16Array, | 17006 v8::Uint16Array, |
| 17007 i::ExternalUnsignedShortArray>( | 17007 i::ExternalUint16Array>( |
| 17008 v8::kExternalUnsignedShortArray, 0, 0xFFFF); | 17008 v8::kExternalUint16Array, 0, 0xFFFF); |
| 17009 } | 17009 } |
| 17010 | 17010 |
| 17011 | 17011 |
| 17012 THREADED_TEST(Int16Array) { | 17012 THREADED_TEST(Int16Array) { |
| 17013 TypedArrayTestHelper<int16_t, v8::Int16Array, i::ExternalShortArray>( | 17013 TypedArrayTestHelper<int16_t, v8::Int16Array, i::ExternalInt16Array>( |
| 17014 v8::kExternalShortArray, -0x8000, 0x7FFF); | 17014 v8::kExternalInt16Array, -0x8000, 0x7FFF); |
| 17015 } | 17015 } |
| 17016 | 17016 |
| 17017 | 17017 |
| 17018 THREADED_TEST(Uint32Array) { | 17018 THREADED_TEST(Uint32Array) { |
| 17019 TypedArrayTestHelper<uint32_t, v8::Uint32Array, i::ExternalUnsignedIntArray>( | 17019 TypedArrayTestHelper<uint32_t, v8::Uint32Array, i::ExternalUint32Array>( |
| 17020 v8::kExternalUnsignedIntArray, 0, UINT_MAX); | 17020 v8::kExternalUint32Array, 0, UINT_MAX); |
| 17021 } | 17021 } |
| 17022 | 17022 |
| 17023 | 17023 |
| 17024 THREADED_TEST(Int32Array) { | 17024 THREADED_TEST(Int32Array) { |
| 17025 TypedArrayTestHelper<int32_t, v8::Int32Array, i::ExternalIntArray>( | 17025 TypedArrayTestHelper<int32_t, v8::Int32Array, i::ExternalInt32Array>( |
| 17026 v8::kExternalIntArray, INT_MIN, INT_MAX); | 17026 v8::kExternalInt32Array, INT_MIN, INT_MAX); |
| 17027 } | 17027 } |
| 17028 | 17028 |
| 17029 | 17029 |
| 17030 THREADED_TEST(Float32Array) { | 17030 THREADED_TEST(Float32Array) { |
| 17031 TypedArrayTestHelper<float, v8::Float32Array, i::ExternalFloatArray>( | 17031 TypedArrayTestHelper<float, v8::Float32Array, i::ExternalFloat32Array>( |
| 17032 v8::kExternalFloatArray, -500, 500); | 17032 v8::kExternalFloat32Array, -500, 500); |
| 17033 } | 17033 } |
| 17034 | 17034 |
| 17035 | 17035 |
| 17036 THREADED_TEST(Float64Array) { | 17036 THREADED_TEST(Float64Array) { |
| 17037 TypedArrayTestHelper<double, v8::Float64Array, i::ExternalDoubleArray>( | 17037 TypedArrayTestHelper<double, v8::Float64Array, i::ExternalFloat64Array>( |
| 17038 v8::kExternalDoubleArray, -500, 500); | 17038 v8::kExternalFloat64Array, -500, 500); |
| 17039 } | 17039 } |
| 17040 | 17040 |
| 17041 | 17041 |
| 17042 THREADED_TEST(Uint8ClampedArray) { | 17042 THREADED_TEST(Uint8ClampedArray) { |
| 17043 TypedArrayTestHelper<uint8_t, v8::Uint8ClampedArray, i::ExternalPixelArray>( | 17043 TypedArrayTestHelper<uint8_t, |
| 17044 v8::kExternalPixelArray, 0, 0xFF); | 17044 v8::Uint8ClampedArray, i::ExternalUint8ClampedArray>( |
| 17045 v8::kExternalUint8ClampedArray, 0, 0xFF); |
| 17045 } | 17046 } |
| 17046 | 17047 |
| 17047 | 17048 |
| 17048 THREADED_TEST(DataView) { | 17049 THREADED_TEST(DataView) { |
| 17049 const int kSize = 50; | 17050 const int kSize = 50; |
| 17050 | 17051 |
| 17051 i::ScopedVector<uint8_t> backing_store(kSize+2); | 17052 i::ScopedVector<uint8_t> backing_store(kSize+2); |
| 17052 | 17053 |
| 17053 LocalContext env; | 17054 LocalContext env; |
| 17054 v8::Isolate* isolate = env->GetIsolate(); | 17055 v8::Isolate* isolate = env->GetIsolate(); |
| (...skipping 4777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 21832 context->Global()->Set(v8_str("P"), templ->NewInstance()); | 21833 context->Global()->Set(v8_str("P"), templ->NewInstance()); |
| 21833 CompileRun( | 21834 CompileRun( |
| 21834 "function C1() {" | 21835 "function C1() {" |
| 21835 " this.x = 23;" | 21836 " this.x = 23;" |
| 21836 "};" | 21837 "};" |
| 21837 "C1.prototype = P;" | 21838 "C1.prototype = P;" |
| 21838 "for (var i = 0; i < 4; i++ ) {" | 21839 "for (var i = 0; i < 4; i++ ) {" |
| 21839 " new C1();" | 21840 " new C1();" |
| 21840 "}"); | 21841 "}"); |
| 21841 } | 21842 } |
| OLD | NEW |