diff options
author | Michaël Zasso <targos@protonmail.com> | 2018-09-21 09:14:51 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2018-09-22 18:29:25 +0200 |
commit | 0e7ddbd3d7e9439c67573b854c49cf82c398ae82 (patch) | |
tree | 2afe372acde921cb57ddb3444ff00c5adef8848c /deps/v8/src/wasm/wasm-features.h | |
parent | 13245dc50da4cb7443c39ef6c68d419d5e6336d4 (diff) | |
download | android-node-v8-0e7ddbd3d7e9439c67573b854c49cf82c398ae82.tar.gz android-node-v8-0e7ddbd3d7e9439c67573b854c49cf82c398ae82.tar.bz2 android-node-v8-0e7ddbd3d7e9439c67573b854c49cf82c398ae82.zip |
deps: update V8 to 7.0.276.20
PR-URL: https://github.com/nodejs/node/pull/22754
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/src/wasm/wasm-features.h')
-rw-r--r-- | deps/v8/src/wasm/wasm-features.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/deps/v8/src/wasm/wasm-features.h b/deps/v8/src/wasm/wasm-features.h new file mode 100644 index 0000000000..2c6ab0f85a --- /dev/null +++ b/deps/v8/src/wasm/wasm-features.h @@ -0,0 +1,67 @@ +// Copyright 2018 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_WASM_WASM_FEATURES_H_ +#define V8_WASM_WASM_FEATURES_H_ + +// The feature flags are declared in their own header. +#include "src/base/macros.h" +#include "src/wasm/wasm-feature-flags.h" + +// All features, including features that do not have flags. +#define FOREACH_WASM_FEATURE FOREACH_WASM_FEATURE_FLAG + +namespace v8 { +namespace internal { +class Isolate; +namespace wasm { + +#define COMMA , +#define SPACE +#define DECL_FIELD(feat, desc, val) bool feat = false; +#define JUST_TRUE(feat, desc, val) true +#define JUST_FALSE(feat, desc, val) false +#define DECL_PARAM(feat, desc, val) bool p##feat +#define DO_INIT(feat, desc, val) feat(p##feat) + +// Enabled or detected features. +struct WasmFeatures { + FOREACH_WASM_FEATURE(DECL_FIELD, SPACE) + + constexpr WasmFeatures() = default; + + explicit constexpr WasmFeatures(FOREACH_WASM_FEATURE(DECL_PARAM, COMMA)) + : FOREACH_WASM_FEATURE(DO_INIT, COMMA) {} +}; + +static constexpr WasmFeatures kAllWasmFeatures{ + FOREACH_WASM_FEATURE(JUST_TRUE, COMMA)}; + +static constexpr WasmFeatures kNoWasmFeatures{ + FOREACH_WASM_FEATURE(JUST_FALSE, COMMA)}; + +#undef JUST_TRUE +#undef JUST_FALSE +#undef DECL_FIELD +#undef DECL_PARAM +#undef DO_INIT +#undef COMMA +#undef SPACE + +static constexpr WasmFeatures kAsmjsWasmFeatures = kNoWasmFeatures; + +V8_EXPORT_PRIVATE WasmFeatures WasmFeaturesFromFlags(); + +// Enables features based on both commandline flags and the isolate. +// Precondition: A valid context must be set in {isolate->context()}. +V8_EXPORT_PRIVATE WasmFeatures WasmFeaturesFromIsolate(Isolate* isolate); + +V8_EXPORT_PRIVATE void UnionFeaturesInto(WasmFeatures* dst, + const WasmFeatures& src); + +} // namespace wasm +} // namespace internal +} // namespace v8 + +#endif // V8_WASM_WASM_FEATURES_H_ |