mirror of
https://github.com/nodejs/node.git
synced 2025-05-11 17:55:31 +00:00

Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: https://github.com/nodejs/node/pull/42897 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
#ifndef SRC_NODE_WASM_WEB_API_H_
|
|
#define SRC_NODE_WASM_WEB_API_H_
|
|
|
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#include "base_object-inl.h"
|
|
#include "v8.h"
|
|
|
|
namespace node {
|
|
namespace wasm_web_api {
|
|
|
|
// Wrapper for interacting with a v8::WasmStreaming instance from JavaScript.
|
|
class WasmStreamingObject final : public BaseObject {
|
|
public:
|
|
static v8::Local<v8::Function> Initialize(Environment* env);
|
|
|
|
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
|
|
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
SET_MEMORY_INFO_NAME(WasmStreamingObject)
|
|
SET_SELF_SIZE(WasmStreamingObject)
|
|
|
|
static v8::MaybeLocal<v8::Object> Create(
|
|
Environment* env, std::shared_ptr<v8::WasmStreaming> streaming);
|
|
|
|
private:
|
|
WasmStreamingObject(Environment* env, v8::Local<v8::Object> object)
|
|
: BaseObject(env, object) {
|
|
MakeWeak();
|
|
}
|
|
|
|
~WasmStreamingObject() override {}
|
|
|
|
private:
|
|
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void SetURL(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void Push(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void Finish(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void Abort(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
|
std::shared_ptr<v8::WasmStreaming> streaming_;
|
|
size_t wasm_size_ = 0;
|
|
};
|
|
|
|
// This is a v8::WasmStreamingCallback implementation that must be passed to
|
|
// v8::Isolate::SetWasmStreamingCallback when setting up the isolate in order to
|
|
// enable the WebAssembly.(compile|instantiate)Streaming APIs.
|
|
void StartStreamingCompilation(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
|
} // namespace wasm_web_api
|
|
} // namespace node
|
|
|
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#endif // SRC_NODE_WASM_WEB_API_H_
|