Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(596)

Side by Side Diff: src/runtime/runtime-test.cc

Issue 2510673002: [wasm] Use more precise types for some WASM objects. (Closed)
Patch Set: Address review comment. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/runtime/runtime-wasm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/runtime/runtime-utils.h" 5 #include "src/runtime/runtime-utils.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/arguments.h" 9 #include "src/arguments.h"
10 #include "src/compiler-dispatcher/optimizing-compile-dispatcher.h" 10 #include "src/compiler-dispatcher/optimizing-compile-dispatcher.h"
(...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 729
730 #undef FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION 730 #undef FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION
731 731
732 732
733 RUNTIME_FUNCTION(Runtime_SpeciesProtector) { 733 RUNTIME_FUNCTION(Runtime_SpeciesProtector) {
734 SealHandleScope shs(isolate); 734 SealHandleScope shs(isolate);
735 DCHECK_EQ(0, args.length()); 735 DCHECK_EQ(0, args.length());
736 return isolate->heap()->ToBoolean(isolate->IsArraySpeciesLookupChainIntact()); 736 return isolate->heap()->ToBoolean(isolate->IsArraySpeciesLookupChainIntact());
737 } 737 }
738 738
739 #define CONVERT_ARG_HANDLE_CHECKED_2(Type, name, index) \
740 CHECK(Type::Is##Type(args[index])); \
741 Handle<Type> name = args.at<Type>(index);
742
739 // Take a compiled wasm module, serialize it and copy the buffer into an array 743 // Take a compiled wasm module, serialize it and copy the buffer into an array
740 // buffer, which is then returned. 744 // buffer, which is then returned.
741 RUNTIME_FUNCTION(Runtime_SerializeWasmModule) { 745 RUNTIME_FUNCTION(Runtime_SerializeWasmModule) {
742 HandleScope shs(isolate); 746 HandleScope shs(isolate);
743 DCHECK(args.length() == 1); 747 DCHECK(args.length() == 1);
744 CONVERT_ARG_HANDLE_CHECKED(JSObject, module_obj, 0); 748 CONVERT_ARG_HANDLE_CHECKED_2(WasmModuleObject, module_obj, 0);
745 749
746 Handle<FixedArray> orig = 750 Handle<WasmCompiledModule> orig = handle(module_obj->get_compiled_module());
747 handle(FixedArray::cast(module_obj->GetInternalField(0)));
748 std::unique_ptr<ScriptData> data = 751 std::unique_ptr<ScriptData> data =
749 WasmCompiledModuleSerializer::SerializeWasmModule(isolate, orig); 752 WasmCompiledModuleSerializer::SerializeWasmModule(isolate, orig);
750 void* buff = isolate->array_buffer_allocator()->Allocate(data->length()); 753 void* buff = isolate->array_buffer_allocator()->Allocate(data->length());
751 Handle<JSArrayBuffer> ret = isolate->factory()->NewJSArrayBuffer(); 754 Handle<JSArrayBuffer> ret = isolate->factory()->NewJSArrayBuffer();
752 JSArrayBuffer::Setup(ret, isolate, false, buff, data->length()); 755 JSArrayBuffer::Setup(ret, isolate, false, buff, data->length());
753 memcpy(buff, data->data(), data->length()); 756 memcpy(buff, data->data(), data->length());
754 return *ret; 757 return *ret;
755 } 758 }
756 759
757 // Take an array buffer and attempt to reconstruct a compiled wasm module. 760 // Take an array buffer and attempt to reconstruct a compiled wasm module.
(...skipping 29 matching lines...) Expand all
787 if (!maybe_compiled_module.ToHandle(&compiled_module)) { 790 if (!maybe_compiled_module.ToHandle(&compiled_module)) {
788 return isolate->heap()->undefined_value(); 791 return isolate->heap()->undefined_value();
789 } 792 }
790 return *WasmModuleObject::New( 793 return *WasmModuleObject::New(
791 isolate, Handle<WasmCompiledModule>::cast(compiled_module)); 794 isolate, Handle<WasmCompiledModule>::cast(compiled_module));
792 } 795 }
793 796
794 RUNTIME_FUNCTION(Runtime_ValidateWasmInstancesChain) { 797 RUNTIME_FUNCTION(Runtime_ValidateWasmInstancesChain) {
795 HandleScope shs(isolate); 798 HandleScope shs(isolate);
796 DCHECK(args.length() == 2); 799 DCHECK(args.length() == 2);
797 CONVERT_ARG_HANDLE_CHECKED(JSObject, module_obj, 0); 800 CONVERT_ARG_HANDLE_CHECKED_2(WasmModuleObject, module_obj, 0);
798 CONVERT_ARG_HANDLE_CHECKED(Smi, instance_count, 1); 801 CONVERT_ARG_HANDLE_CHECKED(Smi, instance_count, 1);
799 wasm::testing::ValidateInstancesChain(isolate, module_obj, 802 wasm::testing::ValidateInstancesChain(isolate, module_obj,
800 instance_count->value()); 803 instance_count->value());
801 return isolate->heap()->ToBoolean(true); 804 return isolate->heap()->ToBoolean(true);
802 } 805 }
803 806
804 RUNTIME_FUNCTION(Runtime_ValidateWasmModuleState) { 807 RUNTIME_FUNCTION(Runtime_ValidateWasmModuleState) {
805 HandleScope shs(isolate); 808 HandleScope shs(isolate);
806 DCHECK(args.length() == 1); 809 DCHECK(args.length() == 1);
807 CONVERT_ARG_HANDLE_CHECKED(JSObject, module_obj, 0); 810 CONVERT_ARG_HANDLE_CHECKED_2(WasmModuleObject, module_obj, 0);
808 wasm::testing::ValidateModuleState(isolate, module_obj); 811 wasm::testing::ValidateModuleState(isolate, module_obj);
809 return isolate->heap()->ToBoolean(true); 812 return isolate->heap()->ToBoolean(true);
810 } 813 }
811 814
812 RUNTIME_FUNCTION(Runtime_ValidateWasmOrphanedInstance) { 815 RUNTIME_FUNCTION(Runtime_ValidateWasmOrphanedInstance) {
813 HandleScope shs(isolate); 816 HandleScope shs(isolate);
814 DCHECK(args.length() == 1); 817 DCHECK(args.length() == 1);
815 CONVERT_ARG_HANDLE_CHECKED(JSObject, instance_obj, 0); 818 CONVERT_ARG_HANDLE_CHECKED_2(WasmInstanceObject, instance, 0);
816 wasm::testing::ValidateOrphanedInstance(isolate, instance_obj); 819 wasm::testing::ValidateOrphanedInstance(isolate, instance);
817 return isolate->heap()->ToBoolean(true); 820 return isolate->heap()->ToBoolean(true);
818 } 821 }
819 822
820 } // namespace internal 823 } // namespace internal
821 } // namespace v8 824 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/runtime/runtime-wasm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698