Changeset 197595 in webkit
- Timestamp:
- Mar 4, 2016 3:33:22 PM (8 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r197590 r197595 1 2016-03-04 Andreas Kling <akling@apple.com> 2 3 [iOS] Throw away compiled RegExp code when navigating to a new page. 4 <https://webkit.org/b/155015> 5 6 Reviewed by Anders Carlsson. 7 8 Add a mechanism to have the VM discard all RegExp bytecode and JIT code. 9 10 * runtime/VM.cpp: 11 (JSC::VM::deleteAllRegExpCode): 12 * runtime/VM.h: 13 1 14 2016-03-04 David Kilzer <ddkilzer@apple.com> 2 15 -
trunk/Source/JavaScriptCore/runtime/VM.cpp
r197489 r197595 559 559 } 560 560 561 void VM::deleteAllRegExpCode() 562 { 563 whenIdle([this]() { 564 m_regExpCache->deleteAllCode(); 565 heap.reportAbandonedObjectGraph(); 566 }); 567 } 568 561 569 void VM::deleteAllCode() 562 570 { -
trunk/Source/JavaScriptCore/runtime/VM.h
r197489 r197595 580 580 JS_EXPORT_PRIVATE void deleteAllCode(); 581 581 JS_EXPORT_PRIVATE void deleteAllLinkedCode(); 582 JS_EXPORT_PRIVATE void deleteAllRegExpCode(); 582 583 583 584 void registerWatchpointForImpureProperty(const Identifier&, Watchpoint*); -
trunk/Source/WebCore/ChangeLog
r197594 r197595 1 2016-03-04 Andreas Kling <akling@apple.com> 2 3 [iOS] Throw away compiled RegExp code when navigating to a new page. 4 <https://webkit.org/b/155015> 5 6 Reviewed by Anders Carlsson. 7 8 Discard RegExp code when doing a top-level navigation. 9 This frees up a couple hundred kilobytes on many pages. 10 11 * bindings/js/GCController.cpp: 12 (WebCore::GCController::deleteAllRegExpCode): 13 * bindings/js/GCController.h: 14 * loader/FrameLoader.cpp: 15 (WebCore::FrameLoader::commitProvisionalLoad): 16 1 17 2016-03-04 Simon Fraser <simon.fraser@apple.com> 2 18 -
trunk/Source/WebCore/bindings/js/GCController.cpp
r196308 r197595 129 129 } 130 130 131 void GCController::deleteAllRegExpCode() 132 { 133 JSLockHolder lock(JSDOMWindow::commonVM()); 134 JSDOMWindow::commonVM().deleteAllRegExpCode(); 135 } 136 131 137 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/GCController.h
r196308 r197595 48 48 WEBCORE_EXPORT void deleteAllCode(); 49 49 WEBCORE_EXPORT void deleteAllLinkedCode(); 50 WEBCORE_EXPORT void deleteAllRegExpCode(); 50 51 51 52 private: -
trunk/Source/WebCore/loader/FrameLoader.cpp
r197254 r197595 1768 1768 GCController::singleton().deleteAllLinkedCode(); 1769 1769 1770 // Same thing with RegExp bytecode and JIT code. 1771 GCController::singleton().deleteAllRegExpCode(); 1772 1770 1773 // Throw out decoded data for CachedImages when we are switching pages. The majority of it 1771 1774 // will not be used by the next page.
Note: See TracChangeset
for help on using the changeset viewer.