1f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Copyright 2016 the V8 project authors. All rights reserved. 2f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// found in the LICENSE file. 4f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 5f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#ifndef V8_ASMJS_ASM_JS_H_ 6f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#define V8_ASMJS_ASM_JS_H_ 7f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 8f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#include "src/globals.h" 9f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 10f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochnamespace v8 { 11f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochnamespace internal { 12f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 13f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochclass JSArrayBuffer; 14f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochclass ParseInfo; 15f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 16f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Interface to compile and instantiate for asmjs. 17f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochclass AsmJs { 18f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch public: 19f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch static MaybeHandle<FixedArray> ConvertAsmToWasm(ParseInfo* info); 20f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch static bool IsStdlibValid(Isolate* isolate, Handle<FixedArray> wasm_data, 21f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch Handle<JSReceiver> stdlib); 22f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch static MaybeHandle<Object> InstantiateAsmWasm(Isolate* isolate, 23f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch Handle<FixedArray> wasm_data, 24f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch Handle<JSArrayBuffer> memory, 25f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch Handle<JSReceiver> foreign); 26f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch}; 27f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 28f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch} // namespace internal 29f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch} // namespace v8 30f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#endif 31