]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - parser/ParserArena.h
JavaScriptCore-7600.1.4.17.5.tar.gz
[apple/javascriptcore.git] / parser / ParserArena.h
index 45d4b158ee1c5b58b36d6e75cc3bf1c162a5a1f0..d8bc2cffa427314564fd1b0415c82475ce52b235 100644 (file)
@@ -26,7 +26,9 @@
 #ifndef ParserArena_h
 #define ParserArena_h
 
+#include "CommonIdentifiers.h"
 #include "Identifier.h"
+#include <array>
 #include <wtf/SegmentedVector.h>
 
 namespace JSC {
@@ -64,13 +66,15 @@ namespace JSC {
 
     private:
         IdentifierVector m_identifiers;
-        FixedArray<Identifier*, MaximumCachableCharacter> m_shortIdentifiers;
-        FixedArray<Identifier*, MaximumCachableCharacter> m_recentIdentifiers;
+        std::array<Identifier*, MaximumCachableCharacter> m_shortIdentifiers;
+        std::array<Identifier*, MaximumCachableCharacter> m_recentIdentifiers;
     };
 
     template <typename T>
     ALWAYS_INLINE const Identifier& IdentifierArena::makeIdentifier(VM* vm, const T* characters, size_t length)
     {
+        if (!length)
+            return vm->propertyNames->emptyIdentifier;
         if (characters[0] >= MaximumCachableCharacter) {
             m_identifiers.append(Identifier(vm, characters, length));
             return m_identifiers.last();
@@ -92,6 +96,8 @@ namespace JSC {
 
     ALWAYS_INLINE const Identifier& IdentifierArena::makeIdentifierLCharFromUChar(VM* vm, const UChar* characters, size_t length)
     {
+        if (!length)
+            return vm->propertyNames->emptyIdentifier;
         if (characters[0] >= MaximumCachableCharacter) {
             m_identifiers.append(Identifier::createLCharFromUChar(vm, characters, length));
             return m_identifiers.last();
@@ -186,7 +192,7 @@ namespace JSC {
         OwnPtr<IdentifierArena> m_identifierArena;
         Vector<void*> m_freeablePools;
         Vector<ParserArenaDeletable*> m_deletableObjects;
-        Vector<RefPtr<ParserArenaRefCounted> > m_refCountedObjects;
+        Vector<RefPtr<ParserArenaRefCounted>> m_refCountedObjects;
     };
 
 }