Changeset 252421 in webkit
- Timestamp:
- Nov 13, 2019, 11:40:11 AM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 6 edited
-
ChangeLog (modified) (1 diff)
-
runtime/FunctionRareData.h (modified) (1 diff)
-
runtime/ProxyObject.h (modified) (1 diff)
-
runtime/SparseArrayValueMap.h (modified) (2 diffs)
-
runtime/VM.cpp (modified) (2 diffs)
-
runtime/VM.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r252416 r252421 1 2019-11-13 Yusuke Suzuki <ysuzuki@apple.com> 2 3 [JSC] Put more into IsoSubspace part 2 4 https://bugs.webkit.org/show_bug.cgi?id=204144 5 6 Reviewed by Mark Lam. 7 8 We are doing this step by step to carefully watch the bot status. 9 This patch puts following things into IsoSubspace. 10 11 1. FunctionRareData 12 2. ProxyObject 13 3. SparseArrayValueMap 14 15 * runtime/FunctionRareData.h: 16 * runtime/ProxyObject.h: 17 * runtime/SparseArrayValueMap.h: 18 * runtime/VM.cpp: 19 (JSC::VM::VM): 20 * runtime/VM.h: 21 1 22 2019-11-13 Yusuke Suzuki <ysuzuki@apple.com> 2 23 -
trunk/Source/JavaScriptCore/runtime/FunctionRareData.h
r251425 r252421 54 54 55 55 static constexpr bool needsDestruction = true; 56 57 template<typename CellType, SubspaceAccess mode> 58 static IsoSubspace* subspaceFor(VM& vm) 59 { 60 return vm.functionRareDataSpace<mode>(); 61 } 62 56 63 static void destroy(JSCell*); 57 64 -
trunk/Source/JavaScriptCore/runtime/ProxyObject.h
r251425 r252421 36 36 37 37 static constexpr unsigned StructureFlags = Base::StructureFlags | OverridesGetOwnPropertySlot | OverridesGetCallData | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | OverridesGetPropertyNames | ProhibitsPropertyCaching; 38 39 template<typename CellType, SubspaceAccess mode> 40 static IsoSubspace* subspaceFor(VM& vm) 41 { 42 return vm.proxyObjectSpace<mode>(); 43 } 38 44 39 45 static ProxyObject* create(JSGlobalObject* globalObject, JSValue target, JSValue handler) -
trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.h
r251425 r252421 30 30 #include "PropertyDescriptor.h" 31 31 #include "PutDirectIndexMode.h" 32 #include "VM.h" 32 33 #include "WriteBarrier.h" 33 34 #include <wtf/HashMap.h> … … 106 107 static constexpr bool needsDestruction = true; 107 108 static void destroy(JSCell*); 109 110 template<typename CellType, SubspaceAccess> 111 static IsoSubspace* subspaceFor(VM& vm) 112 { 113 return &vm.sparseArrayValueMapSpace; 114 } 108 115 109 116 static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype); -
trunk/Source/JavaScriptCore/runtime/VM.cpp
r252390 r252421 282 282 , nativeExecutableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), NativeExecutable) // Hash:0x67567f95 283 283 , propertyTableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), PropertyTable) // Hash:0xc6bc9f12 284 , ropeStringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSRopeString) 285 , sparseArrayValueMapSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), SparseArrayValueMap) 284 286 , stringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSString) // Hash:0x90cf758f 285 , ropeStringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSRopeString)286 287 , structureRareDataSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), StructureRareData) // Hash:0xaca4e62d 287 288 , structureSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), Structure) // Hash:0x1f1bcdca … … 1294 1295 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(customGetterSetterFunctionSpace, cellHeapCellType.get(), JSCustomGetterSetterFunction) // Hash:0x18091000 1295 1296 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(errorInstanceSpace, destructibleObjectHeapCellType.get(), ErrorInstance) // Hash:0x3f40d4a 1297 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(functionRareDataSpace, destructibleCellHeapCellType.get(), FunctionRareData) 1296 1298 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(nativeStdFunctionSpace, cellHeapCellType.get(), JSNativeStdFunction) // Hash:0x70ed61e4 1299 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(proxyObjectSpace, cellHeapCellType.get(), ProxyObject) 1297 1300 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(proxyRevokeSpace, destructibleObjectHeapCellType.get(), ProxyRevoke) // Hash:0xb506a939 1298 1301 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(symbolSpace, destructibleCellHeapCellType.get(), Symbol) -
trunk/Source/JavaScriptCore/runtime/VM.h
r252390 r252421 383 383 IsoSubspace nativeExecutableSpace; 384 384 IsoSubspace propertyTableSpace; 385 IsoSubspace ropeStringSpace; 386 IsoSubspace sparseArrayValueMapSpace; 385 387 IsoSubspace stringSpace; 386 IsoSubspace ropeStringSpace;387 388 IsoSubspace structureRareDataSpace; 388 389 IsoSubspace structureSpace; … … 397 398 return name##Slow(); \ 398 399 } \ 399 IsoSubspace* name##Slow(); \400 JS_EXPORT_PRIVATE IsoSubspace* name##Slow(); \ 400 401 std::unique_ptr<IsoSubspace> m_##name; 401 402 … … 408 409 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(customGetterSetterFunctionSpace) 409 410 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(errorInstanceSpace) 411 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(functionRareDataSpace) 410 412 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(nativeStdFunctionSpace) 413 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(proxyObjectSpace) 411 414 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(proxyRevokeSpace) 412 415 DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(symbolSpace)
Note:
See TracChangeset
for help on using the changeset viewer.