Changeset 273107 in webkit for trunk/Source/JavaScriptCore/parser/VariableEnvironment.h
- Timestamp:
- Feb 18, 2021, 3:48:28 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/VariableEnvironment.h
r272883 r273107 111 111 ALWAYS_INLINE bool isGetter() const { return m_bits & IsGetter; } 112 112 ALWAYS_INLINE bool isField() const { return !isPrivateMethodOrAcessor(); } 113 ALWAYS_INLINE bool isStatic() const { return m_bits & IsStatic; } 113 114 114 115 bool isPrivateMethodOrAcessor() const { return isMethod() || isSetter() || isGetter(); } … … 131 132 IsGetter = 1 << 3, 132 133 IsSetter = 1 << 4, 134 IsStatic = 1 << 5, 133 135 }; 134 136 … … 197 199 198 200 bool isEverythingCaptured() const { return m_isEverythingCaptured; } 199 bool isEmpty() const { return !m_map.size() ; }201 bool isEmpty() const { return !m_map.size() && !privateNamesSize(); } 200 202 201 203 using PrivateNamesRange = WTF::IteratorRange<PrivateNameEnvironment::iterator>; … … 205 207 206 208 bool declarePrivateMethod(const Identifier& identifier) { return declarePrivateMethod(identifier.impl()); } 207 bool declarePrivateMethod(const RefPtr<UniquedStringImpl>& identifier); 208 209 bool declarePrivateAccessor(const RefPtr<UniquedStringImpl>&, PrivateNameEntry::Traits); 210 211 bool declarePrivateSetter(const Identifier& identifier) { return declarePrivateSetter(identifier.impl()); } 212 bool declarePrivateSetter(const RefPtr<UniquedStringImpl>& identifier); 213 214 bool declarePrivateGetter(const Identifier& identifier) { return declarePrivateGetter(identifier.impl()); } 215 bool declarePrivateGetter(const RefPtr<UniquedStringImpl>& identifier); 209 bool declarePrivateMethod(const RefPtr<UniquedStringImpl>& identifier, PrivateNameEntry::Traits addionalTraits = PrivateNameEntry::Traits::None); 210 211 enum class PrivateDeclarationResult { 212 Success, 213 DuplicatedName, 214 InvalidStaticNonStatic 215 }; 216 217 PrivateDeclarationResult declarePrivateAccessor(const RefPtr<UniquedStringImpl>&, PrivateNameEntry accessorTraits); 218 219 bool declareStaticPrivateMethod(const Identifier& identifier) 220 { 221 return declarePrivateMethod(identifier.impl(), static_cast<PrivateNameEntry::Traits>(PrivateNameEntry::Traits::IsMethod | PrivateNameEntry::Traits::IsStatic)); 222 } 223 224 PrivateDeclarationResult declarePrivateSetter(const Identifier& identifier) { return declarePrivateSetter(identifier.impl()); } 225 PrivateDeclarationResult declareStaticPrivateSetter(const Identifier& identifier) { return declarePrivateSetter(identifier.impl(), PrivateNameEntry::Traits::IsStatic); } 226 PrivateDeclarationResult declarePrivateSetter(const RefPtr<UniquedStringImpl>& identifier, PrivateNameEntry::Traits modifierTraits = PrivateNameEntry::Traits::None); 227 228 PrivateDeclarationResult declarePrivateGetter(const Identifier& identifier) { return declarePrivateGetter(identifier.impl()); } 229 PrivateDeclarationResult declareStaticPrivateGetter(const Identifier& identifier) { return declarePrivateGetter(identifier.impl(), PrivateNameEntry::Traits::IsStatic); } 230 PrivateDeclarationResult declarePrivateGetter(const RefPtr<UniquedStringImpl>& identifier, PrivateNameEntry::Traits modifierTraits = PrivateNameEntry::Traits::None); 216 231 217 232 Map::AddResult declarePrivateField(const RefPtr<UniquedStringImpl>& identifier) … … 254 269 } 255 270 256 ALWAYS_INLINE bool has PrivateMethodOrAccessor() const271 ALWAYS_INLINE bool hasStaticPrivateMethodOrAccessor() const 257 272 { 258 273 if (!m_rareData) … … 260 275 261 276 for (auto entry : privateNames()) { 262 if (entry.value.isPrivateMethodOrAcessor() )277 if (entry.value.isPrivateMethodOrAcessor() && entry.value.isStatic()) 263 278 return true; 264 279 } 265 280 281 return false; 282 } 283 284 ALWAYS_INLINE bool hasInstancePrivateMethodOrAccessor() const 285 { 286 if (!m_rareData) 287 return false; 288 289 for (auto entry : privateNames()) { 290 if (entry.value.isPrivateMethodOrAcessor() && !entry.value.isStatic()) 291 return true; 292 } 293 266 294 return false; 267 295 }
Note:
See TracChangeset
for help on using the changeset viewer.