diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-06-06 10:28:14 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-06-07 10:33:31 +0200 |
commit | 3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09 (patch) | |
tree | 9dee56e142638b34f1eccbd0ad88c3bce5377c29 /deps/v8/src/globals.h | |
parent | 91a1bbe3055a660194ca4d403795aa0c03e9d056 (diff) | |
download | android-node-v8-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.tar.gz android-node-v8-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.tar.bz2 android-node-v8-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.zip |
deps: update V8 to 5.9.211.32
PR-URL: https://github.com/nodejs/node/pull/13263
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/v8/src/globals.h')
-rw-r--r-- | deps/v8/src/globals.h | 123 |
1 files changed, 100 insertions, 23 deletions
diff --git a/deps/v8/src/globals.h b/deps/v8/src/globals.h index a90e624ec5..3b4c2a602e 100644 --- a/deps/v8/src/globals.h +++ b/deps/v8/src/globals.h @@ -118,6 +118,7 @@ namespace internal { #define V8_DOUBLE_FIELDS_UNBOXING 0 #endif +#define V8_CONCURRENT_MARKING 0 typedef uint8_t byte; typedef byte* Address; @@ -671,13 +672,6 @@ enum InlineCacheState { GENERIC, }; -enum CacheHolderFlag { - kCacheOnPrototype, - kCacheOnPrototypeReceiverIsDictionary, - kCacheOnPrototypeReceiverIsPrimitive, - kCacheOnReceiver -}; - enum WhereToStart { kStartAtReceiver, kStartAtPrototype }; // The Store Buffer (GC). @@ -785,6 +779,7 @@ enum CpuFeature { MIPSr1, MIPSr2, MIPSr6, + MIPS_SIMD, // MSA instructions // ARM64 ALWAYS_ALIGN_CSP, // PPC @@ -1107,7 +1102,11 @@ enum FunctionKind : uint16_t { kClassConstructor = kBaseConstructor | kDerivedConstructor | kDefaultConstructor, kAsyncArrowFunction = kArrowFunction | kAsyncFunction, - kAsyncConciseMethod = kAsyncFunction | kConciseMethod + kAsyncConciseMethod = kAsyncFunction | kConciseMethod, + + // https://tc39.github.io/proposal-async-iteration/ + kAsyncConciseGeneratorMethod = kAsyncFunction | kConciseGeneratorMethod, + kAsyncGeneratorFunction = kAsyncFunction | kGeneratorFunction }; inline bool IsValidFunctionKind(FunctionKind kind) { @@ -1126,29 +1125,37 @@ inline bool IsValidFunctionKind(FunctionKind kind) { kind == FunctionKind::kDerivedConstructor || kind == FunctionKind::kAsyncFunction || kind == FunctionKind::kAsyncArrowFunction || - kind == FunctionKind::kAsyncConciseMethod; + kind == FunctionKind::kAsyncConciseMethod || + kind == FunctionKind::kAsyncConciseGeneratorMethod || + kind == FunctionKind::kAsyncGeneratorFunction; } inline bool IsArrowFunction(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kArrowFunction; + return (kind & FunctionKind::kArrowFunction) != 0; } inline bool IsGeneratorFunction(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kGeneratorFunction; + return (kind & FunctionKind::kGeneratorFunction) != 0; } inline bool IsModule(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kModule; + return (kind & FunctionKind::kModule) != 0; } inline bool IsAsyncFunction(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kAsyncFunction; + return (kind & FunctionKind::kAsyncFunction) != 0; +} + +inline bool IsAsyncGeneratorFunction(FunctionKind kind) { + DCHECK(IsValidFunctionKind(kind)); + const FunctionKind kMask = FunctionKind::kAsyncGeneratorFunction; + return (kind & kMask) == kMask; } inline bool IsResumableFunction(FunctionKind kind) { @@ -1157,49 +1164,48 @@ inline bool IsResumableFunction(FunctionKind kind) { inline bool IsConciseMethod(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kConciseMethod; + return (kind & FunctionKind::kConciseMethod) != 0; } inline bool IsGetterFunction(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kGetterFunction; + return (kind & FunctionKind::kGetterFunction) != 0; } inline bool IsSetterFunction(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kSetterFunction; + return (kind & FunctionKind::kSetterFunction) != 0; } inline bool IsAccessorFunction(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kAccessorFunction; + return (kind & FunctionKind::kAccessorFunction) != 0; } inline bool IsDefaultConstructor(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kDefaultConstructor; + return (kind & FunctionKind::kDefaultConstructor) != 0; } inline bool IsBaseConstructor(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kBaseConstructor; + return (kind & FunctionKind::kBaseConstructor) != 0; } inline bool IsDerivedConstructor(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kDerivedConstructor; + return (kind & FunctionKind::kDerivedConstructor) != 0; } inline bool IsClassConstructor(FunctionKind kind) { DCHECK(IsValidFunctionKind(kind)); - return kind & FunctionKind::kClassConstructor; + return (kind & FunctionKind::kClassConstructor) != 0; } - -inline bool IsConstructable(FunctionKind kind, LanguageMode mode) { +inline bool IsConstructable(FunctionKind kind) { if (IsAccessorFunction(kind)) return false; if (IsConciseMethod(kind)) return false; if (IsArrowFunction(kind)) return false; @@ -1341,6 +1347,77 @@ enum ExternalArrayType { kExternalUint8ClampedArray, }; +// Static information used by SuspendGenerator bytecode & GeneratorStore, in +// order to determine where to store bytecode offset in generator. +enum class SuspendFlags { + kYield = 0, + kYieldStar = 1, + kAwait = 2, + kSuspendTypeMask = 3, + + kGenerator = 0 << 2, + kAsyncGenerator = 1 << 2, + kGeneratorTypeMask = 1 << 2, + + kBitWidth = 3, + + // Aliases + kGeneratorYield = kGenerator | kYield, + kGeneratorYieldStar = kGenerator | kYieldStar, + kGeneratorAwait = kGenerator | kAwait, + kAsyncGeneratorYield = kAsyncGenerator | kYield, + kAsyncGeneratorYieldStar = kAsyncGenerator | kYieldStar, + kAsyncGeneratorAwait = kAsyncGenerator | kAwait +}; + +inline constexpr SuspendFlags operator&(SuspendFlags lhs, SuspendFlags rhs) { + return static_cast<SuspendFlags>(static_cast<uint8_t>(lhs) & + static_cast<uint8_t>(rhs)); +} + +inline constexpr SuspendFlags operator|(SuspendFlags lhs, SuspendFlags rhs) { + return static_cast<SuspendFlags>(static_cast<uint8_t>(lhs) | + static_cast<uint8_t>(rhs)); +} + +inline SuspendFlags& operator|=(SuspendFlags& lhs, SuspendFlags rhs) { + lhs = lhs | rhs; + return lhs; +} + +inline SuspendFlags operator~(SuspendFlags lhs) { + return static_cast<SuspendFlags>(~static_cast<uint8_t>(lhs)); +} + +inline const char* SuspendTypeFor(SuspendFlags flags) { + switch (flags & SuspendFlags::kSuspendTypeMask) { + case SuspendFlags::kYield: + return "yield"; + case SuspendFlags::kYieldStar: + return "yield*"; + case SuspendFlags::kAwait: + return "await"; + default: + break; + } + UNREACHABLE(); + return ""; +} + +struct AssemblerDebugInfo { + AssemblerDebugInfo(const char* name, const char* file, int line) + : name(name), file(file), line(line) {} + const char* name; + const char* file; + int line; +}; + +inline std::ostream& operator<<(std::ostream& os, + const AssemblerDebugInfo& info) { + os << "(" << info.name << ":" << info.file << ":" << info.line << ")"; + return os; +} + } // namespace internal } // namespace v8 |