#include "src/wasm/streaming-decoder.h"
#include <optional>
#include "src/logging/counters.h"
#include "src/wasm/decoder.h"
#include "src/wasm/leb-helper.h"
#include "src/wasm/module-decoder.h"
#include "src/wasm/wasm-code-manager.h"
#include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-objects.h"
#include "src/wasm/wasm-result.h"
#define TRACE_STREAMING …
namespace v8::internal::wasm {
class V8_EXPORT_PRIVATE AsyncStreamingDecoder : public StreamingDecoder { … };
void AsyncStreamingDecoder::OnBytesReceived(base::Vector<const uint8_t> bytes) { … }
size_t AsyncStreamingDecoder::DecodingState::ReadBytes(
AsyncStreamingDecoder* streaming, base::Vector<const uint8_t> bytes) { … }
void AsyncStreamingDecoder::Finish(bool can_use_compiled_module) { … }
void AsyncStreamingDecoder::Abort() { … }
namespace {
class CallMoreFunctionsCanBeSerializedCallback
: public CompilationEventCallback { … };
}
void AsyncStreamingDecoder::NotifyNativeModuleCreated(
const std::shared_ptr<NativeModule>& native_module) { … }
class AsyncStreamingDecoder::DecodeVarInt32 : public DecodingState { … };
class AsyncStreamingDecoder::DecodeModuleHeader : public DecodingState { … };
class AsyncStreamingDecoder::DecodeSectionID : public DecodingState { … };
class AsyncStreamingDecoder::DecodeSectionLength : public DecodeVarInt32 { … };
class AsyncStreamingDecoder::DecodeSectionPayload : public DecodingState { … };
class AsyncStreamingDecoder::DecodeNumberOfFunctions : public DecodeVarInt32 { … };
class AsyncStreamingDecoder::DecodeFunctionLength : public DecodeVarInt32 { … };
class AsyncStreamingDecoder::DecodeFunctionBody : public DecodingState { … };
size_t AsyncStreamingDecoder::DecodeVarInt32::ReadBytes(
AsyncStreamingDecoder* streaming, base::Vector<const uint8_t> bytes) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeVarInt32::Next(AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeModuleHeader::Next(
AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeSectionID::Next(AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeSectionLength::NextWithValue(
AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeSectionPayload::Next(
AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeNumberOfFunctions::NextWithValue(
AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeFunctionLength::NextWithValue(
AsyncStreamingDecoder* streaming) { … }
std::unique_ptr<AsyncStreamingDecoder::DecodingState>
AsyncStreamingDecoder::DecodeFunctionBody::Next(
AsyncStreamingDecoder* streaming) { … }
AsyncStreamingDecoder::AsyncStreamingDecoder(
std::unique_ptr<StreamingProcessor> processor)
: … { … }
AsyncStreamingDecoder::SectionBuffer* AsyncStreamingDecoder::CreateNewBuffer(
uint32_t module_offset, uint8_t section_id, size_t length,
base::Vector<const uint8_t> length_bytes) { … }
std::unique_ptr<StreamingDecoder> StreamingDecoder::CreateAsyncStreamingDecoder(
std::unique_ptr<StreamingProcessor> processor) { … }
}
#undef TRACE_STREAMING