[webkit-changes] cvs commit: JavaScriptCore/kxmlcore HashSet.h

Maciej mjs at opensource.apple.com
Sat Oct 15 17:46:26 PDT 2005


mjs         05/10/15 17:46:26

  Modified:    .        ChangeLog
               JavaScriptCore.xcodeproj project.pbxproj
               kjs      array_instance.h array_object.cpp nodes.cpp nodes.h
                        object.cpp object.h property_map.cpp property_map.h
                        protect.h ustring.h
               kxmlcore HashSet.h
  Added:       kjs      protected_reference.h reference.cpp reference.h
                        reference_list.cpp reference_list.h
  Removed:     kjs      IdentifierSequencedSet.cpp IdentifierSequencedSet.h
  Log:
  	Reverted fix for this bug, because it was part of a time range that caused a performance
  	regression:
  
  	<rdar://problem/4260481> Remove Reference type from JavaScriptCore
  
  Revision  Changes    Path
  1.867     +7 -0      JavaScriptCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/ChangeLog,v
  retrieving revision 1.866
  retrieving revision 1.867
  diff -u -r1.866 -r1.867
  --- ChangeLog	15 Oct 2005 23:27:26 -0000	1.866
  +++ ChangeLog	16 Oct 2005 00:46:19 -0000	1.867
  @@ -1,3 +1,10 @@
  +2005-10-15  Maciej Stachowiak  <mjs at apple.com>
  +
  +	Reverted fix for this bug, because it was part of a time range that caused a performance
  +	regression:
  +	
  +	<rdar://problem/4260481> Remove Reference type from JavaScriptCore
  +
   2005-10-15  Darin Adler  <darin at apple.com>
   
           * kxmlcore/HashTable.cpp: Fixed build failure (said hashtable.h instead of HashTable.h).
  
  
  
  1.22      +30 -12    JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
  
  Index: project.pbxproj
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- project.pbxproj	11 Oct 2005 22:26:37 -0000	1.21
  +++ project.pbxproj	16 Oct 2005 00:46:21 -0000	1.22
  @@ -32,10 +32,9 @@
   		37B800EF08EBB65B0035B474 /* HashTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65DFC92D08EA173A00F7300B /* HashTable.cpp */; };
   		37B800F008EBB65B0035B474 /* HashTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DFC92E08EA173A00F7300B /* HashTable.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		37B800F108EBB65C0035B474 /* HashTraits.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DFC92F08EA173A00F7300B /* HashTraits.h */; settings = {ATTRIBUTES = (Private, ); }; };
  -		6512E62B08F3BA8B004A15B6 /* IdentifierSequencedSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 65D6D61C08F2676800958B28 /* IdentifierSequencedSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
  -		6512E63608F3BADE004A15B6 /* IdentifierSequencedSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65D6D61B08F2676800958B28 /* IdentifierSequencedSet.cpp */; };
   		65162EEB08E6A1FE007556CD /* SharedPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 65162EEA08E6A1FE007556CD /* SharedPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		65162F0208E6A2D0007556CD /* SharedPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 65162EEA08E6A1FE007556CD /* SharedPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
  +		652C107F08DA7B1E0020887D /* protected_reference.h in Headers */ = {isa = PBXBuildFile; fileRef = 652C107E08DA7B1E0020887D /* protected_reference.h */; };
   		6541BD7208E80A17002CBEE7 /* TCPageMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 6541BD6E08E80A17002CBEE7 /* TCPageMap.h */; };
   		6541BD7308E80A17002CBEE7 /* TCSpinLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 6541BD6F08E80A17002CBEE7 /* TCSpinLock.h */; };
   		6541BD7408E80A17002CBEE7 /* TCSystemAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6541BD7008E80A17002CBEE7 /* TCSystemAlloc.cpp */; };
  @@ -45,8 +44,6 @@
   		65621E6E089E859700760F35 /* property_slot.h in Headers */ = {isa = PBXBuildFile; fileRef = 65621E6C089E859700760F35 /* property_slot.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		65621E6F089E85D300760F35 /* property_slot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65621E6B089E859700760F35 /* property_slot.cpp */; };
   		65621E70089E85D300760F35 /* property_slot.h in Headers */ = {isa = PBXBuildFile; fileRef = 65621E6C089E859700760F35 /* property_slot.h */; settings = {ATTRIBUTES = (Private, ); }; };
  -		65D6D61D08F2676800958B28 /* IdentifierSequencedSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65D6D61B08F2676800958B28 /* IdentifierSequencedSet.cpp */; };
  -		65D6D61E08F2676800958B28 /* IdentifierSequencedSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 65D6D61C08F2676800958B28 /* IdentifierSequencedSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		65D7D19C08F10B5B0015ABD8 /* FastMallocInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 65D7D19B08F10B5B0015ABD8 /* FastMallocInternal.h */; };
   		65DFC93008EA173A00F7300B /* HashFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DFC92A08EA173A00F7300B /* HashFunctions.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		65DFC93108EA173A00F7300B /* HashMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DFC92B08EA173A00F7300B /* HashMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
  @@ -95,6 +92,8 @@
   		932F5B600822A1C700736975 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = F68EBB8C0255D4C601FF60F7 /* config.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		932F5B610822A1C700736975 /* JavaScriptCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */; };
   		932F5B620822A1C700736975 /* simple_number.h in Headers */ = {isa = PBXBuildFile; fileRef = F50888B6030BB74C012A967E /* simple_number.h */; settings = {ATTRIBUTES = (Private, ); }; };
  +		932F5B630822A1C700736975 /* reference_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F54F0800030CD22001B5C2EB /* reference_list.h */; settings = {ATTRIBUTES = (Private, ); }; };
  +		932F5B640822A1C700736975 /* reference.h in Headers */ = {isa = PBXBuildFile; fileRef = F5341391030CEEB1018BE7F3 /* reference.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		932F5B650822A1C700736975 /* completion.h in Headers */ = {isa = PBXBuildFile; fileRef = F5BB2BC5030F772101FCFE1D /* completion.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		932F5B660822A1C700736975 /* identifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 933A349A038AE7C6008635CE /* identifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		932F5B670822A1C700736975 /* array_instance.h in Headers */ = {isa = PBXBuildFile; fileRef = 938772E5038BFE19008635CE /* array_instance.h */; settings = {ATTRIBUTES = (Private, ); }; };
  @@ -159,6 +158,8 @@
   		932F5BA80822A1C700736975 /* ustring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F692A8850255597D01FF60F7 /* ustring.cpp */; };
   		932F5BA90822A1C700736975 /* value.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F692A8870255597D01FF60F7 /* value.cpp */; };
   		932F5BAB0822A1C700736975 /* nodes2string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5FFE656026B47A6018635CA /* nodes2string.cpp */; };
  +		932F5BAC0822A1C700736975 /* reference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5341390030CEEB1018BE7F3 /* reference.cpp */; settings = {ATTRIBUTES = (Private, ); }; };
  +		932F5BAD0822A1C700736975 /* reference_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5341394030CF5F8018BE7F3 /* reference_list.cpp */; settings = {ATTRIBUTES = (Private, ); }; };
   		932F5BAE0822A1C700736975 /* identifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933A349D038AE80F008635CE /* identifier.cpp */; };
   		932F5BAF0822A1C700736975 /* scope_chain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9374D3A8038D9D74008635CE /* scope_chain.cpp */; };
   		932F5BB00822A1C700736975 /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 931C6CF0038EE8DE008635CE /* list.cpp */; };
  @@ -247,6 +248,8 @@
   		A85D8210087B2822006A9172 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = F68EBB8C0255D4C601FF60F7 /* config.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		A85D8211087B2822006A9172 /* JavaScriptCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */; };
   		A85D8212087B2822006A9172 /* simple_number.h in Headers */ = {isa = PBXBuildFile; fileRef = F50888B6030BB74C012A967E /* simple_number.h */; settings = {ATTRIBUTES = (Private, ); }; };
  +		A85D8213087B2822006A9172 /* reference_list.h in Headers */ = {isa = PBXBuildFile; fileRef = F54F0800030CD22001B5C2EB /* reference_list.h */; settings = {ATTRIBUTES = (Private, ); }; };
  +		A85D8214087B2822006A9172 /* reference.h in Headers */ = {isa = PBXBuildFile; fileRef = F5341391030CEEB1018BE7F3 /* reference.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		A85D8215087B2822006A9172 /* completion.h in Headers */ = {isa = PBXBuildFile; fileRef = F5BB2BC5030F772101FCFE1D /* completion.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		A85D8216087B2822006A9172 /* identifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 933A349A038AE7C6008635CE /* identifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
   		A85D8217087B2822006A9172 /* array_instance.h in Headers */ = {isa = PBXBuildFile; fileRef = 938772E5038BFE19008635CE /* array_instance.h */; settings = {ATTRIBUTES = (Private, ); }; };
  @@ -313,6 +316,8 @@
   		A85D8258087B2822006A9172 /* ustring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F692A8850255597D01FF60F7 /* ustring.cpp */; };
   		A85D8259087B2822006A9172 /* value.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F692A8870255597D01FF60F7 /* value.cpp */; };
   		A85D825A087B2822006A9172 /* nodes2string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5FFE656026B47A6018635CA /* nodes2string.cpp */; };
  +		A85D825B087B2822006A9172 /* reference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5341390030CEEB1018BE7F3 /* reference.cpp */; settings = {ATTRIBUTES = (Private, ); }; };
  +		A85D825C087B2822006A9172 /* reference_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5341394030CF5F8018BE7F3 /* reference_list.cpp */; settings = {ATTRIBUTES = (Private, ); }; };
   		A85D825D087B2822006A9172 /* identifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933A349D038AE80F008635CE /* identifier.cpp */; };
   		A85D825E087B2822006A9172 /* scope_chain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9374D3A8038D9D74008635CE /* scope_chain.cpp */; };
   		A85D825F087B2822006A9172 /* list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 931C6CF0038EE8DE008635CE /* list.cpp */; };
  @@ -357,6 +362,7 @@
   		A883C7F408EA12860051473E /* TCSpinLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 6541BD6F08E80A17002CBEE7 /* TCSpinLock.h */; };
   		A883C7F508EA12860051473E /* TCSystemAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6541BD7008E80A17002CBEE7 /* TCSystemAlloc.cpp */; };
   		A883C7F608EA12860051473E /* TCSystemAlloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 6541BD7108E80A17002CBEE7 /* TCSystemAlloc.h */; };
  +		A883C7F708EA12A20051473E /* protected_reference.h in Headers */ = {isa = PBXBuildFile; fileRef = 652C107E08DA7B1E0020887D /* protected_reference.h */; };
   		A8BC0DFC08D43D6D00379918 /* ucptable.c in Headers */ = {isa = PBXBuildFile; fileRef = 93E26C0D08B1520900F85226 /* ucptable.c */; };
   /* End PBXBuildFile section */
   
  @@ -496,6 +502,7 @@
   		65162EEA08E6A1FE007556CD /* SharedPtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SharedPtr.h; sourceTree = "<group>"; };
   		651F6412039D5B5F0078395C /* dtoa.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = dtoa.cpp; sourceTree = "<group>"; };
   		651F6413039D5B5F0078395C /* dtoa.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dtoa.h; sourceTree = "<group>"; };
  +		652C107E08DA7B1E0020887D /* protected_reference.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = protected_reference.h; sourceTree = "<group>"; };
   		6541720E039E08B90058BFEB /* dftables.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dftables.c; path = pcre/dftables.c; sourceTree = "<group>"; };
   		6541720F039E08B90058BFEB /* pcre.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = pcre.h; path = pcre/pcre.h; sourceTree = "<group>"; };
   		65417217039E0B280058BFEB /* pcre-config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "pcre-config.h"; path = "pcre/pcre-config.h"; sourceTree = "<group>"; };
  @@ -509,8 +516,6 @@
   		65621E6B089E859700760F35 /* property_slot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = property_slot.cpp; sourceTree = "<group>"; };
   		65621E6C089E859700760F35 /* property_slot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = property_slot.h; sourceTree = "<group>"; };
   		65C02FBB0637462A003E7EE6 /* protect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = protect.h; sourceTree = "<group>"; };
  -		65D6D61B08F2676800958B28 /* IdentifierSequencedSet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IdentifierSequencedSet.cpp; sourceTree = "<group>"; };
  -		65D6D61C08F2676800958B28 /* IdentifierSequencedSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IdentifierSequencedSet.h; sourceTree = "<group>"; };
   		65D7D19B08F10B5B0015ABD8 /* FastMallocInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FastMallocInternal.h; sourceTree = "<group>"; };
   		65DFC92A08EA173A00F7300B /* HashFunctions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HashFunctions.h; sourceTree = "<group>"; };
   		65DFC92B08EA173A00F7300B /* HashMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HashMap.h; sourceTree = "<group>"; };
  @@ -567,6 +572,10 @@
   		93F1981A08245AAE001E9ABC /* keywords.table */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = keywords.table; sourceTree = "<group>"; };
   		A85D8288087B2822006A9172 /* JavaScriptCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
   		F50888B6030BB74C012A967E /* simple_number.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = simple_number.h; sourceTree = "<group>"; };
  +		F5341390030CEEB1018BE7F3 /* reference.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = reference.cpp; sourceTree = "<group>"; };
  +		F5341391030CEEB1018BE7F3 /* reference.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = reference.h; sourceTree = "<group>"; };
  +		F5341394030CF5F8018BE7F3 /* reference_list.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = reference_list.cpp; sourceTree = "<group>"; };
  +		F54F0800030CD22001B5C2EB /* reference_list.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = reference_list.h; sourceTree = "<group>"; };
   		F5BB2BC5030F772101FCFE1D /* completion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = completion.h; sourceTree = "<group>"; };
   		F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JavaScriptCorePrefix.h; path = ../JavaScriptCorePrefix.h; sourceTree = "<group>"; };
   		F5FFE656026B47A6018635CA /* nodes2string.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = nodes2string.cpp; sourceTree = "<group>"; };
  @@ -705,12 +714,11 @@
   		08FB77AEFE84172EC02AAC07 /* Classes */ = {
   			isa = PBXGroup;
   			children = (
  -				65D6D61B08F2676800958B28 /* IdentifierSequencedSet.cpp */,
  -				65D6D61C08F2676800958B28 /* IdentifierSequencedSet.h */,
   				65621E6B089E859700760F35 /* property_slot.cpp */,
   				65621E6C089E859700760F35 /* property_slot.h */,
   				938772E5038BFE19008635CE /* array_instance.h */,
   				650B68D80639033F009D42DE /* protected_values.cpp */,
  +				652C107E08DA7B1E0020887D /* protected_reference.h */,
   				650B68D90639033F009D42DE /* protected_values.h */,
   				F692A84E0255597D01FF60F7 /* array_object.h */,
   				F692A84D0255597D01FF60F7 /* array_object.cpp */,
  @@ -757,6 +765,10 @@
   				F692A87A0255597D01FF60F7 /* property_map.h */,
   				F692A8790255597D01FF60F7 /* property_map.cpp */,
   				65C02FBB0637462A003E7EE6 /* protect.h */,
  +				F5341390030CEEB1018BE7F3 /* reference.cpp */,
  +				F5341391030CEEB1018BE7F3 /* reference.h */,
  +				F54F0800030CD22001B5C2EB /* reference_list.h */,
  +				F5341394030CF5F8018BE7F3 /* reference_list.cpp */,
   				F692A87B0255597D01FF60F7 /* regexp_object.cpp */,
   				F692A87C0255597D01FF60F7 /* regexp_object.h */,
   				F692A87D0255597D01FF60F7 /* regexp.cpp */,
  @@ -959,6 +971,8 @@
   				932F5B600822A1C700736975 /* config.h in Headers */,
   				932F5B610822A1C700736975 /* JavaScriptCorePrefix.h in Headers */,
   				932F5B620822A1C700736975 /* simple_number.h in Headers */,
  +				932F5B630822A1C700736975 /* reference_list.h in Headers */,
  +				932F5B640822A1C700736975 /* reference.h in Headers */,
   				932F5B650822A1C700736975 /* completion.h in Headers */,
   				932F5B660822A1C700736975 /* identifier.h in Headers */,
   				932F5B670822A1C700736975 /* array_instance.h in Headers */,
  @@ -1005,6 +1019,7 @@
   				93E26BFE08B151D400F85226 /* ucpinternal.h in Headers */,
   				93E26C1308B1523D00F85226 /* ucptable.c in Headers */,
   				93E26CCF08B2921900F85226 /* softlinking.h in Headers */,
  +				652C107F08DA7B1E0020887D /* protected_reference.h in Headers */,
   				65162EEB08E6A1FE007556CD /* SharedPtr.h in Headers */,
   				65E217BD08E7EECC0023E5F6 /* Assertions.h in Headers */,
   				65E217C008E7EECC0023E5F6 /* FastMalloc.h in Headers */,
  @@ -1018,7 +1033,6 @@
   				65DFC93508EA173A00F7300B /* HashTraits.h in Headers */,
   				6557E8F808EA5D4D0049CDFC /* HashMapPtrSpec.h in Headers */,
   				65D7D19C08F10B5B0015ABD8 /* FastMallocInternal.h in Headers */,
  -				65D6D61E08F2676800958B28 /* IdentifierSequencedSet.h in Headers */,
   			);
   			runOnlyForDeploymentPostprocessing = 0;
   		};
  @@ -1054,6 +1068,8 @@
   				A85D8210087B2822006A9172 /* config.h in Headers */,
   				A85D8211087B2822006A9172 /* JavaScriptCorePrefix.h in Headers */,
   				A85D8212087B2822006A9172 /* simple_number.h in Headers */,
  +				A85D8213087B2822006A9172 /* reference_list.h in Headers */,
  +				A85D8214087B2822006A9172 /* reference.h in Headers */,
   				A85D8215087B2822006A9172 /* completion.h in Headers */,
   				A85D8216087B2822006A9172 /* identifier.h in Headers */,
   				A85D8217087B2822006A9172 /* array_instance.h in Headers */,
  @@ -1106,13 +1122,13 @@
   				A883C7F308EA12860051473E /* TCPageMap.h in Headers */,
   				A883C7F408EA12860051473E /* TCSpinLock.h in Headers */,
   				A883C7F608EA12860051473E /* TCSystemAlloc.h in Headers */,
  +				A883C7F708EA12A20051473E /* protected_reference.h in Headers */,
   				37B800EB08EBB6520035B474 /* HashFunctions.h in Headers */,
   				37B800EC08EBB6540035B474 /* HashMap.h in Headers */,
   				37B800ED08EBB6540035B474 /* HashMapPtrSpec.h in Headers */,
   				37B800EE08EBB65A0035B474 /* HashSet.h in Headers */,
   				37B800F008EBB65B0035B474 /* HashTable.h in Headers */,
   				37B800F108EBB65C0035B474 /* HashTraits.h in Headers */,
  -				6512E62B08F3BA8B004A15B6 /* IdentifierSequencedSet.h in Headers */,
   			);
   			runOnlyForDeploymentPostprocessing = 0;
   		};
  @@ -1661,6 +1677,8 @@
   				932F5BA80822A1C700736975 /* ustring.cpp in Sources */,
   				932F5BA90822A1C700736975 /* value.cpp in Sources */,
   				932F5BAB0822A1C700736975 /* nodes2string.cpp in Sources */,
  +				932F5BAC0822A1C700736975 /* reference.cpp in Sources */,
  +				932F5BAD0822A1C700736975 /* reference_list.cpp in Sources */,
   				932F5BAE0822A1C700736975 /* identifier.cpp in Sources */,
   				932F5BAF0822A1C700736975 /* scope_chain.cpp in Sources */,
   				932F5BB00822A1C700736975 /* list.cpp in Sources */,
  @@ -1707,7 +1725,6 @@
   				65E217BF08E7EECC0023E5F6 /* FastMalloc.cpp in Sources */,
   				6541BD7408E80A17002CBEE7 /* TCSystemAlloc.cpp in Sources */,
   				65DFC93308EA173A00F7300B /* HashTable.cpp in Sources */,
  -				65D6D61D08F2676800958B28 /* IdentifierSequencedSet.cpp in Sources */,
   			);
   			runOnlyForDeploymentPostprocessing = 0;
   		};
  @@ -1757,6 +1774,8 @@
   				A85D8258087B2822006A9172 /* ustring.cpp in Sources */,
   				A85D8259087B2822006A9172 /* value.cpp in Sources */,
   				A85D825A087B2822006A9172 /* nodes2string.cpp in Sources */,
  +				A85D825B087B2822006A9172 /* reference.cpp in Sources */,
  +				A85D825C087B2822006A9172 /* reference_list.cpp in Sources */,
   				A85D825D087B2822006A9172 /* identifier.cpp in Sources */,
   				A85D825E087B2822006A9172 /* scope_chain.cpp in Sources */,
   				A85D825F087B2822006A9172 /* list.cpp in Sources */,
  @@ -1803,7 +1822,6 @@
   				A883C7F008EA12860051473E /* FastMalloc.cpp in Sources */,
   				A883C7F508EA12860051473E /* TCSystemAlloc.cpp in Sources */,
   				37B800EF08EBB65B0035B474 /* HashTable.cpp in Sources */,
  -				6512E63608F3BADE004A15B6 /* IdentifierSequencedSet.cpp in Sources */,
   			);
   			runOnlyForDeploymentPostprocessing = 0;
   		};
  
  
  
  1.18      +1 -1      JavaScriptCore/kjs/array_instance.h
  
  Index: array_instance.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/array_instance.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- array_instance.h	5 Oct 2005 08:05:37 -0000	1.17
  +++ array_instance.h	16 Oct 2005 00:46:21 -0000	1.18
  @@ -39,7 +39,7 @@
       virtual void put(ExecState *exec, unsigned propertyName, ValueImp *value, int attr = None);
       virtual bool deleteProperty(ExecState *exec, const Identifier &propertyName);
       virtual bool deleteProperty(ExecState *exec, unsigned propertyName);
  -    virtual void getPropertyNames(ExecState *exec, IdentifierSequencedSet& propertyNames);
  +    virtual ReferenceList propList(ExecState *exec, bool recursive);
   
       virtual void mark();
   
  
  
  
  1.54      +27 -24    JavaScriptCore/kjs/array_object.cpp
  
  Index: array_object.cpp
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/array_object.cpp,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- array_object.cpp	5 Oct 2005 08:05:37 -0000	1.53
  +++ array_object.cpp	16 Oct 2005 00:46:21 -0000	1.54
  @@ -28,9 +28,9 @@
   #include "interpreter.h"
   #include "object.h"
   #include "operations.h"
  +#include "reference_list.h"
   #include "types.h"
   #include "value.h"
  -#include "IdentifierSequencedSet.h"
   
   #include "array_object.lut.h"
   
  @@ -185,18 +185,20 @@
     return ObjectImp::deleteProperty(exec, Identifier::from(index));
   }
   
  -void ArrayInstanceImp::getPropertyNames(ExecState *exec, IdentifierSequencedSet& propertyNames)
  +ReferenceList ArrayInstanceImp::propList(ExecState *exec, bool recursive)
   {
  +  ReferenceList properties = ObjectImp::propList(exec,recursive);
  +
     // avoid fetching this every time through the loop
     ValueImp *undefined = jsUndefined();
   
     for (unsigned i = 0; i < storageLength; ++i) {
       ValueImp *imp = storage[i];
  -    if (imp && imp != undefined)
  -      propertyNames.insert(Identifier::from(i));
  +    if (imp && imp != undefined) {
  +      properties.append(Reference(this, i));
  +    }
     }
  -
  -  ObjectImp::getPropertyNames(exec, propertyNames);
  +  return properties;
   }
   
   void ArrayInstanceImp::resizeStorage(unsigned newLength)
  @@ -228,18 +230,18 @@
     }
   
     if (newLength < length) {
  -    IdentifierSequencedSet sparseProperties;
  +    ReferenceList sparseProperties;
       
  -    _prop.getSparseArrayPropertyNames(sparseProperties);
  -
  -    IdentifierSequencedSetIterator end = sparseProperties.end();
  +    _prop.addSparseArrayPropertiesToReferenceList(sparseProperties, this);
       
  -    for (IdentifierSequencedSetIterator it = sparseProperties.begin(); it != end; ++it) {
  -      Identifier name = *it;
  +    ReferenceListIterator it = sparseProperties.begin();
  +    while (it != sparseProperties.end()) {
  +      Reference ref = it++;
         bool ok;
  -      unsigned index = name.toArrayIndex(&ok);
  -      if (ok && index > newLength)
  -        deleteProperty(exec, name);
  +      unsigned index = ref.getPropertyName(exec).toArrayIndex(&ok);
  +      if (ok && index > newLength) {
  +	ref.deleteValue(exec);
  +      }
       }
     }
     
  @@ -346,18 +348,19 @@
           }
       }
       
  -    IdentifierSequencedSet sparseProperties;
  -    _prop.getSparseArrayPropertyNames(sparseProperties);
  -    unsigned newLength = o + sparseProperties.size();
  +    ReferenceList sparseProperties;
  +    _prop.addSparseArrayPropertiesToReferenceList(sparseProperties, this);
  +    unsigned newLength = o + sparseProperties.length();
   
  -    if (newLength > storageLength)
  +    if (newLength > storageLength) {
         resizeStorage(newLength);
  +    } 
   
  -    IdentifierSequencedSetIterator end = sparseProperties.end();
  -    for (IdentifierSequencedSetIterator it = sparseProperties.begin(); it != end; ++it) {
  -      Identifier name = *it;
  -      storage[o] = get(exec, name);
  -      ObjectImp::deleteProperty(exec, name);
  +    ReferenceListIterator it = sparseProperties.begin();
  +    while (it != sparseProperties.end()) {
  +      Reference ref = it++;
  +      storage[o] = ref.getValue(exec);
  +      ObjectImp::deleteProperty(exec, ref.getPropertyName(exec));
         o++;
       }
       
  
  
  
  1.88      +12 -7     JavaScriptCore/kjs/nodes.cpp
  
  Index: nodes.cpp
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/nodes.cpp,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- nodes.cpp	6 Oct 2005 01:13:18 -0000	1.87
  +++ nodes.cpp	16 Oct 2005 00:46:21 -0000	1.88
  @@ -43,7 +43,7 @@
   #include "lexer.h"
   #include "operations.h"
   #include "ustring.h"
  -#include "IdentifierSequencedSet.h"
  +#include "reference_list.h"
   
   using namespace KJS;
   
  @@ -1769,7 +1769,7 @@
     ValueImp *retval = 0;
     ObjectImp *v;
     Completion c;
  -  IdentifierSequencedSet propertyNames;
  +  ReferenceList propList;
   
     if (varDecl) {
       varDecl->evaluate(exec);
  @@ -1788,13 +1788,16 @@
   
     KJS_CHECKEXCEPTION
     v = e->toObject(exec);
  -  v->getPropertyNames(exec, propertyNames);
  +  propList = v->propList(exec);
   
  -  IdentifierSequencedSetIterator end = propertyNames.end();
  -  for (IdentifierSequencedSetIterator it = propertyNames.begin(); it != end; ++it) {
  -    const Identifier &name = *it;
  -    if (!v->hasProperty(exec, name))
  +  ReferenceListIterator propIt = propList.begin();
  +
  +  while (propIt != propList.end()) {
  +    Identifier name = propIt->getPropertyName(exec);
  +    if (!v->hasProperty(exec, name)) {
  +      propIt++;
         continue;
  +    }
   
       ValueImp *str = jsString(name.ustring());
   
  @@ -1856,6 +1859,8 @@
           return c;
         }
       }
  +
  +    propIt++;
     }
   
     // bail out on error
  
  
  
  1.40      +1 -0      JavaScriptCore/kjs/nodes.h
  
  Index: nodes.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/nodes.h,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- nodes.h	5 Oct 2005 08:05:38 -0000	1.39
  +++ nodes.h	16 Oct 2005 00:46:22 -0000	1.40
  @@ -34,6 +34,7 @@
     class ProgramNode;
     class PropertyNode;
     class PropertyValueNode;
  +  class Reference;
     class RegExp;
     class SourceElementsNode;
     class SourceStream;
  
  
  
  1.55      +10 -7     JavaScriptCore/kjs/object.cpp
  
  Index: object.cpp
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/object.cpp,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- object.cpp	5 Oct 2005 08:05:38 -0000	1.54
  +++ object.cpp	16 Oct 2005 00:46:22 -0000	1.55
  @@ -28,7 +28,7 @@
   #include "types.h"
   #include "interpreter.h"
   #include "lookup.h"
  -#include "IdentifierSequencedSet.h"
  +#include "reference_list.h"
   
   #include <assert.h>
   #include <math.h>
  @@ -374,9 +374,13 @@
     return false;
   }
   
  -void ObjectImp::getPropertyNames(ExecState *exec, IdentifierSequencedSet &propertyNames)
  +ReferenceList ObjectImp::propList(ExecState *exec, bool recursive)
   {
  -  _prop.getEnumerablePropertyNames(propertyNames);
  +  ReferenceList list;
  +  if (_proto->isObject() && recursive)
  +    list = static_cast<ObjectImp*>(_proto)->propList(exec,recursive);
  +
  +  _prop.addEnumerablesToReferenceList(list, this);
   
     // Add properties from the static hashtable of properties
     const ClassInfo *info = classInfo();
  @@ -385,15 +389,14 @@
         int size = info->propHashTable->size;
         const HashEntry *e = info->propHashTable->entries;
         for (int i = 0; i < size; ++i, ++e) {
  -        if (e->s && !(e->attr & DontEnum))
  -          propertyNames.insert(e->s);
  +        if ( e->s && !(e->attr & DontEnum) )
  +          list.append(Reference(this, e->s)); /// ######### check for duplicates with the propertymap
         }
       }
       info = info->parentClass;
     }
   
  -  if (_proto->isObject())
  -    static_cast<ObjectImp*>(_proto)->getPropertyNames(exec, propertyNames);
  +  return list;
   }
   
   ValueImp *ObjectImp::toPrimitive(ExecState *exec, Type preferredType) const
  
  
  
  1.47      +5 -3      JavaScriptCore/kjs/object.h
  
  Index: object.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/object.h,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- object.h	5 Oct 2005 08:05:38 -0000	1.46
  +++ object.h	16 Oct 2005 00:46:22 -0000	1.47
  @@ -47,7 +47,6 @@
     class HashTable;
     class HashEntry;
     class ListImp;
  -  class IdentifierSequencedSet;
   
     // ECMA 262-3 8.6.1
     // Property attributes
  @@ -423,9 +422,12 @@
        * having extra properties other than those set specifically with put().
        *
        * @param exec The current execution state
  -     * @param propertyNames A list of property names to be filled in by this call
  +     * @param recursive Whether or not properties in the object's prototype
  +     * chain should be
  +     * included in the list.
  +     * @return A List of References to properties of the object.
        **/
  -    virtual void getPropertyNames(ExecState *exec, IdentifierSequencedSet& propertyNames);
  +    virtual ReferenceList propList(ExecState *exec, bool recursive = true);
   
       /**
        * Returns the internal value of the object. This is used for objects such
  
  
  
  1.52      +10 -12    JavaScriptCore/kjs/property_map.cpp
  
  Index: property_map.cpp
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/property_map.cpp,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- property_map.cpp	5 Oct 2005 08:05:38 -0000	1.51
  +++ property_map.cpp	16 Oct 2005 00:46:23 -0000	1.52
  @@ -25,7 +25,7 @@
   #include <kxmlcore/FastMalloc.h>
   #include "object.h"
   #include "protect.h"
  -#include "IdentifierSequencedSet.h"
  +#include "reference_list.h"
   
   #include <algorithm>
   
  @@ -74,7 +74,7 @@
   #endif
   
   // lastIndexUsed is an ever-increasing index used to identify the order items
  -// were inserted into the property map. It's vital that getEnumerablePropertyNames
  +// were inserted into the property map. It's vital that addEnumerablesToReferenceList
   // return the properties in the order they were added for compatibility with other
   // browsers' JavaScript implementations.
   struct PropertyMapHashTable
  @@ -566,13 +566,13 @@
       return 0;
   }
   
  -void PropertyMap::getEnumerablePropertyNames(IdentifierSequencedSet& propertyNames) const
  +void PropertyMap::addEnumerablesToReferenceList(ReferenceList &list, ObjectImp *base) const
   {
       if (!_table) {
   #if USE_SINGLE_ENTRY
           UString::Rep *key = _singleEntry.key;
           if (key && !(_singleEntry.attributes & DontEnum))
  -            propertyNames.insert(Identifier(key));
  +            list.append(Reference(base, Identifier(key)));
   #endif
           return;
       }
  @@ -598,19 +598,17 @@
       // Sort the entries by index.
       qsort(sortedEnumerables, p - sortedEnumerables, sizeof(sortedEnumerables[0]), comparePropertyMapEntryIndices);
   
  -    // Put the keys of the sorted entries into the list.
  +    // Put the keys of the sorted entries into the reference list.
       Entry **q = sortedEnumerables;
  -    while (q != p) {
  -        propertyNames.insert(Identifier(q[0]->key));
  -        ++q;
  -    }
  +    while (q != p)
  +        list.append(Reference(base, Identifier((*q++)->key)));
   
       // Deallocate the buffer.
       if (sortedEnumerables != fixedSizeBuffer)
           delete [] sortedEnumerables;
   }
   
  -void PropertyMap::getSparseArrayPropertyNames(IdentifierSequencedSet& propertyNames) const
  +void PropertyMap::addSparseArrayPropertiesToReferenceList(ReferenceList &list, ObjectImp *base) const
   {
       if (!_table) {
   #if USE_SINGLE_ENTRY
  @@ -620,7 +618,7 @@
               bool fitsInUInt32;
               k.toUInt32(&fitsInUInt32);
               if (fitsInUInt32)
  -                propertyNames.insert(Identifier(key));
  +                list.append(Reference(base, Identifier(key)));
           }
   #endif
           return;
  @@ -635,7 +633,7 @@
               bool fitsInUInt32;
               k.toUInt32(&fitsInUInt32);
               if (fitsInUInt32)
  -                propertyNames.insert(Identifier(key));
  +                list.append(Reference(base, Identifier(key)));
           }
       }
   }
  
  
  
  1.26      +3 -3      JavaScriptCore/kjs/property_map.h
  
  Index: property_map.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/property_map.h,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- property_map.h	5 Oct 2005 08:05:38 -0000	1.25
  +++ property_map.h	16 Oct 2005 00:46:23 -0000	1.26
  @@ -27,8 +27,8 @@
   
   namespace KJS {
   
  -    class IdentifierSequencedSet;
       class ObjectImp;
  +    class ReferenceList;
       class ValueImp;
       
       class SavedProperty;
  @@ -81,8 +81,8 @@
           ValueImp **getLocation(const Identifier &name);
   
           void mark() const;
  -        void getEnumerablePropertyNames(IdentifierSequencedSet&) const;
  -        void getSparseArrayPropertyNames(IdentifierSequencedSet&) const;
  +        void addEnumerablesToReferenceList(ReferenceList &, ObjectImp *) const;
  +	void addSparseArrayPropertiesToReferenceList(ReferenceList &, ObjectImp *) const;
   
           void save(SavedProperties &) const;
           void restore(const SavedProperties &p);
  
  
  
  1.10      +1 -0      JavaScriptCore/kjs/protect.h
  
  Index: protect.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/protect.h,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- protect.h	5 Oct 2005 08:05:39 -0000	1.9
  +++ protect.h	16 Oct 2005 00:46:23 -0000	1.10
  @@ -24,6 +24,7 @@
   #ifndef _KJS_PROTECT_H_
   #define _KJS_PROTECT_H_
   
  +#include "reference.h"
   #include "value.h"
   #include "protected_values.h"
   #include "interpreter.h"
  
  
  
  1.44      +0 -4      JavaScriptCore/kjs/ustring.h
  
  Index: ustring.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kjs/ustring.h,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- ustring.h	5 Oct 2005 08:05:40 -0000	1.43
  +++ ustring.h	16 Oct 2005 00:46:23 -0000	1.44
  @@ -240,8 +240,6 @@
       };
   
     public:
  -    typedef Rep Impl;
  -
       /**
        * Constructs a null string.
        */
  @@ -463,8 +461,6 @@
        */
       static void globalClear();
   #endif
  -
  -    Impl *impl() const { return rep; }
     private:
       UString(Rep *r) { attach(r); }
       void attach(Rep *r) { rep = r; r->ref(); }
  
  
  
  1.3       +0 -0      JavaScriptCore/kjs/protected_reference.h
  
  
  
  
  1.18      +0 -0      JavaScriptCore/kjs/reference.cpp
  
  
  
  
  1.16      +0 -0      JavaScriptCore/kjs/reference.h
  
  
  
  
  1.11      +0 -0      JavaScriptCore/kjs/reference_list.cpp
  
  
  
  
  1.9       +0 -0      JavaScriptCore/kjs/reference_list.h
  
  
  
  
  1.3       +1 -1      JavaScriptCore/kxmlcore/HashSet.h
  
  Index: HashSet.h
  ===================================================================
  RCS file: /cvs/root/JavaScriptCore/kxmlcore/HashSet.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HashSet.h	5 Oct 2005 08:05:43 -0000	1.2
  +++ HashSet.h	16 Oct 2005 00:46:25 -0000	1.3
  @@ -25,7 +25,7 @@
   
   #include "HashTable.h"
   #include "HashTraits.h"
  -#include "HashFunctions.h"
  +#include "hashfunctions.h"
   
   namespace KXMLCore {
   
  
  
  



More information about the webkit-changes mailing list