WebAssembly.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. namespace Js
  7. {
  8. class WebAssembly
  9. {
  10. #ifdef ENABLE_WASM
  11. public:
  12. // WebAssembly spec internal definition for page size
  13. static const uint PageSize = 64 * 1024;
  14. class EntryInfo
  15. {
  16. public:
  17. static FunctionInfo Compile;
  18. static FunctionInfo CompileStreaming;
  19. static FunctionInfo Validate;
  20. static FunctionInfo Instantiate;
  21. static FunctionInfo InstantiateStreaming;
  22. static FunctionInfo InstantiateBound;
  23. static FunctionInfo QueryResponse;
  24. };
  25. static Var EntryCompile(RecyclableObject* function, CallInfo callInfo, ...);
  26. static Var EntryCompileStreaming(RecyclableObject* function, CallInfo callInfo, ...);
  27. static Var EntryValidate(RecyclableObject* function, CallInfo callInfo, ...);
  28. static Var EntryInstantiate(RecyclableObject* function, CallInfo callInfo, ...);
  29. static Var EntryInstantiateStreaming(RecyclableObject* function, CallInfo callInfo, ...);
  30. // The import object is the first argument, then the buffer source
  31. static Var EntryInstantiateBound(RecyclableObject* function, CallInfo callInfo, ...);
  32. static Var EntryQueryResponse(RecyclableObject* function, CallInfo callInfo, ...);
  33. static uint32 ToNonWrappingUint32(Var val, ScriptContext * ctx);
  34. static void CheckSignature(ScriptContext * scriptContext, Wasm::WasmSignature * sig1, Wasm::WasmSignature * sig2);
  35. static uint GetSignatureSize();
  36. private:
  37. static bool IsResponseObject(Var responseObject, ScriptContext* scriptContext);
  38. static Var TryResolveResponse(RecyclableObject* function, Var thisArg, Var responseArg);
  39. #endif
  40. };
  41. }