20 const char* api_method_name_for_errors,
21 std::shared_ptr<CompilationResultResolver> resolver)
24 compile_imports_(
std::move(compile_imports)),
26 api_method_name_for_errors_(api_method_name_for_errors),
31 buffer_.emplace_back(bytes.size());
33 std::memcpy(
buffer_.back().data(), bytes.data(), bytes.size());
34 buffer_size_ += bytes.size();
37 void Finish(
bool can_use_compiled_module)
override {
42 std::memcpy(
destination, chunk.data(), chunk.size());
48 if (can_use_compiled_module && deserializing()) {
54 bytes.as_vector(), compile_imports_,
55 base::VectorOf(url()));
59 resolver_->OnCompilationSucceeded(module);
68 std::move(compile_imports_), &thrower,
70 if (thrower.
error()) {
75 resolver_->OnCompilationSucceeded(module);
86 const std::shared_ptr<NativeModule>&)
override {
97 std::shared_ptr<CompilationResultResolver>
resolver_;
99 std::vector<std::vector<uint8_t>>
buffer_;
100 size_t buffer_size_ = 0;
106 const char* api_method_name_for_errors,
107 std::shared_ptr<CompilationResultResolver> resolver) {
108 return std::make_unique<SyncStreamingDecoder>(
109 isolate, enabled, std::move(compile_imports), context,
110 api_method_name_for_errors, std::move(resolver));
V8_INLINE DirectHandle< T > ToHandleChecked() const
V8_INLINE bool is_null() const
V8_WARN_UNUSED_RESULT DirectHandle< JSObject > Reify()
static std::unique_ptr< StreamingDecoder > CreateSyncStreamingDecoder(Isolate *isolate, WasmEnabledFeatures enabled, CompileTimeImports compile_imports, DirectHandle< Context > context, const char *api_method_name_for_errors, std::shared_ptr< CompilationResultResolver > resolver)
std::vector< std::vector< uint8_t > > buffer_
void NotifyCompilationDiscarded() override
const WasmEnabledFeatures enabled_
void NotifyNativeModuleCreated(const std::shared_ptr< NativeModule > &) override
IndirectHandle< Context > context_
CompileTimeImports compile_imports_
void Finish(bool can_use_compiled_module) override
const char * api_method_name_for_errors_
void OnBytesReceived(base::Vector< const uint8_t > bytes) override
std::shared_ptr< CompilationResultResolver > resolver_
SyncStreamingDecoder(Isolate *isolate, WasmEnabledFeatures enabled, CompileTimeImports compile_imports, DirectHandle< Context > context, const char *api_method_name_for_errors, std::shared_ptr< CompilationResultResolver > resolver)
MaybeDirectHandle< WasmModuleObject > SyncCompile(Isolate *isolate, WasmEnabledFeatures enabled, CompileTimeImports compile_imports, ErrorThrower *thrower, base::OwnedVector< const uint8_t > bytes)
base::OwnedVector< uint8_t > buffer_
Handle< Context > context_
v8::Global< v8::Promise::Resolver > resolver_
InstructionOperand destination
MaybeDirectHandle< WasmModuleObject > DeserializeNativeModule(Isolate *isolate, base::Vector< const uint8_t > data, base::Vector< const uint8_t > wire_bytes_vec, const CompileTimeImports &compile_imports, base::Vector< const char > source_url)
WasmEngine * GetWasmEngine()
V8_INLINE IndirectHandle< T > indirect_handle(DirectHandle< T > handle)
#define CHECK_EQ(lhs, rhs)
#define V8_EXPORT_PRIVATE