chromium/v8/src/asmjs/asm-types.h

// Copyright 2016 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_ASMJS_ASM_TYPES_H_
#define V8_ASMJS_ASM_TYPES_H_

#include <string>

#include "src/base/compiler-specific.h"
#include "src/base/macros.h"
#include "src/zone/zone-containers.h"
#include "src/zone/zone.h"

namespace v8 {
namespace internal {
namespace wasm {

class AsmType;
class AsmFunctionType;
class AsmOverloadedFunctionType;

// List of V(CamelName, string_name, number, parent_types)
#define FOR_EACH_ASM_VALUE_TYPE_LIST(V)

// List of V(CamelName)
#define FOR_EACH_ASM_CALLABLE_TYPE_LIST(V)

class AsmValueType {};

class V8_EXPORT_PRIVATE AsmCallableType : public NON_EXPORTED_BASE(ZoneObject) {};

class V8_EXPORT_PRIVATE AsmFunctionType final : public AsmCallableType {};

class V8_EXPORT_PRIVATE AsmOverloadedFunctionType final
    : public AsmCallableType {};

class V8_EXPORT_PRIVATE AsmType {};

}  // namespace wasm
}  // namespace internal
}  // namespace v8

#endif  // V8_ASMJS_ASM_TYPES_H_