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

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

Issue 2808403002: [wasm] Bumped DEPS for public js api tests, fixed failures. (Closed)
Patch Set: [wasm] Bumped DEPS for public js api tests, fixed failures. Created 3 years, 8 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 | « DEPS ('k') | test/mjsunit/wasm/errors.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 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after
1448 ErrorThrower* thrower_; 1448 ErrorThrower* thrower_;
1449 Handle<WasmModuleObject> module_object_; 1449 Handle<WasmModuleObject> module_object_;
1450 Handle<JSReceiver> ffi_; // TODO(titzer): Use MaybeHandle 1450 Handle<JSReceiver> ffi_; // TODO(titzer): Use MaybeHandle
1451 Handle<JSArrayBuffer> memory_; // TODO(titzer): Use MaybeHandle 1451 Handle<JSArrayBuffer> memory_; // TODO(titzer): Use MaybeHandle
1452 Handle<JSArrayBuffer> globals_; 1452 Handle<JSArrayBuffer> globals_;
1453 Handle<WasmCompiledModule> compiled_module_; 1453 Handle<WasmCompiledModule> compiled_module_;
1454 std::vector<TableInstance> table_instances_; 1454 std::vector<TableInstance> table_instances_;
1455 std::vector<Handle<JSFunction>> js_wrappers_; 1455 std::vector<Handle<JSFunction>> js_wrappers_;
1456 JSToWasmWrapperCache js_to_wasm_cache_; 1456 JSToWasmWrapperCache js_to_wasm_cache_;
1457 1457
1458 // Helper routines to print out errors with imports. 1458 // Helper routines to print out errors with imports.
1459 void ReportLinkError(const char* error, uint32_t index, 1459 #define ERROR_THROWER_WITH_MESSAGE(TYPE) \
1460 Handle<String> module_name, Handle<String> import_name) { 1460 void Report##TYPE(const char* error, uint32_t index, \
1461 thrower_->LinkError( 1461 Handle<String> module_name, Handle<String> import_name) { \
1462 "Import #%d module=\"%.*s\" function=\"%.*s\" error: %s", index, 1462 thrower_->TYPE("Import #%d module=\"%.*s\" function=\"%.*s\" error: %s", \
1463 module_name->length(), module_name->ToCString().get(), 1463 index, module_name->length(), \
1464 import_name->length(), import_name->ToCString().get(), error); 1464 module_name->ToCString().get(), import_name->length(), \
1465 import_name->ToCString().get(), error); \
1466 } \
1467 \
1468 MaybeHandle<Object> Report##TYPE(const char* error, uint32_t index, \
1469 Handle<String> module_name) { \
1470 thrower_->TYPE("Import #%d module=\"%.*s\" error: %s", index, \
1471 module_name->length(), module_name->ToCString().get(), \
1472 error); \
1473 return MaybeHandle<Object>(); \
1465 } 1474 }
1466 1475
1467 MaybeHandle<Object> ReportLinkError(const char* error, uint32_t index, 1476 ERROR_THROWER_WITH_MESSAGE(LinkError)
1468 Handle<String> module_name) { 1477 ERROR_THROWER_WITH_MESSAGE(TypeError)
1469 thrower_->LinkError("Import #%d module=\"%.*s\" error: %s", index,
1470 module_name->length(), module_name->ToCString().get(),
1471 error);
1472 return MaybeHandle<Object>();
1473 }
1474 1478
1475 // Look up an import value in the {ffi_} object. 1479 // Look up an import value in the {ffi_} object.
1476 MaybeHandle<Object> LookupImport(uint32_t index, Handle<String> module_name, 1480 MaybeHandle<Object> LookupImport(uint32_t index, Handle<String> module_name,
1477 Handle<String> import_name) { 1481 Handle<String> import_name) {
1478 // We pre-validated in the js-api layer that the ffi object is present, and 1482 // We pre-validated in the js-api layer that the ffi object is present, and
1479 // a JSObject, if the module has imports. 1483 // a JSObject, if the module has imports.
1480 DCHECK(!ffi_.is_null()); 1484 DCHECK(!ffi_.is_null());
1481 1485
1482 // Look up the module first. 1486 // Look up the module first.
1483 MaybeHandle<Object> result = 1487 MaybeHandle<Object> result =
1484 Object::GetPropertyOrElement(ffi_, module_name); 1488 Object::GetPropertyOrElement(ffi_, module_name);
1485 if (result.is_null()) { 1489 if (result.is_null()) {
1486 return ReportLinkError("module not found", index, module_name); 1490 return ReportTypeError("module not found", index, module_name);
1487 } 1491 }
1488 1492
1489 Handle<Object> module = result.ToHandleChecked(); 1493 Handle<Object> module = result.ToHandleChecked();
1490 1494
1491 // Look up the value in the module. 1495 // Look up the value in the module.
1492 if (!module->IsJSReceiver()) { 1496 if (!module->IsJSReceiver()) {
1493 return ReportLinkError("module is not an object or function", index, 1497 return ReportTypeError("module is not an object or function", index,
1494 module_name); 1498 module_name);
1495 } 1499 }
1496 1500
1497 result = Object::GetPropertyOrElement(module, import_name); 1501 result = Object::GetPropertyOrElement(module, import_name);
1498 if (result.is_null()) { 1502 if (result.is_null()) {
1499 ReportLinkError("import not found", index, module_name, import_name); 1503 ReportLinkError("import not found", index, module_name, import_name);
1500 return MaybeHandle<JSFunction>(); 1504 return MaybeHandle<JSFunction>();
1501 } 1505 }
1502 1506
1503 return result; 1507 return result;
(...skipping 1799 matching lines...) Expand 10 before | Expand all | Expand 10 after
3303 callee_compiled->instruction_start()); 3307 callee_compiled->instruction_start());
3304 } 3308 }
3305 DCHECK_EQ(non_compiled_functions.size(), idx); 3309 DCHECK_EQ(non_compiled_functions.size(), idx);
3306 } 3310 }
3307 3311
3308 Code* ret = 3312 Code* ret =
3309 Code::cast(compiled_module->code_table()->get(func_to_return_idx)); 3313 Code::cast(compiled_module->code_table()->get(func_to_return_idx));
3310 DCHECK_EQ(Code::WASM_FUNCTION, ret->kind()); 3314 DCHECK_EQ(Code::WASM_FUNCTION, ret->kind());
3311 return handle(ret, isolate); 3315 return handle(ret, isolate);
3312 } 3316 }
OLDNEW
« no previous file with comments | « DEPS ('k') | test/mjsunit/wasm/errors.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698