OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/value-serializer.h" | 5 #include "src/value-serializer.h" |
6 | 6 |
7 #include <type_traits> | 7 #include <type_traits> |
8 | 8 |
9 #include "src/base/logging.h" | 9 #include "src/base/logging.h" |
10 #include "src/conversions.h" | 10 #include "src/conversions.h" |
(...skipping 1392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1403 return data_view; | 1403 return data_view; |
1404 } | 1404 } |
1405 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ | 1405 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
1406 case ArrayBufferViewTag::k##Type##Array: \ | 1406 case ArrayBufferViewTag::k##Type##Array: \ |
1407 external_array_type = kExternal##Type##Array; \ | 1407 external_array_type = kExternal##Type##Array; \ |
1408 element_size = size; \ | 1408 element_size = size; \ |
1409 break; | 1409 break; |
1410 TYPED_ARRAYS(TYPED_ARRAY_CASE) | 1410 TYPED_ARRAYS(TYPED_ARRAY_CASE) |
1411 #undef TYPED_ARRAY_CASE | 1411 #undef TYPED_ARRAY_CASE |
1412 } | 1412 } |
1413 if (byte_offset % element_size != 0 || byte_length % element_size != 0) { | 1413 if (element_size == 0 || byte_offset % element_size != 0 || |
| 1414 byte_length % element_size != 0) { |
1414 return MaybeHandle<JSArrayBufferView>(); | 1415 return MaybeHandle<JSArrayBufferView>(); |
1415 } | 1416 } |
1416 Handle<JSTypedArray> typed_array = isolate_->factory()->NewJSTypedArray( | 1417 Handle<JSTypedArray> typed_array = isolate_->factory()->NewJSTypedArray( |
1417 external_array_type, buffer, byte_offset, byte_length / element_size, | 1418 external_array_type, buffer, byte_offset, byte_length / element_size, |
1418 pretenure_); | 1419 pretenure_); |
1419 AddObjectWithID(id, typed_array); | 1420 AddObjectWithID(id, typed_array); |
1420 return typed_array; | 1421 return typed_array; |
1421 } | 1422 } |
1422 | 1423 |
1423 MaybeHandle<JSObject> ValueDeserializer::ReadHostObject() { | 1424 MaybeHandle<JSObject> ValueDeserializer::ReadHostObject() { |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1724 if (stack.size() != 1) { | 1725 if (stack.size() != 1) { |
1725 isolate_->Throw(*isolate_->factory()->NewError( | 1726 isolate_->Throw(*isolate_->factory()->NewError( |
1726 MessageTemplate::kDataCloneDeserializationError)); | 1727 MessageTemplate::kDataCloneDeserializationError)); |
1727 return MaybeHandle<Object>(); | 1728 return MaybeHandle<Object>(); |
1728 } | 1729 } |
1729 return scope.CloseAndEscape(stack[0]); | 1730 return scope.CloseAndEscape(stack[0]); |
1730 } | 1731 } |
1731 | 1732 |
1732 } // namespace internal | 1733 } // namespace internal |
1733 } // namespace v8 | 1734 } // namespace v8 |
OLD | NEW |