blob: a7e36b4d2fe2b5c3db4f23d4237e7cec79342849 [file]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#pragma once
namespace Js
{
class WebAssembly
{
#ifdef ENABLE_WASM
public:
// WebAssembly spec internal definition for page size
static const uint PageSize = 64 * 1024;
class EntryInfo
{
public:
static FunctionInfo Compile;
static FunctionInfo Validate;
static FunctionInfo Instantiate;
static FunctionInfo InstantiateBound;
static FunctionInfo QueryResponse;
};
static Var EntryCompile(RecyclableObject* function, CallInfo callInfo, ...);
static Var EntryValidate(RecyclableObject* function, CallInfo callInfo, ...);
static Var EntryInstantiate(RecyclableObject* function, CallInfo callInfo, ...);
// The import object is the first argument, then the buffer source
static Var EntryInstantiateBound(RecyclableObject* function, CallInfo callInfo, ...);
static Var EntryQueryResponse(RecyclableObject* function, CallInfo callInfo, ...);
static uint32 ToNonWrappingUint32(Var val, ScriptContext * ctx);
static void CheckSignature(ScriptContext * scriptContext, Wasm::WasmSignature * sig1, Wasm::WasmSignature * sig2);
static uint GetSignatureSize();
private:
static bool IsResponseObject(Var responseObject, ScriptContext* scriptContext);
static Var TryResolveResponse(RecyclableObject* function, Var thisArg, Var responseArg);
#endif
};
}