Timeline
Oct 17, 2008:
- 11:18 PM Changeset in webkit [37675] by
-
- 2 edits in trunk/WebKitTools
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark Rowe.
- default to 1000 tests per dump tool instance again, now that CTI no longer causes excess different stack logs.
(Also fix a small bug in my last change.)
- Scripts/run-webkit-tests:
- 11:17 PM Changeset in webkit [37674] by
-
- 3 edits in trunk/JavaScriptCore
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- in debug builds, alter the stack to avoid blowing out MallocStackLogging
(In essence, while executing a CTI function we alter the return
address to jscGeneratedNativeCode so that a single consistent
function is on the stack instead of many random functions without
symbols.)
- VM/CTI.h:
- VM/Machine.cpp: (JSC::doSetReturnAddress): (JSC::): (JSC::StackHack::StackHack): (JSC::StackHack::~StackHack): (JSC::Machine::cti_op_convert_this): (JSC::Machine::cti_op_end): (JSC::Machine::cti_op_add): (JSC::Machine::cti_op_pre_inc): (JSC::Machine::cti_timeout_check): (JSC::Machine::cti_register_file_check): (JSC::Machine::cti_op_loop_if_less): (JSC::Machine::cti_op_loop_if_lesseq): (JSC::Machine::cti_op_new_object): (JSC::Machine::cti_op_put_by_id): (JSC::Machine::cti_op_put_by_id_second): (JSC::Machine::cti_op_put_by_id_generic): (JSC::Machine::cti_op_put_by_id_fail): (JSC::Machine::cti_op_get_by_id): (JSC::Machine::cti_op_get_by_id_second): (JSC::Machine::cti_op_get_by_id_generic): (JSC::Machine::cti_op_get_by_id_fail): (JSC::Machine::cti_op_instanceof): (JSC::Machine::cti_op_del_by_id): (JSC::Machine::cti_op_mul): (JSC::Machine::cti_op_new_func): (JSC::Machine::cti_op_call_profiler): (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_vm_lazyLinkCall): (JSC::Machine::cti_vm_compile): (JSC::Machine::cti_op_push_activation): (JSC::Machine::cti_op_call_NotJSFunction): (JSC::Machine::cti_op_create_arguments): (JSC::Machine::cti_op_tear_off_activation): (JSC::Machine::cti_op_tear_off_arguments): (JSC::Machine::cti_op_ret_profiler): (JSC::Machine::cti_op_ret_scopeChain): (JSC::Machine::cti_op_new_array): (JSC::Machine::cti_op_resolve): (JSC::Machine::cti_op_construct_JSConstructFast): (JSC::Machine::cti_op_construct_JSConstruct): (JSC::Machine::cti_op_construct_NotJSConstruct): (JSC::Machine::cti_op_get_by_val): (JSC::Machine::cti_op_resolve_func): (JSC::Machine::cti_op_sub): (JSC::Machine::cti_op_put_by_val): (JSC::Machine::cti_op_put_by_val_array): (JSC::Machine::cti_op_lesseq): (JSC::Machine::cti_op_loop_if_true): (JSC::Machine::cti_op_negate): (JSC::Machine::cti_op_resolve_base): (JSC::Machine::cti_op_resolve_skip): (JSC::Machine::cti_op_resolve_global): (JSC::Machine::cti_op_div): (JSC::Machine::cti_op_pre_dec): (JSC::Machine::cti_op_jless): (JSC::Machine::cti_op_not): (JSC::Machine::cti_op_jtrue): (JSC::Machine::cti_op_post_inc): (JSC::Machine::cti_op_eq): (JSC::Machine::cti_op_lshift): (JSC::Machine::cti_op_bitand): (JSC::Machine::cti_op_rshift): (JSC::Machine::cti_op_bitnot): (JSC::Machine::cti_op_resolve_with_base): (JSC::Machine::cti_op_new_func_exp): (JSC::Machine::cti_op_mod): (JSC::Machine::cti_op_less): (JSC::Machine::cti_op_neq): (JSC::Machine::cti_op_post_dec): (JSC::Machine::cti_op_urshift): (JSC::Machine::cti_op_bitxor): (JSC::Machine::cti_op_new_regexp): (JSC::Machine::cti_op_bitor): (JSC::Machine::cti_op_call_eval): (JSC::Machine::cti_op_throw): (JSC::Machine::cti_op_get_pnames): (JSC::Machine::cti_op_next_pname): (JSC::Machine::cti_op_push_scope): (JSC::Machine::cti_op_pop_scope): (JSC::Machine::cti_op_typeof): (JSC::Machine::cti_op_is_undefined): (JSC::Machine::cti_op_is_boolean): (JSC::Machine::cti_op_is_number): (JSC::Machine::cti_op_is_string): (JSC::Machine::cti_op_is_object): (JSC::Machine::cti_op_is_function): (JSC::Machine::cti_op_stricteq): (JSC::Machine::cti_op_nstricteq): (JSC::Machine::cti_op_to_jsnumber): (JSC::Machine::cti_op_in): (JSC::Machine::cti_op_push_new_scope): (JSC::Machine::cti_op_jmp_scopes): (JSC::Machine::cti_op_put_by_index): (JSC::Machine::cti_op_switch_imm): (JSC::Machine::cti_op_switch_char): (JSC::Machine::cti_op_switch_string): (JSC::Machine::cti_op_del_by_val): (JSC::Machine::cti_op_put_getter): (JSC::Machine::cti_op_put_setter): (JSC::Machine::cti_op_new_error): (JSC::Machine::cti_op_debug): (JSC::Machine::cti_vm_throw):
- 9:54 PM Changeset in webkit [37673] by
-
- 2 edits in trunk/WebKitTools
2008-10-17 Stephanie Lewis <Stephanie Lewis>
Reviewed by Mark Rowe.
Fix layout tests that use prologues and epilogues.
- Scripts/run-webkit-tests:
- 9:29 PM Changeset in webkit [37672] by
-
- 2 edits in trunk/WebKitTools
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark Rowe.
- make sure MallocStackLogging is only on for tools we want to leak check, not other random stuff as well.
- Scripts/run-webkit-tests:
- 7:53 PM Changeset in webkit [37671] by
-
- 1 edit in trunk/JavaScriptCore/ChangeLog
typo in ChangeLog
- 7:51 PM Changeset in webkit [37670] by
-
- 12 edits in trunk/JavaScriptCore
2008-10-17 Gavin Barraclough <barraclough@apple.com>
Optimize op_call by allowing call sites to be directly linked to callees.
For the hot path of op_call, CTI now generates a check (initially for an impossible
value), and the first time the call is executed we attempt to link the call directly
to the callee. WWe can currently only do so if the arity of the caller and callee
match. The (optimized) setup for the call on the hot path is linked directly to
the ctiCode for the callee, without indirection.
Two forms of the slow case of the call are generated, the first will be executed the
first time the call is reached. As well as this path attempting to link the call to
a callee, it also relinks the slow case to a second slow case, which will not continue
to attempt relinking the call. (This policy could be changed in future, but for not
this is intended to prevent thrashing).
If a callee that the caller has been linked to is garbage collected, then the link
in the caller's JIt code will be reset back to a value that cannot match - to prevent
any false positive matches.
~20% progression on deltablue & richards, >12% overall reduction in v8-tests
runtime, one or two percent progression on sunspider.
Reviewed by Oliver Hunt.
- VM/CTI.cpp: (JSC::): (JSC::CTI::emitNakedCall): (JSC::unreachable): (JSC::CTI::compileOpCallInitializeCallFrame): (JSC::CTI::compileOpCallSetupArgs): (JSC::CTI::compileOpCall): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): (JSC::CTI::privateCompile): (JSC::CTI::unlinkCall): (JSC::CTI::linkCall):
- VM/CTI.h:
- VM/CodeBlock.cpp: (JSC::CodeBlock::~CodeBlock): (JSC::CodeBlock::unlinkCallers): (JSC::CodeBlock::derefStructureIDs):
- VM/CodeBlock.h: (JSC::StructureStubInfo::StructureStubInfo): (JSC::CallLinkInfo::CallLinkInfo): (JSC::CodeBlock::addCaller): (JSC::CodeBlock::removeCaller): (JSC::CodeBlock::getStubInfo):
- VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitCall): (JSC::CodeGenerator::emitConstruct):
- VM/Machine.cpp: (JSC::Machine::cti_op_call_profiler): (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_vm_lazyLinkCall): (JSC::Machine::cti_op_construct_JSConstructFast): (JSC::Machine::cti_op_construct_JSConstruct): (JSC::Machine::cti_op_construct_NotJSConstruct):
- VM/Machine.h:
- kjs/JSFunction.cpp: (JSC::JSFunction::~JSFunction):
- kjs/JSFunction.h:
- kjs/nodes.h: (JSC::FunctionBodyNode::):
- masm/X86Assembler.h: (JSC::X86Assembler::getDifferenceBetweenLabels):
- 6:04 PM Changeset in webkit [37669] by
-
- 2 edits in trunk/WebKitTools
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Stephanie Lewis.
- make run-webkit-tests --leaks default to 100 tests per run instead of 1000
This should reduce or eliminate crashes on the buildbot due to
running out of memory while stack logging.
- Scripts/run-webkit-tests:
- 5:08 PM Changeset in webkit [37668] by
-
- 2 edits in trunk/JavaScriptCore
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff Garen.
- remove ASSERT that makes the leaks buildbot cry
- kjs/JSFunction.cpp: (JSC::JSFunction::JSFunction):
- 5:03 PM Changeset in webkit [37667] by
-
- 6 edits in trunk
Reviewed by Kevin Ollivier
Fix wx port's scrollbar and drawing handling after recent changes.
https://bugs.webkit.org/show_bug.cgi?id=21720
- 4:22 PM Changeset in webkit [37666] by
-
- 2 edits in trunk/WebCore
wx build fix. EAppearance -> ControlPart.
- 3:56 PM Changeset in webkit [37665] by
-
- 1 edit37 adds in trunk/LayoutTests
2008-10-17 Pamela Greene <pam@chromium.org>
Add a number of new tests.
See https://bugs.webkit.org/show_bug.cgi?id=21407
Reviewed by Alexey Proskuryakov.
- fast/css/border-height.html: Added.
- fast/dom/Window/orphaned-frame-access-expected.txt: Added.
- fast/dom/Window/orphaned-frame-access.html: Added.
- fast/forms/image-border.html: Added.
- fast/forms/input-field-text-truncated.html: Added.
- fast/forms/input-type-text-min-width.html: Added.
- fast/forms/textarea-scrollbar-height-expected.txt: Added.
- fast/forms/textarea-scrollbar-height.html: Added.
- fast/forms/textarea-width.html: Added.
- fast/overflow/overflow_hidden.html: Added.
- fast/parser/resources/xml-declaration-missing-ending-mark.xml: Added.
- fast/parser/xml-declaration-missing-ending-mark-expected.txt: Added.
- fast/parser/xml-declaration-missing-ending-mark.html: Added.
- fast/text/international/hindi-spacing.html: Added.
- http/tests/misc/crash-multiple-family-fontface-expected.txt: Added.
- http/tests/misc/crash-multiple-family-fontface.html: Added.
- platform/mac/fast/css/border-height-expected.checksum: Added.
- platform/mac/fast/css/border-height-expected.png: Added.
- platform/mac/fast/css/border-height-expected.txt: Added.
- platform/mac/fast/forms/image-border-expected.checksum: Added.
- platform/mac/fast/forms/image-border-expected.png: Added.
- platform/mac/fast/forms/image-border-expected.txt: Added.
- platform/mac/fast/forms/input-field-text-truncated-expected.checksum: Added.
- platform/mac/fast/forms/input-field-text-truncated-expected.png: Added.
- platform/mac/fast/forms/input-field-text-truncated-expected.txt: Added.
- platform/mac/fast/forms/input-type-text-min-width-expected.checksum: Added.
- platform/mac/fast/forms/input-type-text-min-width-expected.png: Added.
- platform/mac/fast/forms/input-type-text-min-width-expected.txt: Added.
- platform/mac/fast/forms/textarea-width-expected.checksum: Added.
- platform/mac/fast/forms/textarea-width-expected.png: Added.
- platform/mac/fast/forms/textarea-width-expected.txt: Added.
- platform/mac/fast/overflow/overflow_hidden-expected.checksum: Added.
- platform/mac/fast/overflow/overflow_hidden-expected.png: Added.
- platform/mac/fast/overflow/overflow_hidden-expected.txt: Added.
- platform/mac/fast/text/international/hindi-spacing-expected.checksum: Added.
- platform/mac/fast/text/international/hindi-spacing-expected.png: Added.
- platform/mac/fast/text/international/hindi-spacing-expected.txt: Added.
- 3:26 PM Changeset in webkit [37664] by
-
- 2 edits in trunk/JavaScriptCore
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich
- don't bother to do arguments tearoff when it will have no effect
~1% on v8 raytrace
- VM/CodeGenerator.cpp: (JSC::CodeGenerator::emitReturn):
- 3:02 PM Changeset in webkit [37663] by
-
- 16 edits in trunk/WebCore
2008-10-17 David Hyatt <hyatt@apple.com>
Eliminate the EAppearance enum in favor of the new ControlPart enum. Cut out the scrollbar
values from the enum since they are handled by ScrollbarTheme instead.
Reviewed by Tim Hatcher
- css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator ControlPart):
- css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle):
- css/CSSValueKeywords.in:
- platform/gtk/RenderThemeGtk.cpp: (WebCore::supportsFocus): (WebCore::RenderThemeGtk::baselinePosition): (WebCore::setToggleSize): (WebCore::RenderThemeGtk::setCheckboxSize): (WebCore::RenderThemeGtk::setRadioSize): (WebCore::RenderThemeGtk::adjustButtonStyle):
- platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::baselinePosition): (WebCore::RenderThemeQt::controlSupportsTints): (WebCore::RenderThemeQt::adjustRepaintRect): (WebCore::RenderThemeQt::isControlStyled): (WebCore::computeSizeBasedOnStyle): (WebCore::RenderThemeQt::paintButton): (WebCore::RenderThemeQt::paintTextField): (WebCore::RenderThemeQt::paintMenuList): (WebCore::RenderThemeQt::supportsFocus): (WebCore::RenderThemeQt::applyTheme): (WebCore::RenderThemeQt::adjustSliderThumbSize):
- platform/qt/RenderThemeQt.h:
- rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): (WebCore::RenderSlider::layout): (WebCore::RenderSlider::setValueForPosition): (WebCore::RenderSlider::setPositionFromValue): (WebCore::RenderSlider::positionForOffset): (WebCore::RenderSlider::currentPosition): (WebCore::RenderSlider::setCurrentPosition): (WebCore::RenderSlider::trackSize):
- rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::paintBorderOnly): (WebCore::RenderTheme::paintDecorations): (WebCore::RenderTheme::isControlContainer): (WebCore::RenderTheme::isControlStyled): (WebCore::RenderTheme::supportsFocusRing): (WebCore::RenderTheme::isDefault):
- rendering/RenderTheme.h:
- rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::isControlStyled): (WebCore::RenderThemeMac::adjustRepaintRect): (WebCore::RenderThemeMac::baselinePosition): (WebCore::RenderThemeMac::controlSupportsTints): (WebCore::RenderThemeMac::adjustButtonStyle): (WebCore::RenderThemeMac::setButtonCellState): (WebCore::RenderThemeMac::popupInternalPaddingLeft): (WebCore::RenderThemeMac::popupInternalPaddingRight): (WebCore::RenderThemeMac::popupInternalPaddingTop): (WebCore::RenderThemeMac::popupInternalPaddingBottom): (WebCore::RenderThemeMac::paintSliderTrack): (WebCore::RenderThemeMac::paintSliderThumb): (WebCore::RenderThemeMac::adjustSliderThumbSize):
- rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::isControlStyled): (WebCore::RenderThemeSafari::adjustRepaintRect): (WebCore::RenderThemeSafari::baselinePosition): (WebCore::RenderThemeSafari::controlSupportsTints): (WebCore::RenderThemeSafari::adjustButtonStyle): (WebCore::RenderThemeSafari::popupInternalPaddingLeft): (WebCore::RenderThemeSafari::popupInternalPaddingRight): (WebCore::RenderThemeSafari::popupInternalPaddingTop): (WebCore::RenderThemeSafari::popupInternalPaddingBottom): (WebCore::RenderThemeSafari::paintSliderTrack): (WebCore::RenderThemeSafari::adjustSliderThumbSize):
- rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::supportsFocus): (WebCore::RenderThemeWin::determineClassicState): (WebCore::RenderThemeWin::getClassicThemeData): (WebCore::RenderThemeWin::getThemeData): (WebCore::drawControl): (WebCore::RenderThemeWin::paintSliderTrack): (WebCore::RenderThemeWin::adjustSliderThumbSize):
- rendering/RenderThemeWin.h:
- rendering/style/RenderStyle.h: (WebCore::InheritedFlags::hasAppearance): (WebCore::InheritedFlags::appearance): (WebCore::InheritedFlags::setAppearance): (WebCore::InheritedFlags::initialAppearance):
- rendering/style/RenderStyleConstants.h:
- 2:26 PM Changeset in webkit [37662] by
-
- 6 edits4 adds in trunk/WebCore
2008-10-17 David Hyatt <hyatt@apple.com>
Beginning of the RenderTheme re-architecture (to share more code). Add the new Theme API header
file. Add new USE(NEW_THEME) switch that is enabled on Mac. The Mac theme will be converted first.
Reviewed by Tim Hatcher
- WebCore.vcproj/WebCore.vcproj:
- WebCore.xcodeproj/project.pbxproj:
- config.h:
- platform/Theme.h: Added. (WebCore::Theme::Theme): (WebCore::Theme::~Theme): (WebCore::Theme::baselinePositionAdjustment): (WebCore::Theme::controlHasInactiveAppearance): (WebCore::Theme::controlsCanHaveInactiveAppearance): (WebCore::Theme::controlsCanHaveHoveredAppearance): (WebCore::Theme::controlDrawsBorder): (WebCore::Theme::controlDrawsBackground): (WebCore::Theme::controlDrawsFocusOutline): (WebCore::Theme::selectionColor): (WebCore::Theme::textSearchHighlightColor): (WebCore::Theme::systemColor): (WebCore::Theme::systemFont): (WebCore::Theme::caretBlinkFrequency): (WebCore::Theme::themeChanged): (WebCore::Theme::controlSize): (WebCore::Theme::controlFont): (WebCore::Theme::controlPadding): (WebCore::Theme::controlInternalPadding): (WebCore::Theme::controlBorder): (WebCore::Theme::controlBorderRadius): (WebCore::Theme::paint): (WebCore::Theme::inflateControlPaintRect):
- platform/ThemeTypes.h: Added. (WebCore::): (WebCore::ControlBox::ControlBox): (WebCore::ControlBox::top): (WebCore::ControlBox::right): (WebCore::ControlBox::bottom): (WebCore::ControlBox::left):
- platform/mac/ThemeMac.h: Added. (WebCore::ThemeMac::ThemeMac): (WebCore::ThemeMac::~ThemeMac):
- platform/mac/ThemeMac.mm: Added. (WebCore::platformTheme):
- rendering/RenderTheme.cpp: (WebCore::RenderTheme::RenderTheme):
- rendering/RenderTheme.h:
- 2:22 PM Changeset in webkit [37661] by
-
- 4 edits in trunk/WebKit/win
2008-10-16 Kevin McCullough <kmccullough@apple.com>
Reviewed by Steve Falkenburg.
<rdar://problem/6292718>
Implement a standard way to get the UA given an application name.
- Interfaces/IWebViewPrivate.idl:
- WebView.cpp: (WebView::standardUserAgentWithApplicationName):
- WebView.h:
- 2:16 PM Changeset in webkit [37660] by
-
- 6 edits in trunk
2008-10-17 Marco Barisione <marco.barisione@collabora.co.uk>
Reviewed by Sam Weinig. Landed by Jan Alonzo.
https://bugs.webkit.org/show_bug.cgi?id=21603
[GTK] Minor fixes to GOwnPtr
- wtf/GOwnPtr.cpp: (WTF::GError): (WTF::GList): (WTF::GCond): (WTF::GMutex): (WTF::GPatternSpec): (WTF::GDir):
- wtf/GOwnPtr.h: (WTF::freeOwnedGPtr): (WTF::GOwnPtr::~GOwnPtr): (WTF::GOwnPtr::outPtr): (WTF::GOwnPtr::set): (WTF::GOwnPtr::clear):
- wtf/Threading.h:
2008-10-17 Marco Barisione <marco.barisione@collabora.co.uk>
Reviewed by Sam Weinig. Landed by Jan Alonzo.
https://bugs.webkit.org/show_bug.cgi?id=21603
[GTK] Minor fixes to GOwnPtr
- platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: (WebCore::mediaPlayerPrivateErrorCallback):
- 2:04 PM Changeset in webkit [37659] by
-
- 3 edits in trunk/WebCore
Recompile the JavaScript functions when removing any listener, so functions that are
not being debugged can resume normal speed again.
Reviewed by Geoffrey Garen.
- bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::globalExec): Changed an assert into an if check. This assert was firing when closing the window and having the recompile fire after. This was an overzelious assert now.
- inspector/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::didRemoveListener): Start the recompile timer. (WebCore::JavaScriptDebugServer::didRemoveLastListener): Removed the recompile timer start.
- 1:17 PM Changeset in webkit [37658] by
-
- 3 edits in trunk/WebKit/win
Reviewed by Sam Weinig.
- export WTF::initializeOnMainThread()
- WebKit.vcproj/WebKit.def:
- WebKit.vcproj/WebKit_debug.def:
- 11:07 AM Changeset in webkit [37657] by
-
- 2 edits in trunk/LayoutTests
2008-10-17 Pamela Greene <pam@chromium.org>
Fix potential race by running two passes of test to defer notifyDone.
See https://bugs.webkit.org/show_bug.cgi?id=21576
Reviewed by Timothy Hatcher.
- fast/history/resources/history_reload_window.html:
- 9:51 AM Changeset in webkit [37656] by
-
- 3 edits in trunk/WebCore
Fixes a regression where starting a debugging session in
another Web Inspector window would not show any scripts.
Also only attach the debugger to only the required Pages.
Reviewed by Darin Adler.
- inspector/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::addListener): Add an assert and remove the call to willAddFirstListener(). Add a call to didAddListener(). (WebCore::JavaScriptDebugServer::removeListener): Add an assert and call to didRemoveListener(). (WebCore::JavaScriptDebugServer::pageCreated): Attach the debugger if there is a listener interested in the new Page. (WebCore::JavaScriptDebugServer::hasListenersInterestedInPage): Use hasGlobalListeners() instead of isEmpty(). (WebCore::JavaScriptDebugServer::sourceParsed): Ditto. (WebCore::JavaScriptDebugServer::didAddListener): Added. Attach the debugger to the page if non-null, or all pages if page is null. (WebCore::JavaScriptDebugServer::didRemoveListener): Added. Detach the debugger only if there are no interested listeners. (WebCore::JavaScriptDebugServer::didRemoveLastListener): Remove the call to Page::setDebuggerForAllPages().
- inspector/JavaScriptDebugServer.h: (WebCore::JavaScriptDebugServer::hasGlobalListeners): Added.
- 8:56 AM Changeset in webkit [37655] by
-
- 2 edits in trunk/WebCore
Reviewed by Timothy Hatcher.
Have ImageDocument generate its own filename for the title of images
without relying on the suggested filename from the network layer, which
may be nonexistant or not relevant.
https://bugs.webkit.org/show_bug.cgi?id=21565
- loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish):
- 6:35 AM Changeset in webkit [37654] by
-
- 5 edits in trunk/WebCore
Non-Mac build fix.
- GNUmakefile.am:
- WebCore.pro:
- WebCore.vcproj/WebCore.vcproj:
- WebCoreSources.bkl: Added ActiveDOMObject to the build.
- 4:55 AM Changeset in webkit [37653] by
-
- 5 edits in trunk/JavaScriptCore
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- speed up transitions that resize the property storage a fair bit
~3% speedup on v8 RayTrace benchmark, ~1% on DeltaBlue
- VM/CTI.cpp: (JSC::resizePropertyStorage): renamed from transitionObject, and reduced to just resize the object's property storage with one inline call. (JSC::CTI::privateCompilePutByIdTransition): Use a separate function for property storage resize, but still do all the rest of the work in assembly in that case, and pass the known compile-time constants of old and new size rather than structureIDs, saving a bunch of redundant memory access.
- kjs/JSObject.cpp: (JSC::JSObject::allocatePropertyStorage): Just call the inline version.
- kjs/JSObject.h: (JSC::JSObject::allocatePropertyStorageInline): Inline version of allocatePropertyStorage
- masm/X86Assembler.h: (JSC::X86Assembler::): (JSC::X86Assembler::pushl_i32): Add code to assmeble push of a constant; code originally by Cameron Zwarich.
- 3:46 AM Changeset in webkit [37652] by
-
- 2 edits in trunk/JavaScriptCore
2008-10-17 Cameron Zwarich <zwarich@apple.com>
Reviewed by Maciej Stachowiak.
Remove some C style casts.
- masm/X86Assembler.h: (JSC::JITCodeBuffer::putIntUnchecked): (JSC::X86Assembler::link): (JSC::X86Assembler::linkAbsoluteAddress): (JSC::X86Assembler::getRelocatedAddress):
- 3:15 AM Changeset in webkit [37651] by
-
- 3 edits in trunk/JavaScriptCore
2008-10-17 Cameron Zwarich <zwarich@apple.com>
Rubber-stamped by Maciej Stachowiak.
Remove some C style casts.
- VM/CTI.cpp: (JSC::CTI::patchGetByIdSelf): (JSC::CTI::patchPutByIdReplace):
- VM/Machine.cpp: (JSC::Machine::tryCTICachePutByID): (JSC::Machine::tryCTICacheGetByID): (JSC::Machine::cti_op_put_by_id): (JSC::Machine::cti_op_put_by_id_fail): (JSC::Machine::cti_op_get_by_id): (JSC::Machine::cti_op_get_by_id_fail):
- 2:06 AM Changeset in webkit [37650] by
-
- 3 edits in trunk/JavaScriptCore
2008-10-17 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- Avoid restoring the caller's 'r' value in op_ret https://bugs.webkit.org/show_bug.cgi?id=21319
This patch stops writing the call frame at call and return points;
instead it does so immediately before any CTI call.
0.5% speedup or so on the v8 benchmark
- VM/CTI.cpp: (JSC::CTI::emitCTICall): (JSC::CTI::compileOpCall): (JSC::CTI::emitSlowScriptCheck): (JSC::CTI::compileBinaryArithOpSlowCase): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): (JSC::CTI::privateCompile):
- VM/CTI.h:
- 1:10 AM Changeset in webkit [37649] by
-
- 10 edits2 adds in trunk/WebCore
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=21642
Abstract out active object tracking
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMBinding.cpp: (WebCore::markActiveObjectsForDocument):
- dom/ActiveDOMObject.cpp: Added. (WebCore::ActiveDOMObject::ActiveDOMObject): (WebCore::ActiveDOMObject::~ActiveDOMObject): (WebCore::ActiveDOMObject::contextDestroyed): (WebCore::ActiveDOMObject::stop):
- dom/ActiveDOMObject.h: Added. (WebCore::ActiveDOMObject::document): (WebCore::ActiveDOMObject::hasPendingActivity): (WebCore::ActiveDOMObject::setPendingActivity): (WebCore::ActiveDOMObject::unsetPendingActivity):
- dom/Document.cpp: (WebCore::Document::~Document): (WebCore::Document::stopActiveDOMObjects): (WebCore::Document::createdActiveDOMObject): (WebCore::Document::destroyedActiveDOMObject):
- dom/Document.h: (WebCore::Document::activeDOMObjects):
- dom/MessagePort.cpp: (WebCore::MessagePort::contextDestroyed):
- dom/MessagePort.h:
- loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading):
- xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::XMLHttpRequest): (WebCore::XMLHttpRequest::~XMLHttpRequest): (WebCore::XMLHttpRequest::associatedFrame): (WebCore::XMLHttpRequest::responseXML): (WebCore::XMLHttpRequest::callReadyStateChangeListener): (WebCore::XMLHttpRequest::initSend): (WebCore::XMLHttpRequest::send): (WebCore::XMLHttpRequest::createRequest): (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest): (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight): (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult): (WebCore::XMLHttpRequest::loadRequestSynchronously): (WebCore::XMLHttpRequest::loadRequestAsynchronously): (WebCore::XMLHttpRequest::dropProtection): (WebCore::XMLHttpRequest::setRequestHeader): (WebCore::XMLHttpRequest::processSyncLoadResults): (WebCore::XMLHttpRequest::didFinishLoading): (WebCore::XMLHttpRequest::didFinishLoadingPreflight): (WebCore::XMLHttpRequest::willSendRequest): (WebCore::XMLHttpRequest::accessControlCheck): (WebCore::XMLHttpRequest::didReceiveResponsePreflight): (WebCore::XMLHttpRequest::stop): (WebCore::XMLHttpRequest::contextDestroyed):
- xml/XMLHttpRequest.h: Move activity tracking to a new ActiveDOMObject class.
- 1:04 AM Changeset in webkit [37648] by
-
- 2 edits in trunk/JavaScriptCore
2008-10-17 Cameron Zwarich <zwarich@apple.com>
Reviewed by Sam Weinig.
Make WREC require CTI because it won't actually compile otherwise.
- wtf/Platform.h:
Oct 16, 2008:
- 8:24 PM Changeset in webkit [37647] by
-
- 6 edits in trunk/JavaScriptCore
2008-10-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff Garen.
- fixed <rdar://problem/5806316> JavaScriptCore should not force building with gcc 4.0
- use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
This time there is no performance regression; we can avoid having
to use the fastcall calling convention for CTI functions by using
varargs to prevent the compiler from moving things around on the
stack.
- Configurations/DebugRelease.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
- VM/CTI.cpp:
- VM/Machine.h:
- wtf/Platform.h:
- 8:05 PM Changeset in webkit [37646] by
-
- 2 edits in trunk/JavaScriptCore
2008-10-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver Hunt.
- fix for REGRESSION: r37631 causing crashes on buildbot https://bugs.webkit.org/show_bug.cgi?id=21682
- kjs/collector.cpp: (JSC::Heap::collect): Avoid crashing when a GC occurs while no global objects are live.
- 7:57 PM Changeset in webkit [37645] by
-
- 8 edits in trunk/JavaScriptCore
2008-10-16 Sam Weinig <sam@webkit.org>
Reviewed by Maciej Stachowiak.
Fix for https://bugs.webkit.org/show_bug.cgi?id=21683
Don't create intermediate StructureIDs for builtin objects
First step in reduce number of StructureIDs created when initializing the
JSGlobalObject.
- In order to avoid creating the intermediate StructureIDs use the new putDirectWithoutTransition and putDirectFunctionWithoutTransition to add properties to JSObjects without transitioning the StructureID. This patch just implements this strategy for ObjectPrototype but alone reduces the number of StructureIDs create for about:blank by 10, from 142 to 132.
- kjs/JSGlobalObject.cpp: (JSC::JSGlobalObject::reset):
- kjs/JSObject.cpp: (JSC::JSObject::putDirectFunctionWithoutTransition):
- kjs/JSObject.h: (JSC::JSObject::putDirectWithoutTransition):
- kjs/ObjectPrototype.cpp: (JSC::ObjectPrototype::ObjectPrototype):
- kjs/ObjectPrototype.h:
- kjs/StructureID.cpp: (JSC::StructureID::addPropertyWithoutTransition):
- kjs/StructureID.h:
- 6:20 PM Changeset in webkit [37644] by
-
- 13 edits in trunk/WebCore
2008-10-16 David Hyatt <hyatt@apple.com>
Simplify styleForRenderer to avoid confusion. Callers in the SVG filter code thought "forRenderer" meant
they would be given a style that corresponded to the RenderObject* passed in. This is not what the code
did though. This patch removes the renderer argument and the Element subclass shadow implementation
so that confusion like this can't occur again.
Reviewed by Oliver Hunt
- dom/Element.cpp:
- dom/Element.h:
- dom/Node.cpp: (WebCore::Node::createRendererIfNeeded): (WebCore::Node::styleForRenderer):
- dom/Node.h:
- html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::attach):
- html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::attach):
- svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::canvasResource):
- svg/SVGFEDiffuseLightingElement.cpp: (WebCore::SVGFEDiffuseLightingElement::build):
- svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::build):
- svg/SVGFESpecularLightingElement.cpp: (WebCore::SVGFESpecularLightingElement::build):
- svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::buildStops):
- svg/SVGUseElement.cpp: (WebCore::SVGUseElement::attachShadowTree):
- 6:04 PM Changeset in webkit [37643] by
-
- 3 edits in trunk/WebCore/svg
Add fixme about this filter code's style gyrations making no sense whatsoever.
- 5:54 PM Changeset in webkit [37642] by
-
- 1 edit in trunk/WebCore/svg/SVGFESpecularLightingElement.cpp
Fix Qt bustage. Why are filters on in Qt?
- 5:48 PM Changeset in webkit [37641] by
-
- 1 edit in trunk/WebCore/svg/SVGFEFloodElement.cpp
Fix Qt bustage. Why are filters on in Qt?
- 5:47 PM Changeset in webkit [37640] by
-
- 1 edit in trunk/WebCore/svg/SVGFEDiffuseLightingElement.cpp
Fix Qt bustage. Why are filters on in Qt?
- 5:46 PM Changeset in webkit [37639] by
-
- 1 edit in trunk/WebCore/svg/SVGFEDiffuseLightingElement.cpp
Fix Qt bustage. Why are filters on in Qt?
- 5:46 PM Changeset in webkit [37638] by
-
- 1 edit in trunk/WebCore/svg/SVGFEDiffuseLightingElement.cpp
Fix Qt bustage. Why are filters on in Qt?
- 5:25 PM Changeset in webkit [37637] by
-
- 62 edits in trunk/WebCore
2008-10-16 David Hyatt <hyatt@apple.com>
Make RenderStyle inherit from RefCounted so that it works with RefPtr. RenderStyle was being malloced
out of the RenderArena. Years and years ago (before TCMalloc), the plan was to make RenderStyles and
all their associated sub-structs use the arena. However only the RenderStyle itself was ever changed
to use the arena.
At a later point style sharing was implemented, which made using the arena for styles pretty pointless,
as the bulk of the styles on a given page are actually shared. Not ever making the sub-structs use the
arena also limited the usefulness.
Now that we have RefPtr/PassRefPtr to eliminate manual ref/deref and now that we use TCMalloc for fast
mallocs, there is no reason to keep RenderStyles in the arena. The benefits of being able to eliminate
manual ref/deref far outweigh keeping them in the arena.
Reviewed by Adam Roben
- css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::CSSStyleSelector): (WebCore::CSSStyleSelector::~CSSStyleSelector): (WebCore::CSSStyleSelector::styleForElement): (WebCore::CSSStyleSelector::keyframeStylesForAnimation): (WebCore::CSSStyleSelector::pseudoStyleForElement): These methods now return a PassRefPtr. They will null out the m_style variable as they hand it back so that it isn't left pointing to the previous style resolve RenderStyle (which is what the old code did).
(WebCore::CSSStyleSelector::updateFont):
(WebCore::CSSStyleSelector::checkSelector):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::mapFillSize):
(WebCore::CSSStyleSelector::mapFillXPosition):
(WebCore::CSSStyleSelector::mapFillYPosition):
- css/CSSStyleSelector.h: (WebCore::CSSStyleSelector::style):
- dom/Document.cpp: (WebCore::Document::recalcStyle):
- dom/Element.cpp: (WebCore::Element::styleForRenderer): (WebCore::Element::recalcStyle): (WebCore::Element::computedStyle):
- dom/Element.h:
- dom/ElementRareData.h: (WebCore::ElementRareData::ElementRareData): (WebCore::ElementRareData::resetComputedStyle):
- dom/Node.cpp: (WebCore::Node::diff): (WebCore::Node::createRendererIfNeeded): (WebCore::Node::styleForRenderer): (WebCore::Node::setRenderStyle):
- dom/Node.h:
- html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::setFont):
- html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::attach): (WebCore::HTMLOptGroupElement::detach): (WebCore::HTMLOptGroupElement::setRenderStyle): (WebCore::HTMLOptGroupElement::nonRendererRenderStyle):
- html/HTMLOptGroupElement.h:
- html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::attach): (WebCore::HTMLOptionElement::detach): (WebCore::HTMLOptionElement::setRenderStyle): (WebCore::HTMLOptionElement::nonRendererRenderStyle):
- html/HTMLOptionElement.h:
- page/animation/AnimationBase.h: (WebCore::AnimationBase::animate):
- page/animation/AnimationController.cpp: (WebCore::AnimationController::updateAnimations):
- page/animation/AnimationController.h:
- page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimationPrivate::updateTransitions): (WebCore::CompositeAnimationPrivate::updateKeyframeAnimations): (WebCore::CompositeAnimationPrivate::animate): (WebCore::CompositeAnimation::animate):
- page/animation/CompositeAnimation.h:
- page/animation/ImplicitAnimation.cpp: (WebCore::ImplicitAnimation::ImplicitAnimation): (WebCore::ImplicitAnimation::~ImplicitAnimation): (WebCore::ImplicitAnimation::animate): (WebCore::ImplicitAnimation::reset): (WebCore::ImplicitAnimation::isTargetPropertyEqual): (WebCore::ImplicitAnimation::blendPropertyValueInStyle):
- page/animation/ImplicitAnimation.h: (WebCore::ImplicitAnimation::create):
- page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::KeyframeAnimation): (WebCore::KeyframeAnimation::~KeyframeAnimation): (WebCore::KeyframeAnimation::animate): (WebCore::KeyframeAnimation::validateTransformFunctionList):
- page/animation/KeyframeAnimation.h: (WebCore::KeyframeAnimation::create): (WebCore::KeyframeAnimation::unanimatedStyle):
- rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint):
- rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): (WebCore::MediaControlInputElement::MediaControlInputElement):
- rendering/RenderBlock.cpp: (WebCore::RenderBlock::styleDidChange): (WebCore::RenderBlock::updateFirstLetter):
- rendering/RenderContainer.cpp: (WebCore::RenderContainer::addChild): (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
- rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement): (WebCore::RenderFileUploadControl::createButtonStyle):
- rendering/RenderFileUploadControl.h:
- rendering/RenderFlow.cpp: (WebCore::RenderFlow::createAnonymousFlow):
- rendering/RenderFlow.h:
- rendering/RenderInline.cpp: (WebCore::RenderInline::addChildToFlow):
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateScrollCornerStyle): (WebCore::RenderLayer::updateResizerStyle): (WebCore::RenderLayer::updateReflectionStyle):
- rendering/RenderListItem.cpp: (WebCore::RenderListItem::styleDidChange):
- rendering/RenderMedia.cpp: (WebCore::RenderMedia::createPanel): (WebCore::RenderMedia::createTimeDisplay): (WebCore::RenderMedia::changeOpacity):
- rendering/RenderObject.cpp: (WebCore::RenderObject::selectionBackgroundColor): (WebCore::RenderObject::selectionForegroundColor): (WebCore::RenderObject::createAnonymousBlock): (WebCore::RenderObject::setAnimatableStyle): (WebCore::RenderObject::setStyle): (WebCore::RenderObject::setStyleInternal): (WebCore::RenderObject::arenaDelete): (WebCore::RenderObject::firstLineStyle): (WebCore::RenderObject::getPseudoStyle):
- rendering/RenderObject.h: (WebCore::RenderObject::style):
- rendering/RenderSVGBlock.cpp: (WebCore::RenderSVGBlock::setStyle):
- rendering/RenderSVGBlock.h:
- rendering/RenderScrollbar.cpp: (WebCore::RenderScrollbar::getScrollbarPseudoStyle): (WebCore::RenderScrollbar::updateScrollbarPart):
- rendering/RenderScrollbar.h:
- rendering/RenderSlider.cpp: (WebCore::RenderSlider::styleDidChange): (WebCore::RenderSlider::createThumbStyle): (WebCore::RenderSlider::updateFromElement):
- rendering/RenderSlider.h:
- rendering/RenderTable.cpp: (WebCore::RenderTable::addChild):
- rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::addChild):
- rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::addChild):
- rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::styleDidChange): (WebCore::RenderTextControl::createInnerBlockStyle): (WebCore::RenderTextControl::createInnerTextStyle): (WebCore::RenderTextControl::createResultsButtonStyle): (WebCore::RenderTextControl::createCancelButtonStyle): (WebCore::RenderTextControl::createSubtreeIfNeeded): (WebCore::RenderTextControl::updatePlaceholderVisibility):
- rendering/RenderTextControl.h:
- rendering/TextControlInnerElements.cpp: (WebCore::TextControlInnerElement::attachInnerElement):
- rendering/TextControlInnerElements.h:
- rendering/style/KeyframeList.cpp: (WebCore::KeyframeList::clear): (WebCore::KeyframeList::operator==): (WebCore::KeyframeList::insert):
- rendering/style/KeyframeList.h: (WebCore::KeyframeValue::KeyframeValue): (WebCore::KeyframeValue::~KeyframeValue): (WebCore::KeyframeValue::key): (WebCore::KeyframeValue::style):
- rendering/style/RenderStyle.cpp: (WebCore::defaultStyle): (WebCore::RenderStyle::create): (WebCore::RenderStyle::createDefaultStyle): (WebCore::RenderStyle::clone): (WebCore::RenderStyle::RenderStyle): (WebCore::RenderStyle::getCachedPseudoStyle): (WebCore::RenderStyle::addCachedPseudoStyle):
- rendering/style/RenderStyle.h: (WebCore::): (WebCore::InheritedFlags::operator!=):
- svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::canvasResource):
- svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::buildStops):
- svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::resolveStyle):
- svg/SVGStyledElement.h:
- svg/SVGUseElement.cpp: (WebCore::SVGUseElement::recalcStyle): (WebCore::SVGUseElement::attachShadowTree):
- 12:08 PM Changeset in webkit [37636] by
-
- 2 edits in trunk/WebCore
2008-10-16 Kenneth Russell <kenneth.russell@sun.com>
Reviewed and landed by Anders Carlsson.
https://bugs.webkit.org/show_bug.cgi?id=21587
NPN_PluginThreadAsyncCall does not work properly
- plugins/PluginMainThreadScheduler.cpp: (WebCore::PluginMainThreadScheduler::dispatchCalls): Make sure to set m_callPending to false once the queue has been cleared.
- 11:57 AM Changeset in webkit [37635] by
-
- 2 edits in trunk/WebKitTools
2008-10-16 Jan Michael Alonzo <jmalonzo@webkit.org>
Gtk build fix. Not reviewed.
- DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: (LayoutTestController::setSmartInsertDeleteEnabled):
- 9:12 AM Changeset in webkit [37634] by
-
- 2 edits in trunk/LayoutTests
2008-10-16 Julien Chaffraix <jchaffraix@pleyo.com>
Rubber-stamped by Alexey Proskuryakov.
Remove duplicated code in this test.
- http/tests/xmlhttprequest/xmlhttprequest-post-crash.html:
- 8:52 AM Changeset in webkit [37633] by
-
- 8 edits2 adds in trunk
WebKitTools:
2008-10-15 Glenn Wilson <gwilson@google.com>
Added new method to allow tests to disable smart editing in the course of a test.
This is a possible solution to bug .20655
Reviewed by Tim Hatcher.
- DumpRenderTree/LayoutTestController.cpp: (setSmartInsertDeleteEnabledCallback): new method (LayoutTestController::staticFunctions): added new method to static list of callbacks
- DumpRenderTree/LayoutTestController.h: added signature of new method
- DumpRenderTree/mac/DumpRenderTree.mm: (resetWebViewToConsistentStateBeforeTesting): added state resetting
- DumpRenderTree/mac/LayoutTestControllerMac.mm: (LayoutTestController::setSmartInsertDeleteEnabled): added new method
- DumpRenderTree/win/DumpRenderTree.cpp: (resetWebViewToConsistentStateBeforeTesting): added state resetting
- DumpRenderTree/win/LayoutTestControllerWin.cpp: (LayoutTestController::setSmartInsertDeleteEnabled): added new method
LayoutTests:
2008-10-15 Glenn Wilson <gwilson@google.com>
Added tests to verify that smart editing can be disabled for some tests.
Reviewed by Tim Hatcher.
- editing/deleting/smart-editing-disabled-expected.txt: Added.
- editing/deleting/smart-editing-disabled.html: Added.
- 4:11 AM Changeset in webkit [37632] by
-
- 2 edits in trunk/JavaScriptCore
2008-10-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Cameron Zwarich.
- fix for: REGRESSION: over 100 StructureIDs leak loading about:blank (result of fix for bug 21633)
Apparent slight progression (< 0.5%) on v8 benchmarks and SunSpider.
- kjs/StructureID.cpp: (JSC::StructureID::~StructureID): Don't deref this object's parent's pointer to itself from the destructor; that doesn't even make sense. (JSC::StructureID::addPropertyTransition): Don't refer the single transition; the rule is that parent StructureIDs are ref'd but child ones are not. Refing the child creates a cycle.
- 1:00 AM Changeset in webkit [37631] by
-
- 12 edits in trunk
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=21609
Make MessagePorts protect their peers across heaps
- JavaScriptCore.exp:
- kjs/JSGlobalObject.cpp: (JSC::JSGlobalObject::markCrossHeapDependentObjects):
- kjs/JSGlobalObject.h:
- kjs/collector.cpp: (JSC::Heap::collect): Before GC sweep phase, a function supplied by global object is now called for all global objects in the heap, making it possible to implement cross-heap dependencies.
WebCore:
- dom/MessagePort.cpp: (WebCore::MessagePort::MessagePort):
- dom/MessagePort.h: (WebCore::MessagePort::setJSWrapperIsKnownToBeInaccessible): (WebCore::MessagePort::jsWrapperIsKnownToBeInaccessible): Track objects whose JS wrappers are no longer reachable in MessagePort. Unfortunately, this means that the implementation object knows about JS bindings - but it is not possible to access JS wrappers from another heap/thread.
- bindings/js/JSDOMBinding.cpp: (WebCore::markCrossHeapDependentObjectsForDocument):
- bindings/js/JSDOMBinding.h:
- bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::markCrossHeapDependentObjects):
- bindings/js/JSDOMWindowBase.h: Implement cross-heap dependency tracking for entangled MessagePorts. If a wrapper object hasn't been marked normally, it is marked as inaccessible. It is then marked manually, as long as its entangled port is accessible itself.