OLD | NEW |
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 #include "src/utils.h" |
7 | 7 |
8 #include "src/debug/debug-interface.h" | 8 #include "src/debug/debug-interface.h" |
9 #include "src/wasm/module-decoder.h" | 9 #include "src/wasm/module-decoder.h" |
10 #include "src/wasm/wasm-module.h" | 10 #include "src/wasm/wasm-module.h" |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, | 305 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, |
306 JSFunction::cast(object)->code()->kind()); | 306 JSFunction::cast(object)->code()->kind()); |
307 // TODO(titzer): brand check for WasmExportedFunction. | 307 // TODO(titzer): brand check for WasmExportedFunction. |
308 return reinterpret_cast<WasmExportedFunction*>(object); | 308 return reinterpret_cast<WasmExportedFunction*>(object); |
309 } | 309 } |
310 | 310 |
311 Handle<WasmExportedFunction> WasmExportedFunction::New( | 311 Handle<WasmExportedFunction> WasmExportedFunction::New( |
312 Isolate* isolate, Handle<WasmInstanceObject> instance, | 312 Isolate* isolate, Handle<WasmInstanceObject> instance, |
313 MaybeHandle<String> maybe_name, int func_index, int arity, | 313 MaybeHandle<String> maybe_name, int func_index, int arity, |
314 Handle<Code> export_wrapper) { | 314 Handle<Code> export_wrapper) { |
315 ScopedVector<char> buffer(16); | |
316 int length = SNPrintF(buffer, "%d", func_index); | |
317 Handle<String> name; | 315 Handle<String> name; |
318 if (maybe_name.is_null()) { | 316 if (maybe_name.is_null()) { |
| 317 EmbeddedVector<char, 16> buffer; |
| 318 int length = SNPrintF(buffer, "%d", func_index); |
319 name = isolate->factory() | 319 name = isolate->factory() |
320 ->NewStringFromAscii( | 320 ->NewStringFromAscii( |
321 Vector<const char>::cast(buffer.SubVector(0, length))) | 321 Vector<const char>::cast(buffer.SubVector(0, length))) |
322 .ToHandleChecked(); | 322 .ToHandleChecked(); |
323 } else { | 323 } else { |
324 name = maybe_name.ToHandleChecked(); | 324 name = maybe_name.ToHandleChecked(); |
325 } | 325 } |
326 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, export_wrapper->kind()); | 326 DCHECK_EQ(Code::JS_TO_WASM_FUNCTION, export_wrapper->kind()); |
327 Handle<SharedFunctionInfo> shared = | 327 Handle<SharedFunctionInfo> shared = |
328 isolate->factory()->NewSharedFunctionInfo(name, export_wrapper, false); | 328 isolate->factory()->NewSharedFunctionInfo(name, export_wrapper, false); |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 !array->get(kPreviousInstanceWrapper)->IsFixedArray()) | 747 !array->get(kPreviousInstanceWrapper)->IsFixedArray()) |
748 return false; | 748 return false; |
749 return true; | 749 return true; |
750 } | 750 } |
751 | 751 |
752 void WasmInstanceWrapper::set_instance_object(Handle<JSObject> instance, | 752 void WasmInstanceWrapper::set_instance_object(Handle<JSObject> instance, |
753 Isolate* isolate) { | 753 Isolate* isolate) { |
754 Handle<WeakCell> cell = isolate->factory()->NewWeakCell(instance); | 754 Handle<WeakCell> cell = isolate->factory()->NewWeakCell(instance); |
755 set(kWrapperInstanceObject, *cell); | 755 set(kWrapperInstanceObject, *cell); |
756 } | 756 } |
OLD | NEW |