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

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

Issue 2551323003: [wasm] Names of exported functions should be the stringified function index. (Closed)
Patch Set: Created 4 years 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/wasm-objects.h ('k') | test/cctest/wasm/wasm-run-utils.h » ('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 "src/wasm/wasm-objects.h" 5 #include "src/wasm/wasm-objects.h"
6 #include "src/utils.h"
6 7
7 #include "src/wasm/module-decoder.h" 8 #include "src/wasm/module-decoder.h"
8 #include "src/wasm/wasm-module.h" 9 #include "src/wasm/wasm-module.h"
9 #include "src/wasm/wasm-text.h" 10 #include "src/wasm/wasm-text.h"
10 11
11 #define TRACE(...) \ 12 #define TRACE(...) \
12 do { \ 13 do { \
13 if (FLAG_trace_wasm_instances) PrintF(__VA_ARGS__); \ 14 if (FLAG_trace_wasm_instances) PrintF(__VA_ARGS__); \
14 } while (false) 15 } while (false)
15 16
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 301
301 WasmExportedFunction* WasmExportedFunction::cast(Object* object) { 302 WasmExportedFunction* WasmExportedFunction::cast(Object* object) {
302 DCHECK(object && object->IsJSFunction()); 303 DCHECK(object && object->IsJSFunction());
303 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, 304 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION,
304 JSFunction::cast(object)->code()->kind()); 305 JSFunction::cast(object)->code()->kind());
305 // TODO(titzer): brand check for WasmExportedFunction. 306 // TODO(titzer): brand check for WasmExportedFunction.
306 return reinterpret_cast<WasmExportedFunction*>(object); 307 return reinterpret_cast<WasmExportedFunction*>(object);
307 } 308 }
308 309
309 Handle<WasmExportedFunction> WasmExportedFunction::New( 310 Handle<WasmExportedFunction> WasmExportedFunction::New(
310 Isolate* isolate, Handle<WasmInstanceObject> instance, Handle<String> name, 311 Isolate* isolate, Handle<WasmInstanceObject> instance,
311 Handle<Code> export_wrapper, int arity, int func_index) { 312 MaybeHandle<String> maybe_name, int func_index, int arity,
313 Handle<Code> export_wrapper) {
314 ScopedVector<char> buffer(16);
bradnelson 2016/12/06 15:28:31 But you can have up to 19 digits in 63-bit signed
315 int length = SNPrintF(buffer, "%d", func_index);
316 Handle<String> name;
317 if (maybe_name.is_null()) {
318 name = isolate->factory()
319 ->NewStringFromAscii(
320 Vector<const char>::cast(buffer.SubVector(0, length)))
321 .ToHandleChecked();
322 } else {
323 name = maybe_name.ToHandleChecked();
324 }
312 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, export_wrapper->kind()); 325 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, export_wrapper->kind());
313 Handle<SharedFunctionInfo> shared = 326 Handle<SharedFunctionInfo> shared =
314 isolate->factory()->NewSharedFunctionInfo(name, export_wrapper, false); 327 isolate->factory()->NewSharedFunctionInfo(name, export_wrapper, false);
315 shared->set_length(arity); 328 shared->set_length(arity);
316 shared->set_internal_formal_parameter_count(arity); 329 shared->set_internal_formal_parameter_count(arity);
317 Handle<JSFunction> function = isolate->factory()->NewFunction( 330 Handle<JSFunction> function = isolate->factory()->NewFunction(
318 isolate->wasm_function_map(), name, export_wrapper); 331 isolate->wasm_function_map(), name, export_wrapper);
319 function->set_shared(*shared); 332 function->set_shared(*shared);
320 333
321 function->SetInternalField(kInstance, *instance); 334 function->SetInternalField(kInstance, *instance);
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 !array->get(kPreviousInstanceWrapper)->IsFixedArray()) 597 !array->get(kPreviousInstanceWrapper)->IsFixedArray())
585 return false; 598 return false;
586 return true; 599 return true;
587 } 600 }
588 601
589 void WasmInstanceWrapper::set_instance_object(Handle<JSObject> instance, 602 void WasmInstanceWrapper::set_instance_object(Handle<JSObject> instance,
590 Isolate* isolate) { 603 Isolate* isolate) {
591 Handle<WeakCell> cell = isolate->factory()->NewWeakCell(instance); 604 Handle<WeakCell> cell = isolate->factory()->NewWeakCell(instance);
592 set(kWrapperInstanceObject, *cell); 605 set(kWrapperInstanceObject, *cell);
593 } 606 }
OLDNEW
« no previous file with comments | « src/wasm/wasm-objects.h ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698