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

Side by Side Diff: src/wasm/wasm-module.cc

Issue 2624853002: [wasm] JS API tests for `WebAssembly.validate` (Closed)
Patch Set: addressed feedback Created 3 years, 11 months 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 | « src/wasm/module-decoder.cc ('k') | test/mjsunit/wasm/js-api.js » ('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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 <memory> 5 #include <memory>
6 6
7 #include "src/assembler-inl.h" 7 #include "src/assembler-inl.h"
8 #include "src/base/adapters.h" 8 #include "src/base/adapters.h"
9 #include "src/base/atomic-utils.h" 9 #include "src/base/atomic-utils.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 1640 matching lines...) Expand 10 before | Expand all | Expand 10 after
1651 } 1651 }
1652 int sig_index = table.map.FindOrInsert(function->sig); 1652 int sig_index = table.map.FindOrInsert(function->sig);
1653 table_instance.signature_table->set(i, Smi::FromInt(sig_index)); 1653 table_instance.signature_table->set(i, Smi::FromInt(sig_index));
1654 table_instance.function_table->set(i, *UnwrapImportWrapper(val)); 1654 table_instance.function_table->set(i, *UnwrapImportWrapper(val));
1655 } 1655 }
1656 1656
1657 num_imported_tables++; 1657 num_imported_tables++;
1658 break; 1658 break;
1659 } 1659 }
1660 case kExternalMemory: { 1660 case kExternalMemory: {
1661 // Validation should have failed if more than one memory object was
1662 // provided.
1663 DCHECK(!instance->has_memory_object());
1661 if (!WasmJs::IsWasmMemoryObject(isolate_, value)) { 1664 if (!WasmJs::IsWasmMemoryObject(isolate_, value)) {
1662 ReportLinkError("memory import must be a WebAssembly.Memory object", 1665 ReportLinkError("memory import must be a WebAssembly.Memory object",
1663 index, module_name, import_name); 1666 index, module_name, import_name);
1664 return -1; 1667 return -1;
1665 } 1668 }
1666 auto memory = Handle<WasmMemoryObject>::cast(value); 1669 auto memory = Handle<WasmMemoryObject>::cast(value);
1667 DCHECK(WasmJs::IsWasmMemoryObject(isolate_, memory)); 1670 DCHECK(WasmJs::IsWasmMemoryObject(isolate_, memory));
1668 instance->set_memory_object(*memory); 1671 instance->set_memory_object(*memory);
1669 memory_ = Handle<JSArrayBuffer>(memory->buffer(), isolate_); 1672 memory_ = Handle<JSArrayBuffer>(memory->buffer(), isolate_);
1670 break; 1673 break;
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
2320 CHECK(!compiled_module->has_weak_owning_instance()); 2323 CHECK(!compiled_module->has_weak_owning_instance());
2321 } 2324 }
2322 2325
2323 void testing::ValidateOrphanedInstance(Isolate* isolate, 2326 void testing::ValidateOrphanedInstance(Isolate* isolate,
2324 Handle<WasmInstanceObject> instance) { 2327 Handle<WasmInstanceObject> instance) {
2325 DisallowHeapAllocation no_gc; 2328 DisallowHeapAllocation no_gc;
2326 WasmCompiledModule* compiled_module = instance->compiled_module(); 2329 WasmCompiledModule* compiled_module = instance->compiled_module();
2327 CHECK(compiled_module->has_weak_wasm_module()); 2330 CHECK(compiled_module->has_weak_wasm_module());
2328 CHECK(compiled_module->ptr_to_weak_wasm_module()->cleared()); 2331 CHECK(compiled_module->ptr_to_weak_wasm_module()->cleared());
2329 } 2332 }
OLDNEW
« no previous file with comments | « src/wasm/module-decoder.cc ('k') | test/mjsunit/wasm/js-api.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698