// Copyright 2015 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. #if !V8_ENABLE_WEBASSEMBLY #error This header should only be included if WebAssembly is enabled. #endif // !V8_ENABLE_WEBASSEMBLY #ifndef V8_WASM_WASM_RESULT_H_ #define V8_WASM_WASM_RESULT_H_ #include <cstdarg> #include <memory> #include "src/base/compiler-specific.h" #include "src/base/macros.h" #include "src/base/platform/platform.h" #include "src/common/globals.h" namespace v8 { namespace internal { namespace wasm { class V8_EXPORT_PRIVATE WasmError { … }; // Either a result of type T, or a WasmError. template <typename T> class Result { … }; // A helper for generating error messages that bubble up to JS exceptions. class V8_EXPORT_PRIVATE ErrorThrower { … }; // Use {nullptr_t} as data value to indicate that this only stores the error, // but no result value (the only valid value is {nullptr}). // [Storing {void} would require template specialization.] VoidResult; } // namespace wasm } // namespace internal } // namespace v8 #endif // V8_WASM_WASM_RESULT_H_