| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/assert.h" | 5 #include "platform/assert.h" |
| 6 #include "vm/assembler.h" | 6 #include "vm/assembler.h" |
| 7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
| 8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
| 9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
| 10 #include "vm/object.h" | 10 #include "vm/object.h" |
| (...skipping 1887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1898 } | 1898 } |
| 1899 | 1899 |
| 1900 | 1900 |
| 1901 TEST_CASE(ExternalByteArray) { | 1901 TEST_CASE(ExternalByteArray) { |
| 1902 uint8_t data[] = { 253, 254, 255, 0, 1, 2, 3, 4 }; | 1902 uint8_t data[] = { 253, 254, 255, 0, 1, 2, 3, 4 }; |
| 1903 intptr_t data_length = ARRAY_SIZE(data); | 1903 intptr_t data_length = ARRAY_SIZE(data); |
| 1904 | 1904 |
| 1905 const ExternalInt8Array& int8_array = | 1905 const ExternalInt8Array& int8_array = |
| 1906 ExternalInt8Array::Handle( | 1906 ExternalInt8Array::Handle( |
| 1907 ExternalInt8Array::New(reinterpret_cast<int8_t*>(data), | 1907 ExternalInt8Array::New(reinterpret_cast<int8_t*>(data), |
| 1908 data_length, NULL, NULL)); | 1908 data_length)); |
| 1909 EXPECT(!int8_array.IsNull()); | 1909 EXPECT(!int8_array.IsNull()); |
| 1910 EXPECT_EQ(data_length, int8_array.Length()); | 1910 EXPECT_EQ(data_length, int8_array.Length()); |
| 1911 | 1911 |
| 1912 const ExternalUint8Array& uint8_array = | 1912 const ExternalUint8Array& uint8_array = |
| 1913 ExternalUint8Array::Handle( | 1913 ExternalUint8Array::Handle( |
| 1914 ExternalUint8Array::New(data, data_length, NULL, NULL)); | 1914 ExternalUint8Array::New(data, data_length)); |
| 1915 EXPECT(!uint8_array.IsNull()); | 1915 EXPECT(!uint8_array.IsNull()); |
| 1916 EXPECT_EQ(data_length, uint8_array.Length()); | 1916 EXPECT_EQ(data_length, uint8_array.Length()); |
| 1917 | 1917 |
| 1918 const ExternalUint8ClampedArray& uint8_clamped_array = | 1918 const ExternalUint8ClampedArray& uint8_clamped_array = |
| 1919 ExternalUint8ClampedArray::Handle( | 1919 ExternalUint8ClampedArray::Handle( |
| 1920 ExternalUint8ClampedArray::New(data, data_length, NULL, NULL)); | 1920 ExternalUint8ClampedArray::New(data, data_length)); |
| 1921 EXPECT(!uint8_clamped_array.IsNull()); | 1921 EXPECT(!uint8_clamped_array.IsNull()); |
| 1922 EXPECT_EQ(data_length, uint8_clamped_array.Length()); | 1922 EXPECT_EQ(data_length, uint8_clamped_array.Length()); |
| 1923 | 1923 |
| 1924 EXPECT_EQ(-3, int8_array.At(0)); | 1924 EXPECT_EQ(-3, int8_array.At(0)); |
| 1925 EXPECT_EQ(253, uint8_array.At(0)); | 1925 EXPECT_EQ(253, uint8_array.At(0)); |
| 1926 EXPECT_EQ(253, uint8_clamped_array.At(0)); | 1926 EXPECT_EQ(253, uint8_clamped_array.At(0)); |
| 1927 | 1927 |
| 1928 EXPECT_EQ(-2, int8_array.At(1)); | 1928 EXPECT_EQ(-2, int8_array.At(1)); |
| 1929 EXPECT_EQ(254, uint8_array.At(1)); | 1929 EXPECT_EQ(254, uint8_array.At(1)); |
| 1930 EXPECT_EQ(254, uint8_clamped_array.At(1)); | 1930 EXPECT_EQ(254, uint8_clamped_array.At(1)); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2083 | 2083 |
| 2084 | 2084 |
| 2085 TEST_CASE(Uint8ByteArrayCopyExternal) { | 2085 TEST_CASE(Uint8ByteArrayCopyExternal) { |
| 2086 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; | 2086 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| 2087 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; | 2087 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
| 2088 | 2088 |
| 2089 uint8_t data[] = { 0, 1, 2, 3 }; | 2089 uint8_t data[] = { 0, 1, 2, 3 }; |
| 2090 | 2090 |
| 2091 const ExternalUint8Array& external = | 2091 const ExternalUint8Array& external = |
| 2092 ExternalUint8Array::Handle( | 2092 ExternalUint8Array::Handle( |
| 2093 ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); | 2093 ExternalUint8Array::New(data, ARRAY_SIZE(data))); |
| 2094 EXPECT(!external.IsNull()); | 2094 EXPECT(!external.IsNull()); |
| 2095 EXPECT_EQ(4, external.Length()); | 2095 EXPECT_EQ(4, external.Length()); |
| 2096 EXPECT_EQ(0, external.At(0)); | 2096 EXPECT_EQ(0, external.At(0)); |
| 2097 EXPECT_EQ(1, external.At(1)); | 2097 EXPECT_EQ(1, external.At(1)); |
| 2098 EXPECT_EQ(2, external.At(2)); | 2098 EXPECT_EQ(2, external.At(2)); |
| 2099 EXPECT_EQ(3, external.At(3)); | 2099 EXPECT_EQ(3, external.At(3)); |
| 2100 | 2100 |
| 2101 // A zero length copy. | 2101 // A zero length copy. |
| 2102 ByteArray::Copy(external, 0, b_4_5_6_7, 0); | 2102 ByteArray::Copy(external, 0, b_4_5_6_7, 0); |
| 2103 EXPECT_EQ(0, external.At(0)); | 2103 EXPECT_EQ(0, external.At(0)); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2143 | 2143 |
| 2144 | 2144 |
| 2145 TEST_CASE(ClampedUint8ByteArrayCopyExternal) { | 2145 TEST_CASE(ClampedUint8ByteArrayCopyExternal) { |
| 2146 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; | 2146 const uint8_t b_0_1_2_3[] = { 0, 1, 2, 3 }; |
| 2147 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; | 2147 const uint8_t b_4_5_6_7[] = { 4, 5, 6, 7 }; |
| 2148 | 2148 |
| 2149 uint8_t data[] = { 0, 1, 2, 3 }; | 2149 uint8_t data[] = { 0, 1, 2, 3 }; |
| 2150 | 2150 |
| 2151 const ExternalUint8ClampedArray& external = | 2151 const ExternalUint8ClampedArray& external = |
| 2152 ExternalUint8ClampedArray::Handle( | 2152 ExternalUint8ClampedArray::Handle( |
| 2153 ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data), NULL, NULL)); | 2153 ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data))); |
| 2154 EXPECT(!external.IsNull()); | 2154 EXPECT(!external.IsNull()); |
| 2155 EXPECT_EQ(4, external.Length()); | 2155 EXPECT_EQ(4, external.Length()); |
| 2156 EXPECT_EQ(0, external.At(0)); | 2156 EXPECT_EQ(0, external.At(0)); |
| 2157 EXPECT_EQ(1, external.At(1)); | 2157 EXPECT_EQ(1, external.At(1)); |
| 2158 EXPECT_EQ(2, external.At(2)); | 2158 EXPECT_EQ(2, external.At(2)); |
| 2159 EXPECT_EQ(3, external.At(3)); | 2159 EXPECT_EQ(3, external.At(3)); |
| 2160 | 2160 |
| 2161 // A zero length copy. | 2161 // A zero length copy. |
| 2162 ByteArray::Copy(external, 0, b_4_5_6_7, 0); | 2162 ByteArray::Copy(external, 0, b_4_5_6_7, 0); |
| 2163 EXPECT_EQ(0, external.At(0)); | 2163 EXPECT_EQ(0, external.At(0)); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2210 Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); | 2210 Uint8Array::Handle(Uint8Array::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
| 2211 EXPECT(!internal.IsNull()); | 2211 EXPECT(!internal.IsNull()); |
| 2212 EXPECT_EQ(4, internal.Length()); | 2212 EXPECT_EQ(4, internal.Length()); |
| 2213 EXPECT_EQ(0, internal.At(0)); | 2213 EXPECT_EQ(0, internal.At(0)); |
| 2214 EXPECT_EQ(1, internal.At(1)); | 2214 EXPECT_EQ(1, internal.At(1)); |
| 2215 EXPECT_EQ(2, internal.At(2)); | 2215 EXPECT_EQ(2, internal.At(2)); |
| 2216 EXPECT_EQ(3, internal.At(3)); | 2216 EXPECT_EQ(3, internal.At(3)); |
| 2217 | 2217 |
| 2218 const ExternalUint8Array& external = | 2218 const ExternalUint8Array& external = |
| 2219 ExternalUint8Array::Handle( | 2219 ExternalUint8Array::Handle( |
| 2220 ExternalUint8Array::New(data, ARRAY_SIZE(data), NULL, NULL)); | 2220 ExternalUint8Array::New(data, ARRAY_SIZE(data))); |
| 2221 EXPECT(!external.IsNull()); | 2221 EXPECT(!external.IsNull()); |
| 2222 EXPECT_EQ(4, external.Length()); | 2222 EXPECT_EQ(4, external.Length()); |
| 2223 EXPECT_EQ(4, external.At(0)); | 2223 EXPECT_EQ(4, external.At(0)); |
| 2224 EXPECT_EQ(5, external.At(1)); | 2224 EXPECT_EQ(5, external.At(1)); |
| 2225 EXPECT_EQ(6, external.At(2)); | 2225 EXPECT_EQ(6, external.At(2)); |
| 2226 EXPECT_EQ(7, external.At(3)); | 2226 EXPECT_EQ(7, external.At(3)); |
| 2227 | 2227 |
| 2228 // A zero length copy. | 2228 // A zero length copy. |
| 2229 ByteArray::Copy(internal, 0, external, 0, 0); | 2229 ByteArray::Copy(internal, 0, external, 0, 0); |
| 2230 EXPECT_EQ(0, internal.At(0)); | 2230 EXPECT_EQ(0, internal.At(0)); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2291 Uint8ClampedArray::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); | 2291 Uint8ClampedArray::New(b_0_1_2_3, ARRAY_SIZE(b_0_1_2_3))); |
| 2292 EXPECT(!internal.IsNull()); | 2292 EXPECT(!internal.IsNull()); |
| 2293 EXPECT_EQ(4, internal.Length()); | 2293 EXPECT_EQ(4, internal.Length()); |
| 2294 EXPECT_EQ(0, internal.At(0)); | 2294 EXPECT_EQ(0, internal.At(0)); |
| 2295 EXPECT_EQ(1, internal.At(1)); | 2295 EXPECT_EQ(1, internal.At(1)); |
| 2296 EXPECT_EQ(2, internal.At(2)); | 2296 EXPECT_EQ(2, internal.At(2)); |
| 2297 EXPECT_EQ(3, internal.At(3)); | 2297 EXPECT_EQ(3, internal.At(3)); |
| 2298 | 2298 |
| 2299 const ExternalUint8ClampedArray& external = | 2299 const ExternalUint8ClampedArray& external = |
| 2300 ExternalUint8ClampedArray::Handle( | 2300 ExternalUint8ClampedArray::Handle( |
| 2301 ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data), NULL, NULL)); | 2301 ExternalUint8ClampedArray::New(data, ARRAY_SIZE(data))); |
| 2302 EXPECT(!external.IsNull()); | 2302 EXPECT(!external.IsNull()); |
| 2303 EXPECT_EQ(4, external.Length()); | 2303 EXPECT_EQ(4, external.Length()); |
| 2304 EXPECT_EQ(4, external.At(0)); | 2304 EXPECT_EQ(4, external.At(0)); |
| 2305 EXPECT_EQ(5, external.At(1)); | 2305 EXPECT_EQ(5, external.At(1)); |
| 2306 EXPECT_EQ(6, external.At(2)); | 2306 EXPECT_EQ(6, external.At(2)); |
| 2307 EXPECT_EQ(7, external.At(3)); | 2307 EXPECT_EQ(7, external.At(3)); |
| 2308 | 2308 |
| 2309 // A zero length copy. | 2309 // A zero length copy. |
| 2310 ByteArray::Copy(internal, 0, external, 0, 0); | 2310 ByteArray::Copy(internal, 0, external, 0, 0); |
| 2311 EXPECT_EQ(0, internal.At(0)); | 2311 EXPECT_EQ(0, internal.At(0)); |
| (...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3586 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); | 3586 EXPECT_NE(test1.SourceFingerprint(), test3.SourceFingerprint()); |
| 3587 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); | 3587 EXPECT_NE(test3.SourceFingerprint(), test4.SourceFingerprint()); |
| 3588 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); | 3588 EXPECT_NE(test4.SourceFingerprint(), test5.SourceFingerprint()); |
| 3589 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); | 3589 EXPECT_NE(test5.SourceFingerprint(), test6.SourceFingerprint()); |
| 3590 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); | 3590 EXPECT_EQ(test6.SourceFingerprint(), test7.SourceFingerprint()); |
| 3591 } | 3591 } |
| 3592 | 3592 |
| 3593 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 3593 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 3594 | 3594 |
| 3595 } // namespace dart | 3595 } // namespace dart |
| OLD | NEW |