Timeline


and

09/10/08:

22:28 Changeset [36327] by cwzwarich@webkit.org
  • 4 edits in trunk/JavaScriptCore

2008-09-10 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Rubber-stamped by Oliver Hunt.

Fix a typo by renaming the overloaded orl_rr that takes an immediate to
orl_i32r.

  • VM/CTI.cpp: (JSC::CTI::emitFastArithPotentiallyReTagImmediate):
  • masm/X86Assembler.h: (JSC::X86Assembler::orl_i32r):
  • wrec/WREC.cpp: (JSC::WRECGenerator::generatePatternCharacter): (JSC::WRECGenerator::generateCharacterClassInverted):
21:01 Changeset [36326] by weinig@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

2008-09-10 Sam Weinig <sam@webkit.org>

Rubber-stamped by David Hyatt.

Add additional test by Feng Qian.

  • fast/dom/StyleSheet/ownerNode-lifetime-2-expected.txt: Added.
  • fast/dom/StyleSheet/ownerNode-lifetime-2.html: Added.
19:42 Changeset [36325] by weinig@apple.com
  • 9 edits in trunk/JavaScriptCore

2008-09-10 Sam Weinig <sam@webkit.org>

Reviewed by Geoff Garen.

Add inline property storage for JSObject.

1.2% progression on Sunspider. .5% progression on the v8 test suite.

  • JavaScriptCore.exp:
  • VM/CTI.cpp: (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain):
  • kjs/JSObject.cpp: (JSC::JSObject::mark): There is no reason to check storageSize now that we start from 0. (JSC::JSObject::allocatePropertyStorage): Allocates/reallocates heap storage.
  • kjs/JSObject.h: (JSC::JSObject::offsetForLocation): m_propertyStorage is not an OwnArrayPtr now so there is no reason to .get() (JSC::JSObject::usingInlineStorage): (JSC::JSObject::JSObject): Start with m_propertyStorage pointing to the inline storage. (JSC::JSObject::~JSObject): Free the heap storage if not using the inline storage. (JSC::JSObject::putDirect): Switch to the heap storage only when we know we know that we are about to add a property that will overflow the inline storage.
  • kjs/PropertyMap.cpp: (JSC::PropertyMap::createTable): Don't allocate the propertyStorage, that is now handled by JSObject. (JSC::PropertyMap::rehash): PropertyStorage is not a OwnArrayPtr anymore.
  • kjs/PropertyMap.h: (JSC::PropertyMap::storageSize): Rename from markingCount.
  • kjs/StructureID.cpp: (JSC::StructureID::addPropertyTransition): Don't resize the property storage if we are using inline storage.
  • kjs/StructureID.h:
19:10 Changeset [36324] by oliver@apple.com
  • 3 edits in trunk/JavaScriptCore

Inline immediate number version of op_mul.

Reviewed by Geoff Garen

Renamed mull_rr to imull_rr as that's what it's
actually doing, and added imull_i32r for the constant
case immediate multiply.

1.1% improvement to SunSpider.

13:30 Changeset [36323] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-09-10 Alp Toker <alp@nuanti.com>

Reviewed by Mark Rowe.

https://bugs.webkit.org/show_bug.cgi?id=17267
[GTK] Primary selection/clipboard support

Implement primary selection support (copying only, no paste yet).

  • WebCoreSupport/EditorClientGtk.cpp: (WebKit::clipboard_get_contents_cb): (WebKit::clipboard_clear_contents_cb): (WebKit::EditorClient::respondToChangedSelection):
13:22 ProposedWebInspectorRearchitecting edited by ojan@chromium.org
(diff)
12:48 ProposedWebInspectorRearchitecting created by ojan@chromium.org
12:30 Web Inspector edited by ojan@chromium.org
(diff)
11:21 Changeset [36322] by mitz@apple.com
  • 8 edits in trunk/WebCore

Reviewed by Sam Weinig.

  • clean up AnimationBase
  • page/animation/AnimationBase.cpp:
  • page/animation/AnimationBase.h:
  • page/animation/CompositeAnimation.cpp:
  • page/animation/ImplicitAnimation.cpp:
  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp:
  • page/animation/KeyframeAnimation.h:
11:19 Changeset [36321] by mitz@apple.com
  • 17 edits in trunk/WebCore

Revert erroneous checkin

11:17 Changeset [36320] by mitz@apple.com
  • 15 edits in trunk/WebCore

Reviewed by Sam Weinig.

  • clean up AnimationBase
  • page/animation/AnimationBase.cpp:
  • page/animation/AnimationBase.h:
  • page/animation/CompositeAnimation.cpp:
  • page/animation/ImplicitAnimation.cpp:
  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp:
  • page/animation/KeyframeAnimation.h:
09:42 Changeset [36319] by ap@webkit.org
  • 4 edits
    15 adds in trunk

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=20741
REGRESSION: ISO-8859-8-I encoding is registered incorrectly

Turns out that there were no real behavior changes for 8859-8, as it was only a debug-only
check to ignore this specific registration that was failing. Yet, I decided to add a bunch of
tests for ISO-8859-8 encoding aliases, as we handle them in a quite complicated manner.

I also found and fixed a potential crasher for non-Mac ports.

Tests: fast/encoding/hebrew/8859-8-e.html

fast/encoding/hebrew/8859-8-i.html
fast/encoding/hebrew/8859-8.html
fast/encoding/hebrew/csISO88598I.html
fast/encoding/hebrew/hebrew.html
fast/encoding/hebrew/iso-ir-138.html
fast/encoding/hebrew/logical.html

  • platform/text/TextEncodingRegistry.cpp: (WebCore::checkExistingName): Check for iso-8859-8 (case-insensitively, because different versions of ICU report this MIME name in different case).
  • platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames): Updated some comments. (WebCore::TextCodecICU::registerExtendedCodecs): Try both MIME and IANA names here, too. There are four names in ICU that only have MIME names (x-mac-* ones), so we could end up with an encoding map entry, but no codec for these. This was not an issue on the Mac, as we also support these via TEC (which we should stop doing), but on Windows, this would likely crash.
03:15 Changeset [36318] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-10 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Mac build fix.

02:23 Changeset [36317] by oliver@apple.com
  • 9 edits in trunk/JavaScriptCore

Add optimised access to known properties on the global object.

Reviewed by Maciej Stachowiak

Improve cross scope access to the global object by emitting
code to access it directly rather than by walking the scope chain.

This is a 0.8% win in SunSpider and a 1.7% win in the v8 benchmarks.

01:42 Changeset [36316] by mjs@apple.com
  • 17 edits in trunk/JavaScriptCore

2008-09-10 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver.


  • enable polymorphic inline caching of properties of primitives


1.012x speedup on SunSpider.

We create special structure IDs for JSString and
JSNumberCell. Unlike normal structure IDs, these cannot hold the
true prototype. Due to JS autoboxing semantics, the prototype used
when looking up string or number properties depends on the lexical
global object of the call site, not the creation site. Thus we
enable StructureIDs to handle this quirk for primitives.


Everything else should be straightforward.


  • VM/CTI.cpp: (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain):
  • VM/CTI.h: (JSC::CTI::compileGetByIdProto): (JSC::CTI::compileGetByIdChain):
  • VM/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
  • VM/Machine.cpp: (JSC::Machine::Machine): (JSC::cachePrototypeChain): (JSC::Machine::tryCachePutByID): (JSC::Machine::tryCacheGetByID): (JSC::Machine::privateExecute): (JSC::Machine::tryCTICachePutByID): (JSC::Machine::tryCTICacheGetByID):
  • kjs/GetterSetter.h: (JSC::GetterSetter::GetterSetter):
  • kjs/JSCell.h:
  • kjs/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData):
  • kjs/JSGlobalData.h:
  • kjs/JSGlobalObject.h: (JSC::StructureID::prototypeForLookup):
  • kjs/JSNumberCell.h: (JSC::JSNumberCell::JSNumberCell): (JSC::jsNumberCell):
  • kjs/JSObject.h: (JSC::JSObject::prototype):
  • kjs/JSString.cpp: (JSC::jsString): (JSC::jsSubstring): (JSC::jsOwnedString):
  • kjs/JSString.h: (JSC::JSString::JSString): (JSC::JSString::): (JSC::jsSingleCharacterString): (JSC::jsSingleCharacterSubstring): (JSC::jsNontrivialString):
  • kjs/SmallStrings.cpp: (JSC::SmallStrings::createEmptyString): (JSC::SmallStrings::createSingleCharacterString):
  • kjs/StructureID.cpp: (JSC::StructureID::StructureID): (JSC::StructureID::addPropertyTransition): (JSC::StructureID::getterSetterTransition): (JSC::StructureIDChain::StructureIDChain):
  • kjs/StructureID.h: (JSC::StructureID::create): (JSC::StructureID::storedPrototype):
01:09 Changeset [36315] by hausmann@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-09 Joerg Bornemann <joerg.bornemann@trolltech.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=20746

Added WINCE platform macro.

  • wtf/Platform.h:
00:03 Changeset [36314] by weinig@apple.com
  • 5 edits in trunk/JavaScriptCore

2008-09-09 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Remove unnecessary override of getOffset.

Sunspider reports this as a .6% progression.

  • JavaScriptCore.exp:
  • kjs/JSObject.h: (JSC::JSObject::getDirectLocation): (JSC::JSObject::getOwnPropertySlotForWrite): (JSC::JSObject::putDirect):
  • kjs/PropertyMap.cpp:
  • kjs/PropertyMap.h:

09/09/08:

22:29 Changeset [36313] by hyatt@apple.com
  • 3 edits in trunk/WebCore

Resurrect PlatformScrollbarWin.

20:43 Changeset [36312] by cwzwarich@webkit.org
  • 2 edits in trunk/SunSpider

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Rubber-stamped by Maciej Stachowiak.

The bleeding edge branch of V8 now supports passing fileanmes after
'-f', so the SunSpider script should be changed to do this again.
This allows all 3 major JavaScript engines to be used with the
unmodified SunSpider script.

  • sunspider:
20:22 Changeset [36311] by cwzwarich@webkit.org
  • 8 edits
    1 add
    4 deletes in trunk

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Bug 20759: Remove MacroAssembler
<https://bugs.webkit.org/show_bug.cgi?id=20759>

Remove MacroAssembler and move its functionality to X86Assembler.

JavaScriptCore:

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • VM/CTI.cpp: (JSC::CTI::emitGetArg): (JSC::CTI::emitGetPutArg): (JSC::CTI::emitPutArg): (JSC::CTI::emitPutCTIParam): (JSC::CTI::emitGetCTIParam): (JSC::CTI::emitPutToCallFrameHeader): (JSC::CTI::emitGetFromCallFrameHeader): (JSC::CTI::emitPutResult): (JSC::CTI::emitDebugExceptionCheck): (JSC::CTI::emitJumpSlowCaseIfNotImm): (JSC::CTI::emitJumpSlowCaseIfNotImms): (JSC::CTI::emitFastArithDeTagImmediate): (JSC::CTI::emitFastArithReTagImmediate): (JSC::CTI::emitFastArithPotentiallyReTagImmediate): (JSC::CTI::emitFastArithImmToInt): (JSC::CTI::emitFastArithIntToImmOrSlowCase): (JSC::CTI::emitFastArithIntToImmNoCheck): (JSC::CTI::compileOpCall): (JSC::CTI::emitSlowScriptCheck): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): (JSC::CTI::privateCompile): (JSC::CTI::privateCompileGetByIdSelf): (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain): (JSC::CTI::privateCompilePutByIdReplace): (JSC::CTI::privateArrayLengthTrampoline): (JSC::CTI::privateStringLengthTrampoline): (JSC::CTI::compileRegExp):
  • VM/CTI.h: (JSC::CallRecord::CallRecord): (JSC::JmpTable::JmpTable): (JSC::SlowCaseEntry::SlowCaseEntry): (JSC::CTI::JSRInfo::JSRInfo):
  • masm/MacroAssembler.h: Removed.
  • masm/MacroAssemblerWin.cpp: Removed.
  • masm/X86Assembler.h: (JSC::X86Assembler::emitConvertToFastCall): (JSC::X86Assembler::emitRestoreArgumentReference):
  • wrec/WREC.h: (JSC::WRECGenerator::WRECGenerator): (JSC::WRECParser::WRECParser):

WebCore:

  • ForwardingHeaders/masm/IA32MacroAsm.h: Removed.
  • ForwardingHeaders/masm/MacroAssembler.h: Removed.
  • ForwardingHeaders/masm/X86Assembler.h: Added.
19:36 Changeset [36310] by weinig@apple.com
  • 4 edits in trunk/JavaScriptCore

2008-09-09 Sam Weinig <sam@webkit.org>

Reviewed by Cameron Zwarich.

Don't waste the first item in the PropertyStorage.

  • Fix typo (makingCount -> markingCount)
  • Remove undefined method declaration.

No change on Sunspider.

  • kjs/JSObject.cpp: (JSC::JSObject::mark):
  • kjs/PropertyMap.cpp: (JSC::PropertyMap::put): (JSC::PropertyMap::remove): (JSC::PropertyMap::getOffset): (JSC::PropertyMap::insert): (JSC::PropertyMap::rehash): (JSC::PropertyMap::resizePropertyStorage): (JSC::PropertyMap::checkConsistency):
  • kjs/PropertyMap.h: (JSC::PropertyMap::markingCount): Fix typo.
18:26 Changeset [36309] by alp@webkit.org
  • 6 edits in trunk/WebCore

2008-09-09 Alp Toker <alp@nuanti.com>

Reviewed by Dave Hyatt.

https://bugs.webkit.org/show_bug.cgi?id=16792
[GTK] Fails to render Japanese/Chinese text with simple path

https://bugs.webkit.org/show_bug.cgi?id=16942
[GTK] Oddities in font selection and fall back

https://bugs.webkit.org/show_bug.cgi?id=16862
[GTK] Custom fonts hard-coded to use grayscale antialiasing and no hinting

GTK+ font fixes and enhancements.

Implement font fallback for the simple FontConfig-based text path and
improve the Pango-based complex text path to make use of requested
font properties and available font selection.

Add text shadow support to the complex path.

  • platform/graphics/gtk/FontCacheGtk.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData):
  • platform/graphics/gtk/FontGtk.cpp: (WebCore::setPangoAttributes): (WebCore::Font::drawComplexText): (WebCore::getDefaultPangoLayout): (WebCore::Font::floatWidthForComplexText): (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForComplexText):
  • platform/graphics/gtk/FontPlatformData.h: (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::hash):
  • platform/graphics/gtk/FontPlatformDataGtk.cpp: (WebCore::FontPlatformData::FontPlatformData):
  • platform/graphics/gtk/SimpleFontDataGtk.cpp: (WebCore::SimpleFontData::platformDestroy):
18:21 Changeset [36308] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Not reviewed.

Speculative Windows build fix.

  • masm/MacroAssemblerWin.cpp: (JSC::MacroAssembler::emitConvertToFastCall): (JSC::MacroAssembler::emitRestoreArgumentReference):
18:11 Changeset [36307] by cwzwarich@webkit.org
  • 6 edits in trunk/JavaScriptCore

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Bug 20755: Create an X86 namespace for register names and other things
<https://bugs.webkit.org/show_bug.cgi?id=20755>

Create an X86 namespace to put X86 register names. Perhaps I will move
opcode names here later as well.

  • VM/CTI.cpp: (JSC::CTI::emitGetArg): (JSC::CTI::emitGetPutArg): (JSC::CTI::emitPutArg): (JSC::CTI::emitPutArgConstant): (JSC::CTI::emitPutCTIParam): (JSC::CTI::emitGetCTIParam): (JSC::CTI::emitPutToCallFrameHeader): (JSC::CTI::emitGetFromCallFrameHeader): (JSC::CTI::emitPutResult): (JSC::CTI::emitDebugExceptionCheck): (JSC::CTI::emitJumpSlowCaseIfNotImms): (JSC::CTI::compileOpCall): (JSC::CTI::emitSlowScriptCheck): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): (JSC::CTI::privateCompile): (JSC::CTI::privateCompileGetByIdSelf): (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain): (JSC::CTI::privateCompilePutByIdReplace): (JSC::CTI::privateArrayLengthTrampoline): (JSC::CTI::privateStringLengthTrampoline): (JSC::CTI::compileRegExp):
  • VM/CTI.h:
  • masm/X86Assembler.h: (JSC::X86::): (JSC::X86Assembler::emitModRm_rm): (JSC::X86Assembler::emitModRm_rm_Unchecked): (JSC::X86Assembler::emitModRm_rmsib):
  • wrec/WREC.cpp: (JSC::WRECGenerator::generateNonGreedyQuantifier): (JSC::WRECGenerator::generateGreedyQuantifier): (JSC::WRECGenerator::generateParentheses): (JSC::WRECGenerator::generateBackreference): (JSC::WRECGenerator::gernerateDisjunction):
  • wrec/WREC.h:
17:07 Changeset [36306] by weinig@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-09-09 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Remove unnecessary friend declaration.

  • kjs/PropertyMap.h:
16:51 Changeset [36305] by hyatt@apple.com
  • 2 edits in trunk/WebCore

Fix the classic look on Windows by resolving the constants conflict between slider parts and buttons/checkboxes.

16:42 Changeset [36304] by weinig@apple.com
  • 6 edits in trunk/JavaScriptCore

2008-09-09 Sam Weinig <sam@webkit.org>

Reviewed by Geoffrey Garen.

Replace uses of PropertyMap::get and PropertyMap::getLocation with
PropertyMap::getOffset.

Sunspider reports this as a .6% improvement.

  • JavaScriptCore.exp:
  • kjs/JSObject.cpp: (JSC::JSObject::put): (JSC::JSObject::deleteProperty): (JSC::JSObject::getPropertyAttributes):
  • kjs/JSObject.h: (JSC::JSObject::getDirect): (JSC::JSObject::getDirectLocation): (JSC::JSObject::locationForOffset):
  • kjs/PropertyMap.cpp: (JSC::PropertyMap::remove): (JSC::PropertyMap::getOffset):
  • kjs/PropertyMap.h:
16:36 Changeset [36303] by dino@apple.com
  • 3 edits
    4 adds in trunk

2008-09-05 Chris Marrin <cmarrin@apple.com>

Reviewed by Sam Weinig.

Need to handle the case when 0% or 100% keyframe is omitted
https://bugs.webkit.org/show_bug.cgi?id=20679

Tests: animations/keyframes-from-missing.html

animations/keyframes-to-missing.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::addKeyframeStyle):
16:11 Changeset [36302] by hyatt@apple.com
  • 5 edits in trunk/WebCore

Resurrect RenderThemeWin and bring it up to ToT.

15:35 Changeset [36301] by cwzwarich@webkit.org
  • 5 edits in trunk/JavaScriptCore

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Sam Weinig.

Bug 20754: Remove emit prefix from assembler opcode methods
<https://bugs.webkit.org/show_bug.cgi?id=20754>

  • VM/CTI.cpp: (JSC::CTI::emitGetArg): (JSC::CTI::emitGetPutArg): (JSC::CTI::emitPutArg): (JSC::CTI::emitPutArgConstant): (JSC::CTI::emitPutCTIParam): (JSC::CTI::emitGetCTIParam): (JSC::CTI::emitPutToCallFrameHeader): (JSC::CTI::emitGetFromCallFrameHeader): (JSC::CTI::emitPutResult): (JSC::CTI::emitDebugExceptionCheck): (JSC::CTI::emitCall): (JSC::CTI::emitJumpSlowCaseIfNotImm): (JSC::CTI::emitJumpSlowCaseIfNotImms): (JSC::CTI::emitFastArithDeTagImmediate): (JSC::CTI::emitFastArithReTagImmediate): (JSC::CTI::emitFastArithPotentiallyReTagImmediate): (JSC::CTI::emitFastArithImmToInt): (JSC::CTI::emitFastArithIntToImmOrSlowCase): (JSC::CTI::emitFastArithIntToImmNoCheck): (JSC::CTI::compileOpCall): (JSC::CTI::emitSlowScriptCheck): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): (JSC::CTI::privateCompile): (JSC::CTI::privateCompileGetByIdSelf): (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain): (JSC::CTI::privateCompilePutByIdReplace): (JSC::CTI::privateArrayLengthTrampoline): (JSC::CTI::privateStringLengthTrampoline): (JSC::CTI::compileRegExp):
  • masm/MacroAssemblerWin.cpp: (JSC::MacroAssembler::emitConvertToFastCall): (JSC::MacroAssembler::emitRestoreArgumentReference):
  • masm/X86Assembler.h: (JSC::X86Assembler::pushl_r): (JSC::X86Assembler::pushl_m): (JSC::X86Assembler::popl_r): (JSC::X86Assembler::popl_m): (JSC::X86Assembler::movl_rr): (JSC::X86Assembler::addl_rr): (JSC::X86Assembler::addl_i8r): (JSC::X86Assembler::addl_i32r): (JSC::X86Assembler::addl_mr): (JSC::X86Assembler::andl_rr): (JSC::X86Assembler::andl_i32r): (JSC::X86Assembler::cmpl_i8r): (JSC::X86Assembler::cmpl_rr): (JSC::X86Assembler::cmpl_rm): (JSC::X86Assembler::cmpl_i32r): (JSC::X86Assembler::cmpl_i32m): (JSC::X86Assembler::cmpw_rm): (JSC::X86Assembler::orl_rr): (JSC::X86Assembler::subl_rr): (JSC::X86Assembler::subl_i8r): (JSC::X86Assembler::subl_i32r): (JSC::X86Assembler::subl_mr): (JSC::X86Assembler::testl_i32r): (JSC::X86Assembler::testl_rr): (JSC::X86Assembler::xorl_i8r): (JSC::X86Assembler::xorl_rr): (JSC::X86Assembler::sarl_i8r): (JSC::X86Assembler::sarl_CLr): (JSC::X86Assembler::shl_i8r): (JSC::X86Assembler::shll_CLr): (JSC::X86Assembler::mull_rr): (JSC::X86Assembler::idivl_r): (JSC::X86Assembler::cdq): (JSC::X86Assembler::movl_mr): (JSC::X86Assembler::movzwl_mr): (JSC::X86Assembler::movl_rm): (JSC::X86Assembler::movl_i32r): (JSC::X86Assembler::movl_i32m): (JSC::X86Assembler::leal_mr): (JSC::X86Assembler::ret): (JSC::X86Assembler::jmp_r): (JSC::X86Assembler::jmp_m): (JSC::X86Assembler::call_r):
  • wrec/WREC.cpp: (JSC::WRECGenerator::generateBacktrack1): (JSC::WRECGenerator::generateBacktrackBackreference): (JSC::WRECGenerator::generateBackreferenceQuantifier): (JSC::WRECGenerator::generateNonGreedyQuantifier): (JSC::WRECGenerator::generateGreedyQuantifier): (JSC::WRECGenerator::generatePatternCharacter): (JSC::WRECGenerator::generateCharacterClassInvertedRange): (JSC::WRECGenerator::generateCharacterClassInverted): (JSC::WRECGenerator::generateCharacterClass): (JSC::WRECGenerator::generateParentheses): (JSC::WRECGenerator::gererateParenthesesResetTrampoline): (JSC::WRECGenerator::generateAssertionBOL): (JSC::WRECGenerator::generateAssertionEOL): (JSC::WRECGenerator::generateAssertionWordBoundary): (JSC::WRECGenerator::generateBackreference): (JSC::WRECGenerator::gernerateDisjunction):
13:44 Changeset [36300] by cwzwarich@webkit.org
  • 4 edits in trunk/JavaScriptCore

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Clean up the WREC code some more.

  • VM/CTI.cpp: (JSC::CTI::compileRegExp):
  • wrec/WREC.cpp: (JSC::getCharacterClassNewline): (JSC::getCharacterClassDigits): (JSC::getCharacterClassSpaces): (JSC::getCharacterClassWordchar): (JSC::getCharacterClassNondigits): (JSC::getCharacterClassNonspaces): (JSC::getCharacterClassNonwordchar): (JSC::WRECGenerator::generateBacktrack1): (JSC::WRECGenerator::generateBacktrackBackreference): (JSC::WRECGenerator::generateBackreferenceQuantifier): (JSC::WRECGenerator::generateNonGreedyQuantifier): (JSC::WRECGenerator::generateGreedyQuantifier): (JSC::WRECGenerator::generatePatternCharacter): (JSC::WRECGenerator::generateCharacterClassInvertedRange): (JSC::WRECGenerator::generateCharacterClassInverted): (JSC::WRECGenerator::generateCharacterClass): (JSC::WRECGenerator::generateParentheses): (JSC::WRECGenerator::gererateParenthesesResetTrampoline): (JSC::WRECGenerator::generateAssertionBOL): (JSC::WRECGenerator::generateAssertionEOL): (JSC::WRECGenerator::generateAssertionWordBoundary): (JSC::WRECGenerator::generateBackreference): (JSC::WRECGenerator::gernerateDisjunction): (JSC::WRECParser::parseCharacterClass): (JSC::WRECParser::parseEscape): (JSC::WRECParser::parseTerm):
  • wrec/WREC.h:
12:50 Changeset [36299] by dino@apple.com
  • 3 edits
    4 adds in trunk

2008-09-09 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig.

Document::createEvent missing cases for animation and
transition events.
https://bugs.webkit.org/show_bug.cgi?id=20734

Test: transitions/transition-end-event-create.html
Test: animations/animation-events-create.html

  • dom/Document.cpp: (WebCore::Document::createEvent):
    • add the two cases
12:07 Changeset [36298] by mitz@apple.com
  • 2 edits in trunk/WebKit/mac
  • Tiger build fix
  • WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
11:48 Changeset [36297] by mitz@apple.com
  • 5 edits in trunk/WebCore
  • Tiger build fix
  • WebCore.Tiger.exp:
  • WebCore.base.exp:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
11:12 Changeset [36296] by mitz@apple.com
  • 13 edits in trunk

WebCore:

Reviewed by Darin Adler.

  • WebCore part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
  • WebCore.Tiger.exp:
  • WebCore.base.exp:
  • platform/graphics/SimpleFontData.h:
  • platform/graphics/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill):
  • platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::initFontData): (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformDestroy):
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:

WebKit/mac:

Reviewed by Darin Adler.

  • WebKit part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
  • WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):

WebKitLibraries:

Reviewed by Darin Adler.

  • WebKitLibraries part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
  • WebKitSystemInterface.h:
  • libWebKitSystemInterfaceLeopard.a:
09:40 Changeset [36295] by kmccullough@apple.com
  • 2 edits in trunk/WebCore

2008-09-09 Kevin McCullough <kmccullough@apple.com>

Reviewed by Tim.

<rdar://problem/6198545> REGRESSION: Inspector debugger barfs on
breakpoints inside eval.

  • page/inspector/inspector.js:
07:17 Changeset [36294] by hausmann@webkit.org
  • 4 edits in trunk/WebCore

2008-09-09 Joerg Bornemann <joerg.bornemann@trolltech.com>

Reviewed by Simon.

Fix compilation of the Qt port with disabled plugins on Windows

07:17 Changeset [36293] by hausmann@webkit.org
  • 2 edits in trunk/WebKit/qt

2008-09-09 Joerg Bornemann <joerg.bornemann@trolltech.com>

Reviewed by Simon.

Added missing WebCore prefix to ResourceRequest

This is needed for Windows/CE compilation where there is a conflict
with a global ResourceRequest type. Elsewhere in this file ResourceRequest

is also prefixed with WebCore
02:01 Changeset [36292] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

Build fix, rubber-stamped by Anders Carlsson.

Silence spurious build warnings about missing format attributes on functions in Assertions.cpp.

02:00 Changeset [36291] by mrowe@apple.com
  • 6 edits
    1 move
    1 delete in trunk/JavaScriptCore

Fix builds using the "debug" variant.

Rubber-stamped by Oliver Hunt.

This reverts r36130 and tweaks Identifier to export the same symbols for Debug
and Release configurations.

(JSC::Identifier::addSlowCase): #ifdef the call to checkSameIdentifierTable so that
there is no overhead in Release builds.
(JSC::Identifier::checkSameIdentifierTable): Add empty functions for Release builds.

  • kjs/identifier.h:

(JSC::Identifier::add): #ifdef the calls to checkSameIdentifierTable so that there is
no overhead in Release builds, and remove the inline definitions of checkSameIdentifierTable.

01:55 Changeset [36290] by cwzwarich@webkit.org
  • 3 edits in trunk/JavaScriptCore

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Clean up WREC a bit to bring it closer to our coding style guidelines.

  • wrec/WREC.cpp: (JSC::): (JSC::getCharacterClass_newline): (JSC::getCharacterClass_d): (JSC::getCharacterClass_s): (JSC::getCharacterClass_w): (JSC::getCharacterClass_D): (JSC::getCharacterClass_S): (JSC::getCharacterClass_W): (JSC::CharacterClassConstructor::append): (JSC::WRECGenerator::generateNonGreedyQuantifier): (JSC::WRECGenerator::generateGreedyQuantifier): (JSC::WRECGenerator::generateCharacterClassInverted): (JSC::WRECParser::parseQuantifier): (JSC::WRECParser::parsePatternCharacterQualifier): (JSC::WRECParser::parseCharacterClassQuantifier): (JSC::WRECParser::parseBackreferenceQuantifier):
  • wrec/WREC.h: (JSC::Quantifier::): (JSC::Quantifier::Quantifier):
01:11 Changeset [36289] by ap@webkit.org
  • 7 edits in trunk

2008-09-09 Jungshik Shin <jungshik.shin@gmail.com>

Reviewed by Alexey Proskuryakov.

Try MIME charset names before trying IANA names
( https://bugs.webkit.org/show_bug.cgi?id=17537 )

With this change, shorter and more widely used names (preferred MIME
names) are returned by document.charset, document.characterSet,
document.inputEncoding rather than IANA names. This helps
fixing bug 18085 in addition to web developers who are more familiar
with MIME names. For instance, EUC-JP, ISO-8859-X and US-ASCII will be
returned instead of Extended_UNIX_Code_Packed_Format_for_Japanese,
ISO-8859-X:19xx, and ANSI_X3.4-1968. It also replaces IBM8xx with cp8xx.
Note that cp/IBM 8xx are extremly rare in today's web. Even if they're
used, the former is still recognized as aliases to the latter so that
there's very little, if any, to worry about.

01:05 Changeset [36288] by cwzwarich@webkit.org
  • 3 edits
    3 adds in trunk

2008-09-09 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Mark Rowe.

Bug 20719: REGRESSION (r36135-36244): Hangs, then crashes after several seconds
<https://bugs.webkit.org/show_bug.cgi?id=20719>
<rdar://problem/6205787>

Fix a typo in the case-insensitive matching of character patterns.

JavaScriptCore:

  • wrec/WREC.cpp: (JSC::WRECGenerator::generatePatternCharacter):

LayoutTests:

  • fast/js/regexp-char-insensitive-expected.txt: Added.
  • fast/js/regexp-char-insensitive.html: Added.
  • fast/js/resources/regexp-char-insensitive.js: Added.
01:00 Changeset [36287] by mitz@apple.com
  • 2 edits in trunk/LayoutTests

Rubber-stamped by Maciej Stachowiak.

  • update results for the addition of console.dirxml
  • fast/dom/Window/window-properties-expected.txt:
00:58 Changeset [36286] by mjs@apple.com
  • 4 edits in trunk/JavaScriptCore

2008-09-09 Maciej Stachowiak <mjs@apple.com>

Reviewed by Sam Weinig.


  • allow polymorphic inline cache to handle Math object functions and possibly other similar things


1.012x speedup on SunSpider.

  • kjs/MathObject.cpp: (JSC::MathObject::getOwnPropertySlot):
  • kjs/lookup.cpp: (JSC::setUpStaticFunctionSlot):
  • kjs/lookup.h: (JSC::getStaticPropertySlot):

09/08/08:

23:55 Changeset [36285] by weinig@apple.com
  • 11 edits
    3 adds in trunk

JavaScriptCore:

2008-09-08 Sam Weinig <sam@webkit.org>

Reviewed by Maciej Stachowiak and Oliver Hunt.

Split storage of properties out of the PropertyMap and into the JSObject
to allow sharing PropertyMap on the StructureID. In order to get this
function correctly, the StructureID's transition mappings were changed to
transition based on property name and attribute pairs, instead of just
property name.

  • Removes the single property optimization now that the PropertyMap is shared. This will be replaced by in-lining some values on the JSObject.

This is a wash on Sunspider and a 6.7% win on the v8 test suite.

  • JavaScriptCore.base.exp:
  • VM/CTI.cpp: (JSC::CTI::privateCompileGetByIdSelf): Get the storage directly off the JSObject. (JSC::CTI::privateCompileGetByIdProto): Ditto. (JSC::CTI::privateCompileGetByIdChain): Ditto. (JSC::CTI::privateCompilePutByIdReplace): Ditto.
  • kjs/JSObject.cpp: (JSC::JSObject::mark): Mark the PropertyStorage. (JSC::JSObject::put): Update to get the propertyMap of the StructureID. (JSC::JSObject::deleteProperty): Ditto. (JSC::JSObject::defineGetter): Return early if the property is already a getter/setter. (JSC::JSObject::defineSetter): Ditto. (JSC::JSObject::getPropertyAttributes): Update to get the propertyMap of the StructureID (JSC::JSObject::getPropertyNames): Ditto. (JSC::JSObject::removeDirect): Ditto.
  • kjs/JSObject.h: Remove PropertyMap and add PropertyStorage. (JSC::JSObject::propertyStorage): return the PropertyStorage. (JSC::JSObject::getDirect): Update to get the propertyMap of the StructureID. (JSC::JSObject::getDirectLocation): Ditto. (JSC::JSObject::offsetForLocation): Compute location directly. (JSC::JSObject::hasCustomProperties): Update to get the propertyMap of the StructureID. (JSC::JSObject::hasGetterSetterProperties): Ditto. (JSC::JSObject::getDirectOffset): Get by indexing into PropertyStorage. (JSC::JSObject::putDirectOffset): Put by indexing into PropertyStorage. (JSC::JSObject::getOwnPropertySlotForWrite): Update to get the propertyMap of the StructureID. (JSC::JSObject::getOwnPropertySlot): Ditto. (JSC::JSObject::putDirect): Move putting into the StructureID unless the property already exists.
  • kjs/PropertyMap.cpp: Use the propertyStorage as the storage for the JSValues. (JSC::PropertyMap::checkConsistency): (JSC::PropertyMap::operator=): (JSC::PropertyMap::~PropertyMap): (JSC::PropertyMap::get): (JSC::PropertyMap::getLocation): (JSC::PropertyMap::put): (JSC::PropertyMap::getOffset): (JSC::PropertyMap::insert): (JSC::PropertyMap::expand): (JSC::PropertyMap::rehash): (JSC::PropertyMap::createTable): (JSC::PropertyMap::resizePropertyStorage): Resize the storage to match the size of the map (JSC::PropertyMap::remove): (JSC::PropertyMap::getEnumerablePropertyNames):
  • kjs/PropertyMap.h: (JSC::PropertyMapEntry::PropertyMapEntry): (JSC::PropertyMap::isEmpty): (JSC::PropertyMap::size): (JSC::PropertyMap::makingCount): (JSC::PropertyMap::PropertyMap):
  • kjs/StructureID.cpp: (JSC::StructureID::addPropertyTransition): Transitions now are based off the property name and attributes. (JSC::StructureID::toDictionaryTransition): Copy the map. (JSC::StructureID::changePrototypeTransition): Copy the map. (JSC::StructureID::getterSetterTransition): Copy the map. (JSC::StructureID::~StructureID):
  • kjs/StructureID.h: (JSC::TransitionTableHash::hash): Custom hash for transition map. (JSC::TransitionTableHash::equal): Ditto. (JSC::TransitionTableHashTraits::emptyValue): Custom traits for transition map (JSC::TransitionTableHashTraits::constructDeletedValue): Ditto. (JSC::TransitionTableHashTraits::isDeletedValue): Ditto. (JSC::StructureID::propertyMap): Added.

JavaScriptGlue:

2008-09-08 Sam Weinig <sam@webkit.org>

Reviewed by Maciej Stachowiak and Oliver Hunt.

Add forwarding headers.

  • ForwardingHeaders/wtf/HashFunctions.h: Added.
  • ForwardingHeaders/wtf/HashTraits.h: Added.

WebCore:

2008-09-08 Sam Weinig <sam@webkit.org>

Reviewed by Maciej Stachowiak and Oliver Hunt.

Add forwarding headers.

  • ForwardingHeaders/wtf/HashFunctions.h: Added.
23:20 Changeset [36284] by aroben@apple.com
  • 2 edits in trunk/WebKit/win

Respect the font smoothing preference when drawing via WebKitGraphics

Reviewed by Dave Hyatt.

  • WebKitGraphics.cpp: (makeFont): Check the font smoothing preference and update the FontDescription's rendering mode based on it.
22:01 Changeset [36283] by oliver@apple.com
  • 1 edit in trunk/JavaScriptCore/ChangeLog

Update ChangeLog for previous fix to include bug#

21:43 Changeset [36282] by oliver@apple.com
  • 3 edits in trunk/JavaScriptCore

Fix codegen for slow script dialog.

Reviewed by Mark Rowe

Correct error in timeout logic where execution tick count would
be reset to incorrect value due to incorrect offset and indirection.
Codegen for the slow script dialog was factored out into a separate
method (emitSlowScriptCheck) rather than having multiple copies of
the same code. Also added calls to generate slow script checks
for loop_if_less and loop_if_true opcodes.

20:08 Changeset [36281] by mitz@apple.com
  • 3 edits in trunk/WebKitTools

Reviewed by Mark Rowe.

  • add an option to run-webkit-tests to always use the complex text code path
  • DumpRenderTree/mac/DumpRenderTree.mm: (initializeGlobalsFromCommandLineOptions): (dumpRenderTree):
  • Scripts/run-webkit-tests:
18:37 Changeset [36280] by cwzwarich@webkit.org
  • 3 edits in trunk/JavaScriptCore

2008-09-08 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Remove references to the removed WRECompiler class.

  • VM/Machine.h:
  • wrec/WREC.h:
18:05 Changeset [36279] by cwzwarich@webkit.org
  • 3 edits in trunk/JavaScriptCore

2008-09-08 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Rubber-stamped by Mark Rowe.

Fix the build with CTI enabled but WREC disabled.

  • VM/CTI.cpp:
  • VM/CTI.h:
18:02 Changeset [36278] by dino@apple.com
  • 6 edits in trunk

2008-09-05 Dean Jackson <dino@apple.com>

Reviewed by Dan Bernstein.

Update grammar so that we can add a keyframe rule via the DOM.
https://bugs.webkit.org/show_bug.cgi?id=20613

  • css/CSSGrammar.y:
  • css/tokenizer.flex:
17:40 Changeset [36277] by antti@apple.com
  • 2 edits in trunk/WebCore

2008-09-08 Antti Koivisto <antti@apple.com>

Reviewed by Dan Bernstein.

Allow <br> for simple UA stylesheet. Editing code generates them. It does not
actually show up in any of the default stylesheets.

  • css/CSSStyleSelector.cpp: (WebCore::elementCanUseSimpleDefaultStyle):
17:35 Changeset [36276] by mitz@apple.com
  • 2 edits in trunk/WebCore

2008-09-08 Dimitri Glazkov <dglazkov@google.com>

Reviewed by Dan Bernstein.

Adds an extra check for Object Replacement Character (U+FFFC) to address
the issue with fast/text/zero-width-characters.html test when run
with Windows system default fonts.

  • platform/graphics/Font.h: (WebCore::Font::treatAsZeroWidthSpace):
15:51 Changeset [36275] by dino@apple.com
  • 2 edits in trunk/WebCore

2008-09-08 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig.

Code style issue I forgot to fix from previous commit.

  • platform/graphics/AffineTransform.cpp: (WebCore::AffineTransform::blend):
15:46 Changeset [36274] by dino@apple.com
  • 5 edits
    2 adds in trunk

2008-09-08 Chris Marrin <cmarrin@apple.com>

Reviewed by Sam Weinig

Test: animations/matrix-anim.html

  • ChangeLog:
  • platform/graphics/AffineTransform.cpp: (WebCore::affineTransformDecompose): (WebCore::affineTransformCompose): (WebCore::AffineTransform::blend):
  • platform/graphics/AffineTransform.h:
  • rendering/style/RenderStyle.cpp: (WebCore::MatrixTransformOperation::blend):
15:35 Changeset [36273] by sfalken@apple.com
  • 3 edits in trunk/WebKitTools

Another Windows nightly build fix.

Reviewed by Sam Weinig.

  • FindSafari/FindSafari.cpp: (_tmain): Delete existing WebKitNightly directory in temp.
  • FindSafari/Safari.exe.manifest: Add PROGIDs for each COM class. Remove non-production classes.
15:34 Changeset [36272] by sfalken@apple.com
  • 3 edits in trunk/WebKit/win

Another Windows nightly build fix.


Remove non-production versions of CLSIDs since we'll use registry free COM with
an embedded manifest now in all cases to find COM classes.


Reviewed by Sam Weinig.

  • ForEachCoClass.cpp: (setUseOpenSourceWebKit): Remove COM registration code.
  • Interfaces/WebKit.idl: Remove non-production COM classes
13:42 Changeset [36271] by mitz@apple.com
  • 2 edits in trunk/JavaScriptCore
  • build fix
  • kjs/nodes.h: (JSC::StatementNode::): (JSC::BlockNode::):
13:26 Changeset [36270] by kmccullough@apple.com
  • 3 edits in trunk/JavaScriptCore

2008-09-08 Kevin McCullough <kmccullough@apple.com>

Reviewed by Geoff.

<rdar://problem/6134407> Breakpoints in for loops, while loops or
conditions without curly braces don't break. (19306)
-Statement Lists already emit debug hooks but conditionals without
brackets are not lists.

  • kjs/nodes.cpp: (KJS::IfNode::emitCode): (KJS::IfElseNode::emitCode): (KJS::DoWhileNode::emitCode): (KJS::WhileNode::emitCode): (KJS::ForNode::emitCode): (KJS::ForInNode::emitCode):
  • kjs/nodes.h: (KJS::StatementNode::): (KJS::BlockNode::):
09:21 Changeset [36269] by ap@webkit.org
  • 2 edits in trunk/WebCore

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=20668
multipart/form-data does not always include Content-type for submitted files

Cannot be tested with DRT or manual tests.

  • platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedNonImageMimeTypes): Fix spacing. (WebCore::MIMETypeRegistry::getMIMETypeForPath): Default to application/octet-stream for unknown extensions, not just missing ones.
06:00 Changeset [36268] by hausmann@webkit.org
  • 2 edits in trunk/WebCore

2008-09-08 Simon Hausmann <hausmann@webkit.org>

Build fix for the Qt/Windows build, define USE_JSC to
enable the WebCore::String -> JSC::UString operator that
MSVC insists on seeing

05:17 Changeset [36267] by mjs@apple.com
  • 5 edits
    3 adds in trunk

JavaScriptCore:

2008-09-08 Maciej Stachowiak <mjs@apple.com>

Reviewed by Anders Carlsson.



1.052x on SunSpider
2.29x on date-format-tofte


Lots of real sites seem to get many hits on this cache as well,
including GMail, Google Spreadsheets, Slate and Digg (the last of
these gets over 100 hits on initial page load).

  • VM/CodeBlock.h: (JSC::EvalCodeCache::get):
  • VM/Machine.cpp: (JSC::Machine::callEval): (JSC::Machine::privateExecute): (JSC::Machine::cti_op_call_eval):
  • VM/Machine.h:

LayoutTests:

2008-09-08 Maciej Stachowiak <mjs@apple.com>

Reviewed by Anders Carlsson.

  • fast/js/eval-cache-crash-expected.txt: Added.
  • fast/js/eval-cache-crash.html: Added.
  • fast/js/resources/eval-cache-crash.js: Added.
04:39 Changeset [36266] by andersca@apple.com
  • 3 edits in trunk/WebCore

2008-09-08 Anders Carlsson <andersca@apple.com>

Reviewed by Maciej.

<rdar://problem/5850387> Showing bookmarks reloads Google Reader instead.


In some cases, timeouts scheduled by a page in the onunload handler could fire even when the
page had been unloaded and replaced by a non-HTML representation based view (such as the bookmarks view).


Fix this by clearing timeouts for pages that aren't cached when the provisional load is committed.


  • bindings/js/JSDOMWindowBase.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::commitProvisionalLoad):
00:01 Changeset [36265] by antti@apple.com
  • 2 edits in trunk/WebCore

2008-09-07 Antti Koivisto <antti@apple.com>

Reviewed by Dave Hyatt.

Don't leak the simple stylesheet.
Also call RenderTheme::adjustDefaultStyleSheet() in right place.

  • css/CSSStyleSelector.cpp: (WebCore::loadFullDefaultStyle): (WebCore::loadSimpleDefaultStyle): (WebCore::CSSStyleSelector::styleForElement):

09/07/08:

21:25 Changeset [36264] by cwzwarich@webkit.org
  • 12 edits in trunk

2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Oliver Hunt.

Bug 20711: Change KJS prefix on preprocessor macros to JSC
<https://bugs.webkit.org/show_bug.cgi?id=20711>

JavaScriptCore:

  • kjs/CommonIdentifiers.cpp: (JSC::CommonIdentifiers::CommonIdentifiers):
  • kjs/CommonIdentifiers.h:
  • kjs/PropertySlot.h: (JSC::PropertySlot::getValue): (JSC::PropertySlot::putValue): (JSC::PropertySlot::setValueSlot): (JSC::PropertySlot::setValue): (JSC::PropertySlot::setRegisterSlot):
  • kjs/lookup.h:
  • kjs/nodes.cpp:
  • kjs/nodes.h: (JSC::Node::): (JSC::ExpressionNode::): (JSC::StatementNode::): (JSC::NullNode::): (JSC::BooleanNode::): (JSC::NumberNode::): (JSC::ImmediateNumberNode::): (JSC::StringNode::): (JSC::RegExpNode::): (JSC::ThisNode::): (JSC::ResolveNode::): (JSC::ElementNode::): (JSC::ArrayNode::): (JSC::PropertyNode::): (JSC::PropertyListNode::): (JSC::ObjectLiteralNode::): (JSC::BracketAccessorNode::): (JSC::DotAccessorNode::): (JSC::ArgumentListNode::): (JSC::ArgumentsNode::): (JSC::NewExprNode::): (JSC::EvalFunctionCallNode::): (JSC::FunctionCallValueNode::): (JSC::FunctionCallResolveNode::): (JSC::FunctionCallBracketNode::): (JSC::FunctionCallDotNode::): (JSC::PrePostResolveNode::): (JSC::PostfixResolveNode::): (JSC::PostfixBracketNode::): (JSC::PostfixDotNode::): (JSC::PostfixErrorNode::): (JSC::DeleteResolveNode::): (JSC::DeleteBracketNode::): (JSC::DeleteDotNode::): (JSC::DeleteValueNode::): (JSC::VoidNode::): (JSC::TypeOfResolveNode::): (JSC::TypeOfValueNode::): (JSC::PrefixResolveNode::): (JSC::PrefixBracketNode::): (JSC::PrefixDotNode::): (JSC::PrefixErrorNode::): (JSC::UnaryPlusNode::): (JSC::NegateNode::): (JSC::BitwiseNotNode::): (JSC::LogicalNotNode::): (JSC::MultNode::): (JSC::DivNode::): (JSC::ModNode::): (JSC::AddNode::): (JSC::SubNode::): (JSC::LeftShiftNode::): (JSC::RightShiftNode::): (JSC::UnsignedRightShiftNode::): (JSC::LessNode::): (JSC::GreaterNode::): (JSC::LessEqNode::): (JSC::GreaterEqNode::): (JSC::ThrowableBinaryOpNode::): (JSC::InstanceOfNode::): (JSC::InNode::): (JSC::EqualNode::): (JSC::NotEqualNode::): (JSC::StrictEqualNode::): (JSC::NotStrictEqualNode::): (JSC::BitAndNode::): (JSC::BitOrNode::): (JSC::BitXOrNode::): (JSC::LogicalOpNode::): (JSC::ConditionalNode::): (JSC::ReadModifyResolveNode::): (JSC::AssignResolveNode::): (JSC::ReadModifyBracketNode::): (JSC::AssignBracketNode::): (JSC::AssignDotNode::): (JSC::ReadModifyDotNode::): (JSC::AssignErrorNode::): (JSC::CommaNode::): (JSC::VarDeclCommaNode::): (JSC::ConstDeclNode::): (JSC::ConstStatementNode::): (JSC::EmptyStatementNode::): (JSC::DebuggerStatementNode::): (JSC::ExprStatementNode::): (JSC::VarStatementNode::): (JSC::IfNode::): (JSC::IfElseNode::): (JSC::DoWhileNode::): (JSC::WhileNode::): (JSC::ForNode::): (JSC::ContinueNode::): (JSC::BreakNode::): (JSC::ReturnNode::): (JSC::WithNode::): (JSC::LabelNode::): (JSC::ThrowNode::): (JSC::TryNode::): (JSC::ParameterNode::): (JSC::ScopeNode::): (JSC::ProgramNode::): (JSC::EvalNode::): (JSC::FunctionBodyNode::): (JSC::FuncExprNode::): (JSC::FuncDeclNode::): (JSC::CaseClauseNode::): (JSC::ClauseListNode::): (JSC::CaseBlockNode::): (JSC::SwitchNode::):

WebCore:

  • bindings/js/JSEventTargetBase.h:
  • bindings/js/JSHTMLInputElementBase.cpp:
  • bindings/js/JSHTMLInputElementBase.h:
  • bindings/scripts/CodeGeneratorJS.pm:
18:28 Changeset [36263] by cwzwarich@webkit.org
  • 497 edits in trunk

2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Bug 20704: Replace the KJS namespace
<https://bugs.webkit.org/show_bug.cgi?id=20704>

Rename the KJS namespace to JSC. There are still some uses of KJS in
preprocessor macros and comments, but these will also be changed some
time in the near future. There are also some uses in the names of JNI
functions, but I will check if these are safe to change as well.

JavaScriptCore:

  • API/APICast.h: (toJS): (toRef): (toGlobalRef):
  • API/JSBase.cpp:
  • API/JSCallbackConstructor.cpp:
  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.cpp:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.cpp:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:
  • API/JSClassRef.cpp: (OpaqueJSClass::staticValues): (OpaqueJSClass::staticFunctions):
  • API/JSClassRef.h:
  • API/JSContextRef.cpp:
  • API/JSObjectRef.cpp:
  • API/JSProfilerPrivate.cpp:
  • API/JSStringRef.cpp:
  • API/JSValueRef.cpp: (JSValueGetType):
  • API/OpaqueJSString.cpp:
  • API/OpaqueJSString.h:
  • JavaScriptCore.Debug.exp:
  • JavaScriptCore.base.exp:
  • VM/CTI.cpp: (JSC::):
  • VM/CTI.h:
  • VM/CodeBlock.cpp:
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp:
  • VM/CodeGenerator.h:
  • VM/ExceptionHelpers.cpp:
  • VM/ExceptionHelpers.h:
  • VM/Instruction.h:
  • VM/JSPropertyNameIterator.cpp:
  • VM/JSPropertyNameIterator.h:
  • VM/LabelID.h:
  • VM/Machine.cpp:
  • VM/Machine.h:
  • VM/Opcode.cpp:
  • VM/Opcode.h:
  • VM/Register.h: (WTF::):
  • VM/RegisterFile.cpp:
  • VM/RegisterFile.h:
  • VM/RegisterID.h: (WTF::):
  • VM/SamplingTool.cpp:
  • VM/SamplingTool.h:
  • VM/SegmentedVector.h:
  • kjs/ArgList.cpp:
  • kjs/ArgList.h:
  • kjs/Arguments.cpp:
  • kjs/Arguments.h:
  • kjs/ArrayConstructor.cpp:
  • kjs/ArrayConstructor.h:
  • kjs/ArrayPrototype.cpp:
  • kjs/ArrayPrototype.h:
  • kjs/BatchedTransitionOptimizer.h:
  • kjs/BooleanConstructor.cpp:
  • kjs/BooleanConstructor.h:
  • kjs/BooleanObject.cpp:
  • kjs/BooleanObject.h:
  • kjs/BooleanPrototype.cpp:
  • kjs/BooleanPrototype.h:
  • kjs/CallData.cpp:
  • kjs/CallData.h:
  • kjs/ClassInfo.h:
  • kjs/CommonIdentifiers.cpp:
  • kjs/CommonIdentifiers.h:
  • kjs/ConstructData.cpp:
  • kjs/ConstructData.h:
  • kjs/DateConstructor.cpp:
  • kjs/DateConstructor.h:
  • kjs/DateInstance.cpp: (JSC::DateInstance::msToGregorianDateTime):
  • kjs/DateInstance.h:
  • kjs/DateMath.cpp:
  • kjs/DateMath.h:
  • kjs/DatePrototype.cpp:
  • kjs/DatePrototype.h:
  • kjs/DebuggerCallFrame.cpp:
  • kjs/DebuggerCallFrame.h:
  • kjs/Error.cpp:
  • kjs/Error.h:
  • kjs/ErrorConstructor.cpp:
  • kjs/ErrorConstructor.h:
  • kjs/ErrorInstance.cpp:
  • kjs/ErrorInstance.h:
  • kjs/ErrorPrototype.cpp:
  • kjs/ErrorPrototype.h:
  • kjs/ExecState.cpp:
  • kjs/ExecState.h:
  • kjs/FunctionConstructor.cpp:
  • kjs/FunctionConstructor.h:
  • kjs/FunctionPrototype.cpp:
  • kjs/FunctionPrototype.h:
  • kjs/GetterSetter.cpp:
  • kjs/GetterSetter.h:
  • kjs/GlobalEvalFunction.cpp:
  • kjs/GlobalEvalFunction.h:
  • kjs/IndexToNameMap.cpp:
  • kjs/IndexToNameMap.h:
  • kjs/InitializeThreading.cpp:
  • kjs/InitializeThreading.h:
  • kjs/InternalFunction.cpp:
  • kjs/InternalFunction.h: (JSC::InternalFunction::InternalFunction):
  • kjs/JSActivation.cpp:
  • kjs/JSActivation.h:
  • kjs/JSArray.cpp:
  • kjs/JSArray.h:
  • kjs/JSCell.cpp:
  • kjs/JSCell.h:
  • kjs/JSFunction.cpp:
  • kjs/JSFunction.h: (JSC::JSFunction::JSFunction):
  • kjs/JSGlobalData.cpp: (JSC::JSGlobalData::JSGlobalData):
  • kjs/JSGlobalData.h:
  • kjs/JSGlobalObject.cpp:
  • kjs/JSGlobalObject.h:
  • kjs/JSGlobalObjectFunctions.cpp:
  • kjs/JSGlobalObjectFunctions.h:
  • kjs/JSImmediate.cpp:
  • kjs/JSImmediate.h:
  • kjs/JSLock.cpp:
  • kjs/JSLock.h:
  • kjs/JSNotAnObject.cpp:
  • kjs/JSNotAnObject.h:
  • kjs/JSNumberCell.cpp:
  • kjs/JSNumberCell.h:
  • kjs/JSObject.cpp:
  • kjs/JSObject.h:
  • kjs/JSStaticScopeObject.cpp:
  • kjs/JSStaticScopeObject.h:
  • kjs/JSString.cpp:
  • kjs/JSString.h:
  • kjs/JSType.h:
  • kjs/JSValue.cpp:
  • kjs/JSValue.h:
  • kjs/JSVariableObject.cpp:
  • kjs/JSVariableObject.h:
  • kjs/JSWrapperObject.cpp:
  • kjs/JSWrapperObject.h:
  • kjs/LabelStack.cpp:
  • kjs/LabelStack.h:
  • kjs/MathObject.cpp:
  • kjs/MathObject.h:
  • kjs/NativeErrorConstructor.cpp:
  • kjs/NativeErrorConstructor.h:
  • kjs/NativeErrorPrototype.cpp:
  • kjs/NativeErrorPrototype.h:
  • kjs/NodeInfo.h:
  • kjs/NumberConstructor.cpp:
  • kjs/NumberConstructor.h:
  • kjs/NumberObject.cpp:
  • kjs/NumberObject.h:
  • kjs/NumberPrototype.cpp:
  • kjs/NumberPrototype.h:
  • kjs/ObjectConstructor.cpp:
  • kjs/ObjectConstructor.h:
  • kjs/ObjectPrototype.cpp:
  • kjs/ObjectPrototype.h:
  • kjs/Parser.cpp:
  • kjs/Parser.h:
  • kjs/PropertyMap.cpp: (JSC::PropertyMapStatisticsExitLogger::~PropertyMapStatisticsExitLogger):
  • kjs/PropertyMap.h:
  • kjs/PropertyNameArray.cpp:
  • kjs/PropertyNameArray.h:
  • kjs/PropertySlot.cpp:
  • kjs/PropertySlot.h:
  • kjs/PrototypeFunction.cpp:
  • kjs/PrototypeFunction.h:
  • kjs/PutPropertySlot.h:
  • kjs/RegExpConstructor.cpp:
  • kjs/RegExpConstructor.h:
  • kjs/RegExpObject.cpp:
  • kjs/RegExpObject.h:
  • kjs/RegExpPrototype.cpp:
  • kjs/RegExpPrototype.h:
  • kjs/ScopeChain.cpp:
  • kjs/ScopeChain.h:
  • kjs/ScopeChainMark.h:
  • kjs/Shell.cpp: (jscmain):
  • kjs/SmallStrings.cpp:
  • kjs/SmallStrings.h:
  • kjs/SourceProvider.h:
  • kjs/SourceRange.h:
  • kjs/StringConstructor.cpp:
  • kjs/StringConstructor.h:
  • kjs/StringObject.cpp:
  • kjs/StringObject.h:
  • kjs/StringObjectThatMasqueradesAsUndefined.h:
  • kjs/StringPrototype.cpp:
  • kjs/StringPrototype.h:
  • kjs/StructureID.cpp:
  • kjs/StructureID.h:
  • kjs/SymbolTable.h:
  • kjs/collector.cpp:
  • kjs/collector.h:
  • kjs/completion.h:
  • kjs/create_hash_table:
  • kjs/debugger.cpp:
  • kjs/debugger.h:
  • kjs/dtoa.cpp:
  • kjs/dtoa.h:
  • kjs/grammar.y:
  • kjs/identifier.cpp:
  • kjs/identifier.h: (JSC::Identifier::equal):
  • kjs/interpreter.cpp:
  • kjs/interpreter.h:
  • kjs/lexer.cpp: (JSC::Lexer::Lexer): (JSC::Lexer::clear): (JSC::Lexer::makeIdentifier):
  • kjs/lexer.h:
  • kjs/lookup.cpp:
  • kjs/lookup.h:
  • kjs/nodes.cpp:
  • kjs/nodes.h:
  • kjs/nodes2string.cpp:
  • kjs/operations.cpp:
  • kjs/operations.h:
  • kjs/protect.h:
  • kjs/regexp.cpp:
  • kjs/regexp.h:
  • kjs/ustring.cpp:
  • kjs/ustring.h: (JSC::operator!=): (JSC::IdentifierRepHash::hash): (WTF::):
  • masm/MacroAssembler.h:
  • masm/MacroAssemblerWin.cpp:
  • masm/X86Assembler.h:
  • pcre/pcre_exec.cpp:
  • profiler/CallIdentifier.h: (WTF::):
  • profiler/HeavyProfile.cpp:
  • profiler/HeavyProfile.h:
  • profiler/Profile.cpp:
  • profiler/Profile.h:
  • profiler/ProfileGenerator.cpp:
  • profiler/ProfileGenerator.h:
  • profiler/ProfileNode.cpp:
  • profiler/ProfileNode.h:
  • profiler/Profiler.cpp:
  • profiler/Profiler.h:
  • profiler/TreeProfile.cpp:
  • profiler/TreeProfile.h:
  • wrec/WREC.cpp:
  • wrec/WREC.h:
  • wtf/AVLTree.h:

WebCore:

  • WebCore.base.exp:
  • bindings/js/GCController.cpp:
  • bindings/js/JSAttrCustom.cpp:
  • bindings/js/JSAudioConstructor.cpp:
  • bindings/js/JSAudioConstructor.h: (WebCore::JSAudioConstructor::classInfo):
  • bindings/js/JSCSSRuleCustom.cpp:
  • bindings/js/JSCSSStyleDeclarationCustom.cpp:
  • bindings/js/JSCSSValueCustom.cpp:
  • bindings/js/JSCanvasPixelArrayCustom.cpp:
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:
  • bindings/js/JSClipboardCustom.cpp:
  • bindings/js/JSConsoleCustom.cpp:
  • bindings/js/JSCustomSQLStatementCallback.cpp: (WebCore::JSCustomSQLStatementCallback::handleEvent):
  • bindings/js/JSCustomSQLStatementCallback.h: (WebCore::JSCustomSQLStatementCallback::create):
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp: (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
  • bindings/js/JSCustomSQLStatementErrorCallback.h: (WebCore::JSCustomSQLStatementErrorCallback::create):
  • bindings/js/JSCustomSQLTransactionCallback.cpp: (WebCore::JSCustomSQLTransactionCallback::handleEvent):
  • bindings/js/JSCustomSQLTransactionCallback.h: (WebCore::JSCustomSQLTransactionCallback::create):
  • bindings/js/JSCustomSQLTransactionErrorCallback.cpp: (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
  • bindings/js/JSCustomSQLTransactionErrorCallback.h: (WebCore::JSCustomSQLTransactionErrorCallback::create):
  • bindings/js/JSCustomVoidCallback.cpp: (WebCore::JSCustomVoidCallback::handleEvent):
  • bindings/js/JSCustomVoidCallback.h: (WebCore::JSCustomVoidCallback::create):
  • bindings/js/JSCustomXPathNSResolver.cpp: (WebCore::JSCustomXPathNSResolver::create):
  • bindings/js/JSCustomXPathNSResolver.h:
  • bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::JSDOMApplicationCache::dispatchEvent):
  • bindings/js/JSDOMBinding.cpp: (WebCore::jsOwnedStringOrNull):
  • bindings/js/JSDOMBinding.h: (WebCore::DOMObject::DOMObject): (WebCore::cacheDOMObject): (WebCore::cacheSVGDOMObject): (WebCore::DOMExceptionTranslator::DOMExceptionTranslator): (WebCore::toJS):
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowBase.h: (WebCore::JSDOMWindowBase::classInfo): (WebCore::JSDOMWindowBase::d):
  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getPropertyAttributes):
  • bindings/js/JSDOMWindowCustom.h: (WebCore::asJSDOMWindow): (WebCore::JSDOMWindow::customGetOwnPropertySlot): (WebCore::JSDOMWindow::customPut): (WebCore::JSDOMWindowBase::allowsAccessFrom): (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
  • bindings/js/JSDOMWindowShell.cpp: (WebCore::JSDOMWindowShell::getPropertyAttributes):
  • bindings/js/JSDOMWindowShell.h: (WebCore::JSDOMWindowShell::classInfo):
  • bindings/js/JSDatabaseCustom.cpp:
  • bindings/js/JSDocumentCustom.cpp:
  • bindings/js/JSDocumentFragmentCustom.cpp:
  • bindings/js/JSElementCustom.cpp:
  • bindings/js/JSEventCustom.cpp:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventListener.h: (WebCore::JSUnprotectedEventListener::create): (WebCore::JSEventListener::create):
  • bindings/js/JSEventTargetBase.cpp:
  • bindings/js/JSEventTargetBase.h: (WebCore::JSEventTargetBase::getValueProperty): (WebCore::JSEventTargetBase::putValueProperty): (WebCore::JSEventTargetBase::getOwnPropertySlot): (WebCore::JSEventTargetBase::put): (WebCore::JSEventTargetPrototype::JSEventTargetPrototype): (WebCore::JSEventTargetPrototype::self): (WebCore::JSEventTargetPrototype::getOwnPropertySlot): (WebCore::JSEventTargetPrototype::classInfo):
  • bindings/js/JSEventTargetNode.cpp:
  • bindings/js/JSEventTargetNode.h: (WebCore::JSEventTargetNode::getOwnPropertySlot): (WebCore::JSEventTargetNode::getValueProperty): (WebCore::JSEventTargetNode::put): (WebCore::JSEventTargetNode::putValueProperty):
  • bindings/js/JSHTMLAllCollection.h: (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): (WebCore::JSHTMLAllCollection::toBoolean):
  • bindings/js/JSHTMLAppletElementCustom.cpp:
  • bindings/js/JSHTMLCollectionCustom.cpp:
  • bindings/js/JSHTMLDocumentCustom.cpp:
  • bindings/js/JSHTMLElementCustom.cpp:
  • bindings/js/JSHTMLEmbedElementCustom.cpp:
  • bindings/js/JSHTMLFormElementCustom.cpp:
  • bindings/js/JSHTMLFrameElementCustom.cpp:
  • bindings/js/JSHTMLFrameSetElementCustom.cpp:
  • bindings/js/JSHTMLIFrameElementCustom.cpp:
  • bindings/js/JSHTMLInputElementBase.cpp: (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
  • bindings/js/JSHTMLInputElementBase.h: (WebCore::JSHTMLInputElementBase::classInfo):
  • bindings/js/JSHTMLObjectElementCustom.cpp:
  • bindings/js/JSHTMLOptionElementConstructor.cpp:
  • bindings/js/JSHTMLOptionElementConstructor.h: (WebCore::JSHTMLOptionElementConstructor::classInfo):
  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:
  • bindings/js/JSHTMLSelectElementCustom.cpp: (WebCore::selectIndexSetter): (WebCore::JSHTMLSelectElement::indexSetter):
  • bindings/js/JSHTMLSelectElementCustom.h:
  • bindings/js/JSHistoryCustom.cpp:
  • bindings/js/JSImageConstructor.cpp:
  • bindings/js/JSImageConstructor.h: (WebCore::JSImageConstructor::classInfo):
  • bindings/js/JSInspectedObjectWrapper.cpp:
  • bindings/js/JSInspectedObjectWrapper.h: (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): (WebCore::JSInspectedObjectWrapper::classInfo):
  • bindings/js/JSInspectorCallbackWrapper.cpp:
  • bindings/js/JSInspectorCallbackWrapper.h: (WebCore::JSInspectorCallbackWrapper::classInfo): (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
  • bindings/js/JSJavaScriptCallFrameCustom.cpp:
  • bindings/js/JSLocationCustom.cpp:
  • bindings/js/JSMimeTypeArrayCustom.cpp:
  • bindings/js/JSNSResolver.cpp:
  • bindings/js/JSNSResolver.h: (WebCore::JSNSResolver::create):
  • bindings/js/JSNamedNodeMapCustom.cpp:
  • bindings/js/JSNamedNodesCollection.cpp: (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
  • bindings/js/JSNamedNodesCollection.h: (WebCore::JSNamedNodesCollection::classInfo):
  • bindings/js/JSNavigatorCustom.cpp:
  • bindings/js/JSNodeCustom.cpp:
  • bindings/js/JSNodeFilterCondition.cpp: (WebCore::JSNodeFilterCondition::acceptNode):
  • bindings/js/JSNodeFilterCondition.h: (WebCore::JSNodeFilterCondition::create):
  • bindings/js/JSNodeFilterCustom.cpp:
  • bindings/js/JSNodeIteratorCustom.cpp:
  • bindings/js/JSNodeListCustom.cpp:
  • bindings/js/JSPluginArrayCustom.cpp:
  • bindings/js/JSPluginCustom.cpp:
  • bindings/js/JSPluginElementFunctions.cpp: (WebCore::getRuntimeObject):
  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/JSQuarantinedObjectWrapper.cpp: (WebCore::JSQuarantinedObjectWrapper::construct): (WebCore::JSQuarantinedObjectWrapper::call):
  • bindings/js/JSQuarantinedObjectWrapper.h: (WebCore::JSQuarantinedObjectWrapper::unwrappedObject): (WebCore::JSQuarantinedObjectWrapper::unwrappedGlobalObject): (WebCore::JSQuarantinedObjectWrapper::className):
  • bindings/js/JSRGBColor.cpp:
  • bindings/js/JSRGBColor.h: (WebCore::JSRGBColor::classInfo):
  • bindings/js/JSSQLResultSetRowListCustom.cpp:
  • bindings/js/JSSQLTransactionCustom.cpp:
  • bindings/js/JSSVGLazyEventListener.cpp:
  • bindings/js/JSSVGLazyEventListener.h:
  • bindings/js/JSSVGLengthCustom.cpp:
  • bindings/js/JSSVGMatrixCustom.cpp: (WebCore::JSSVGMatrix::inverse): (WebCore::JSSVGMatrix::rotateFromVector):
  • bindings/js/JSSVGPathSegCustom.cpp:
  • bindings/js/JSSVGPathSegListCustom.cpp: (WebCore::JSSVGPathSegList::initialize): (WebCore::JSSVGPathSegList::getItem): (WebCore::JSSVGPathSegList::insertItemBefore): (WebCore::JSSVGPathSegList::replaceItem): (WebCore::JSSVGPathSegList::removeItem): (WebCore::JSSVGPathSegList::appendItem):
  • bindings/js/JSSVGPointListCustom.cpp:
  • bindings/js/JSSVGTransformListCustom.cpp:
  • bindings/js/JSStorageCustom.cpp:
  • bindings/js/JSStyleSheetCustom.cpp:
  • bindings/js/JSStyleSheetListCustom.cpp:
  • bindings/js/JSTextCustom.cpp:
  • bindings/js/JSTreeWalkerCustom.cpp:
  • bindings/js/JSXMLHttpRequestConstructor.cpp:
  • bindings/js/JSXMLHttpRequestConstructor.h: (WebCore::JSXMLHttpRequestConstructor::classInfo):
  • bindings/js/JSXMLHttpRequestCustom.cpp:
  • bindings/js/JSXMLHttpRequestUploadCustom.cpp:
  • bindings/js/JSXSLTProcessorConstructor.cpp:
  • bindings/js/JSXSLTProcessorConstructor.h: (WebCore::JSXSLTProcessorConstructor::classInfo):
  • bindings/js/JSXSLTProcessorCustom.cpp:
  • bindings/js/ScheduledAction.cpp:
  • bindings/js/ScheduledAction.h:
  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::attachDebugger): (WebCore::ScriptController::windowScriptNPObject):
  • bindings/js/ScriptController.h:
  • bindings/js/ScriptControllerGtk.cpp: (WebCore::ScriptController::createScriptInstanceForWidget):
  • bindings/js/ScriptControllerMac.mm: (WebCore::ScriptController::createScriptInstanceForWidget): (WebCore::ScriptController::windowScriptObject): (WebCore::ScriptController::clearPlatformScriptObjects): (WebCore::updateRenderingForBindings): (WebCore::ScriptController::initJavaJSBindings):
  • bindings/js/ScriptControllerQt.cpp: (WebCore::ScriptController::createScriptInstanceForWidget):
  • bindings/js/ScriptControllerWin.cpp: (WebCore::ScriptController::createScriptInstanceForWidget):
  • bindings/js/ScriptControllerWx.cpp: (WebCore::ScriptController::createScriptInstanceForWidget):
  • bindings/js/StringSourceProvider.h: (WebCore::StringSourceProvider::getRange):
  • bindings/objc/DOM.mm: (-[DOMNode JSC::Bindings::]):
  • bindings/objc/DOMInternal.h:
  • bindings/objc/DOMInternal.mm: (-[WebScriptObject _initializeScriptDOMNodeImp]):
  • bindings/objc/DOMUtility.mm: (JSC::createDOMWrapper): (WebCore::createDOMWrapper):
  • bindings/objc/WebScriptObject.mm: (WebCore::createJSWrapper): (-[WebScriptObject _initWithJSObject:JSC::originRootObject:JSC::Bindings::rootObject:JSC::Bindings::]):
  • bindings/objc/WebScriptObjectPrivate.h:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/NP_jsobject.cpp:
  • bridge/NP_jsobject.h:
  • bridge/c/c_class.cpp:
  • bridge/c/c_class.h:
  • bridge/c/c_instance.cpp:
  • bridge/c/c_instance.h:
  • bridge/c/c_runtime.cpp:
  • bridge/c/c_runtime.h:
  • bridge/c/c_utility.cpp:
  • bridge/c/c_utility.h:
  • bridge/jni/jni_class.cpp:
  • bridge/jni/jni_class.h:
  • bridge/jni/jni_instance.cpp:
  • bridge/jni/jni_instance.h:
  • bridge/jni/jni_jsobject.h:
  • bridge/jni/jni_jsobject.mm: (JavaJSObject::call): (JavaJSObject::convertJObjectToValue):
  • bridge/jni/jni_objc.mm: (JSC::Bindings::dispatchJNICall):
  • bridge/jni/jni_runtime.cpp:
  • bridge/jni/jni_runtime.h:
  • bridge/jni/jni_utility.cpp:
  • bridge/jni/jni_utility.h:
  • bridge/npruntime.cpp: (_NPN_GetStringIdentifier):
  • bridge/objc/WebScriptObject.h:
  • bridge/objc/objc_class.h:
  • bridge/objc/objc_class.mm:
  • bridge/objc/objc_instance.h:
  • bridge/objc/objc_instance.mm:
  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:
  • bridge/objc/objc_utility.h:
  • bridge/objc/objc_utility.mm:
  • bridge/qt/qt_class.cpp:
  • bridge/qt/qt_class.h:
  • bridge/qt/qt_instance.cpp:
  • bridge/qt/qt_instance.h:
  • bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertQVariantToValue): (JSC::Bindings::):
  • bridge/qt/qt_runtime.h:
  • bridge/runtime.cpp:
  • bridge/runtime.h:
  • bridge/runtime_array.cpp:
  • bridge/runtime_array.h:
  • bridge/runtime_method.cpp:
  • bridge/runtime_method.h:
  • bridge/runtime_object.cpp:
  • bridge/runtime_object.h:
  • bridge/runtime_root.cpp: (JSC::Bindings::RootObject::invalidate): (JSC::Bindings::RootObject::gcProtect): (JSC::Bindings::RootObject::gcUnprotect):
  • bridge/runtime_root.h:
  • bridge/testbindings.cpp:
  • bridge/testbindings.mm:
  • bridge/testqtbindings.cpp:
  • dom/Document.cpp: (WebCore::Document::~Document):
  • dom/NSResolver.h:
  • dom/Node.cpp: (WebCore::Node::setDocument): (WebCore::ResolveNamespaceFunctor::ResolveNamespaceFunctor): (WebCore::resolveNamespacesForSelector): (WebCore::Node::querySelector): (WebCore::Node::querySelectorAll):
  • dom/Node.h:
  • dom/NodeFilter.cpp:
  • dom/NodeFilter.h:
  • dom/NodeFilterCondition.cpp:
  • dom/NodeFilterCondition.h:
  • dom/NodeIterator.cpp:
  • dom/NodeIterator.h:
  • dom/Traversal.cpp:
  • dom/Traversal.h:
  • dom/TreeWalker.cpp:
  • dom/TreeWalker.h:
  • dom/make_names.pl:
  • history/CachedPage.cpp:
  • history/CachedPage.h:
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::getInstance):
  • html/HTMLPlugInElement.h:
  • loader/FrameLoader.cpp:
  • loader/FrameLoader.h:
  • loader/icon/IconDatabase.cpp: (WebCore::iconDatabase):
  • page/Console.cpp:
  • page/Console.h:
  • page/InspectorController.cpp: (WebCore::XMLHttpRequestResource::XMLHttpRequestResource): (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource): (WebCore::InspectorResource::setXMLHttpRequestProperties): (WebCore::InspectorResource::sourceString): (WebCore::getResourceDocumentNode): (WebCore::search): (WebCore::InspectorController::focusNode): (WebCore::InspectorController::inspectedWindowScriptObjectCleared): (WebCore::InspectorController::addDatabaseScriptResource): (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
  • page/InspectorController.h: (WebCore::InspectorController::profiles):
  • page/JavaScriptCallFrame.cpp: (WebCore::JavaScriptCallFrame::scopeChain):
  • page/JavaScriptCallFrame.h: (WebCore::JavaScriptCallFrame::create): (WebCore::JavaScriptCallFrame::update):
  • page/JavaScriptDebugListener.h:
  • page/JavaScriptDebugServer.cpp: (WebCore::dispatchDidParseSource):
  • page/JavaScriptDebugServer.h:
  • page/JavaScriptProfile.cpp:
  • page/JavaScriptProfile.h:
  • page/JavaScriptProfileNode.cpp: (WebCore::getTotalTime): (WebCore::getSelfTime): (WebCore::getTotalPercent): (WebCore::getSelfPercent): (WebCore::getNumberOfCalls): (WebCore::getChildren): (WebCore::getVisible):
  • page/JavaScriptProfileNode.h:
  • page/Page.cpp: (WebCore::Page::setDebuggerForAllPages): (WebCore::Page::setDebugger):
  • page/Page.h: (WebCore::Page::debugger):
  • page/mac/FrameMac.mm:
  • platform/KURL.h: (WebCore::KURL::operator JSC::UString):
  • platform/text/AtomicString.cpp: (WebCore::AtomicString::add): (WebCore::AtomicString::find):
  • platform/text/AtomicString.h: (WebCore::AtomicString::AtomicString):
  • platform/text/PlatformString.h:
  • platform/text/String.cpp: (WebCore::charactersToDouble):
  • platform/win/BString.cpp:
  • platform/win/BString.h:
  • plugins/MimeTypeArray.h:
  • plugins/Plugin.h:
  • plugins/PluginArray.h:
  • plugins/PluginView.cpp: (WebCore::PluginView::start): (WebCore::PluginView::performRequest): (WebCore::PluginView::bindingInstance):
  • plugins/PluginView.h:
  • plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::paint): (WebCore::PluginView::handleKeyboardEvent): (WebCore::PluginView::handleMouseEvent): (WebCore::PluginView::setNPWindowRect): (WebCore::PluginView::stop): (WebCore::PluginView::init):
  • plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::setNPWindowRect): (WebCore::PluginView::stop): (WebCore::PluginView::init):
  • plugins/win/PluginViewWin.cpp: (WebCore::PluginView::dispatchNPEvent): (WebCore::PluginView::handleKeyboardEvent): (WebCore::PluginView::handleMouseEvent): (WebCore::PluginView::setNPWindowRect): (WebCore::PluginView::stop):
  • storage/Database.cpp: (WebCore::Database::Database):
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseText): (WebCore::XMLHttpRequest::loadRequestAsynchronously): (WebCore::XMLHttpRequest::clearResponse): (WebCore::XMLHttpRequest::dropProtection): (WebCore::XMLHttpRequest::didFinishLoading): (WebCore::XMLHttpRequest::didReceiveData):
  • xml/XMLHttpRequest.h:

WebKit/gtk:

  • webkit/webkitprivate.cpp: (webkit_init):

WebKit/mac:

  • Misc/WebCoreStatistics.mm:
  • Plugins/WebBaseNetscapePluginStream.mm: (-[WebBaseNetscapePluginStream wantsAllStreams]):
  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView sendEvent:isDrawRect:]): (-[WebBaseNetscapePluginView setWindowIfNecessary]): (-[WebBaseNetscapePluginView start]): (-[WebBaseNetscapePluginView createPluginScriptableObject]): (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): (-[WebBaseNetscapePluginView loadPluginRequest:]): (-[WebBaseNetscapePluginView _printedPluginBitmap]):
  • Plugins/WebPluginController.mm: (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): (-[WebPluginController startAllPlugins]): (-[WebPluginController stopAllPlugins]): (-[WebPluginController addPlugin:]): (-[WebPluginController destroyPlugin:]): (-[WebPluginController destroyAllPlugins]):
  • WebView/WebFrame.mm:
  • WebView/WebScriptDebugDelegate.mm:
  • WebView/WebScriptDebugger.h:
  • WebView/WebScriptDebugger.mm:
  • WebView/WebView.mm: (-[WebViewPrivate init]):

WebKit/qt:


  • Api/qwebframe.cpp: (QWebFrame::addToJavaScriptWindowObject): (QWebFrame::evaluateJavaScript):

WebKit/win:

  • WebCoreStatistics.cpp:
  • WebJavaScriptCollector.cpp:
  • WebScriptCallFrame.cpp: (WebScriptCallFrame::jsValueToString):
  • WebScriptCallFrame.h: (WebScriptCallFrame::state):
  • WebView.cpp: (WebView::WebView): (WebView::stringByEvaluatingJavaScriptFromString):

WebKit/wx:

  • WebFrame.cpp: (wxWebFrame::RunScript):
17:03 Changeset [36262] by abarth@webkit.org
  • 3 edits
    7 adds in trunk

WebCore:

2008-09-07 Adam Barth <abarth@webkit.org>

Reviewed by Sam Weinig.

Adopt opener restriction on frame navigation.

https://bugs.webkit.org/show_bug.cgi?id=20642

This restriction helps prevent an attacker from navigating top-level
windows that were created by another web site.

Tests: http/tests/security/frameNavigation/not-opener.html

http/tests/security/frameNavigation/opener.html

  • loader/FrameLoader.cpp: (WebCore::canAccessAncestor): (WebCore::FrameLoader::shouldAllowNavigation):

LayoutTests:

2008-09-07 Adam Barth <abarth@webkit.org>

Reviewed by Sam Weinig.

Tests that opener restriction is working properly.

https://bugs.webkit.org/show_bug.cgi?id=20642

  • http/tests/security/frameNavigation/not-opener-expected.txt: Added.
  • http/tests/security/frameNavigation/not-opener.html: Added.
  • http/tests/security/frameNavigation/opener-expected.txt: Copied from LayoutTests/fast/dom/Document/early-document-access-expected.txt.
  • http/tests/security/frameNavigation/opener.html: Added.
  • http/tests/security/frameNavigation/resources/not-opener-helper.html: Added.
  • http/tests/security/frameNavigation/resources/pass.html: Added.
  • http/tests/security/frameNavigation/resources/ready.html: Added.
16:23 Changeset [36261] by mjs@apple.com
  • 7 edits
    1 move in trunk/JavaScriptCore

2008-09-07 Maciej Stachowiak <mjs@apple.com>

Reviewed by Dan Bernstein.


  • rename IA32MacroAssembler class to X86Assembler


We otherwise call the platform X86, and also, I don't see any macros.

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • masm/IA32MacroAsm.h: Removed.
  • masm/MacroAssembler.h: (KJS::MacroAssembler::MacroAssembler):
  • masm/MacroAssemblerWin.cpp: (KJS::MacroAssembler::emitRestoreArgumentReference):
  • masm/X86Assembler.h: Copied from masm/IA32MacroAsm.h. (KJS::X86Assembler::X86Assembler):
  • wrec/WREC.cpp: (KJS::WRECGenerator::generateNonGreedyQuantifier): (KJS::WRECGenerator::generateGreedyQuantifier): (KJS::WRECGenerator::generateParentheses): (KJS::WRECGenerator::generateBackreference): (KJS::WRECGenerator::gernerateDisjunction):
  • wrec/WREC.h:
16:19 Changeset [36260] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Maciej Stachowiak.

  • use the correct sign for vertical offsets of combining marks
  • platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::shapeAndPlaceItem):
15:30 Changeset [36259] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Dave Hyatt.

  • add the combining mark offsets in two places where I forgot them
  • platform/graphics/win/FontCGWin.cpp: (WebCore::Font::drawGlyphs):
15:29 Changeset [36258] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Dave Hyatt.

  • correct glyph advances in complex text using web fonts rendered with Core Graphics
  • platform/graphics/win/FontCustomPlatformData.cpp: (WebCore::FontCustomPlatformData::fontPlatformData):
10:28 Changeset [36257] by timothy@apple.com
  • 2 edits in trunk/PlanetWebKit

Add the Chromium Blog to Planet WebKit.

Reviewed by Tim Hatcher.

  • config.ini: Add The Chromium Blog
09:48 Changeset [36256] by timothy@apple.com
  • 2 adds in trunk/WebCore/manual-tests/inspector

Add a manual-test I forgot to commit in r36029.

09:48 Changeset [36255] by timothy@apple.com
  • 12 edits
    1 add in trunk/WebCore

Adds console.dirxml support to the Web Inspector.

https://bugs.webkit.org/show_bug.cgi?id=19156

Reviewed by Timothy Hatcher.

  • WebCore.vcproj/WebCore.vcproj: Added ElementsTreeOutline.js.
  • bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::dirxml):
  • page/Console.cpp: (WebCore::Console::dirxml): Adds a ConsoleMessage with NodeMessageLevel.
  • page/Console.h: (WebCore::): Added NodeMessageLevel.
  • page/Console.idl: Added console.dirxml.
  • page/inspector/Console.js: A NodeMessage creates a ElementsTreeOutline.
  • page/inspector/ElementsPanel.js: Modified to use ElementsTreeOutline. The ElementsTreeOutline in the ElementsPanel has includeRootDOMNode and selectEnabled set to true.
  • page/inspector/ElementsTreeOutline.js: Added. (WebInspector.ElementsTreeOutline): A subclass of TreeOutline for displaying a DOM node tree. (WebInspector.ElementsTreeElement): A subclass of TreeElement for ElementsTreeOutline.
  • page/inspector/WebKit.qrc: Added ElementsTreeOutline.js.
  • page/inspector/inspector.css:
  • page/inspector/inspector.html: Added ElementsTreeOutline.js.
  • page/inspector/inspector.js: Moved hover related methods to WebInspector. (WebInspector.altKeyDown): (WebInspector.forceHoverHighlight): (WebInspector.hoveredDOMNode): (WebInspector._updateHoverHighlightSoon): (WebInspector._updateHoverHighlight): (WebInspector.documentKeyDown): Updates WebInspector.altKeyDown (WebInspector.documentKeyUp): Updates WebInspector.altKeyDown
  • page/inspector/utilities.js: Added getDocumentForNode, parentNodeOrFrameElement, isAncestorIncludingParentFrames.
02:20 Changeset [36254] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-07 Cameron Zwarich <cwzwarich@webkit.org>

Not reviewed.

Visual C++ seems to have some odd casting rules, so just convert the
offending cast back to a C-style cast for now.

  • kjs/collector.cpp: (KJS::otherThreadStackPointer):
02:09 Changeset [36253] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Mark Rowe.

Attempt to fix the Windows build by using a const_cast to cast regs.Esp
to a uintptr_t instead of a reinterpret_cast.

  • kjs/collector.cpp: (KJS::otherThreadStackPointer):
01:41 Changeset [36252] by mrowe@apple.com
  • 3 edits in trunk/WebKit/win

Roll out r36245 in hopes of fixing the Windows nightly builds with Safari 3.1.2.

Rubber-stamped by Tim Hatcher.

01:39 Changeset [36251] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Sam Weinig.

Remove C-style casts from kjs/collector.cpp.

  • kjs/collector.cpp: (KJS::Heap::heapAllocate): (KJS::currentThreadStackBase): (KJS::Heap::markConservatively): (KJS::otherThreadStackPointer): (KJS::Heap::markOtherThreadConservatively): (KJS::Heap::sweep):
00:54 Changeset [36250] by mrowe@apple.com
  • 2 edits in trunk/JavaScriptCore

Build fix for the debug variant.

  • DerivedSources.make: Also use the .Debug.exp exports file when building the debug variant.
00:21 Changeset [36249] by cwzwarich@webkit.org
  • 2 edits in trunk/JavaScriptCore

2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Timothy Hatcher.

Remove C-style casts from the CTI code.

  • VM/CTI.cpp: (KJS::CTI::emitGetArg): (KJS::CTI::emitGetPutArg): (KJS::ctiRepatchCallByReturnAddress): (KJS::CTI::compileOpCall): (KJS::CTI::privateCompileMainPass): (KJS::CTI::privateCompileGetByIdSelf): (KJS::CTI::privateCompileGetByIdProto): (KJS::CTI::privateCompileGetByIdChain): (KJS::CTI::privateCompilePutByIdReplace): (KJS::CTI::privateArrayLengthTrampoline): (KJS::CTI::privateStringLengthTrampoline):
00:12 Changeset [36248] by slewis@apple.com
  • 3 edits in trunk/WebKitTools

2008-09-07 Stephanie Lewis <slewis@apple.com>

Reviewed by Mark Rowe.

Fix DRT build

  • DumpRenderTree/DumpRenderTreePrefix.h:
  • DumpRenderTree/win/DumpRenderTree.vcproj:

09/06/08:

23:08 Changeset [36247] by mrowe@apple.com
  • 2 edits in trunk/WebCore

Qt build fix.

22:50 Changeset [36246] by sfalken@apple.com
  • 3 edits
    3 adds in trunk/WebKitTools

Fix Windows nightlies.


Copy WebKit.dll alongside application so registry-free COM can find it.
Update embedded manifest to force use registry-free COM.

Reviewed by Dave Hyatt.

  • FindSafari/FindSafari.cpp: (copyManifest): (replaceManifest): (_tmain):
  • FindSafari/FindSafari.rc: Added.
  • FindSafari/FindSafari.vcproj:
  • FindSafari/Safari.exe.manifest: Added.
  • FindSafari/resource.h: Added.
22:48 Changeset [36245] by sfalken@apple.com
  • 3 edits in trunk/WebKit/win

Fix Windows nightlies.


Include both nightly and production CLSIDs in our interfaces, type library.
Remove COM registration code.

Reviewed by Dave Hyatt.

  • ForEachCoClass.cpp: (setUseOpenSourceWebKit):
  • Interfaces/WebKit.idl:
22:44 Changeset [36244] by mrowe@apple.com
  • 45 edits
    17 adds in trunk

Merge squirrelfish-extreme to trunk.

22:20 Changeset [36243] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/VM/CTI.h

Build fix.

21:44 Changeset [36242] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/kjs/regexp.cpp

Windows build fix.

21:37 Changeset [36241] by mrowe@apple.com
  • 6 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-06 Gavin Barraclough <barraclough@apple.com>

Reviewed by Sam Weinig. Adapted somewhat by Maciej Stachowiak.


  • refactor WREC to share more of the JIT infrastructure with CTI
  • VM/CTI.cpp: (KJS::CTI::emitGetArg): (KJS::CTI::emitGetPutArg): (KJS::CTI::emitPutArg): (KJS::CTI::emitPutArgConstant): (KJS::CTI::emitPutCTIParam): (KJS::CTI::emitGetCTIParam): (KJS::CTI::emitPutToCallFrameHeader): (KJS::CTI::emitGetFromCallFrameHeader): (KJS::CTI::emitPutResult): (KJS::CTI::emitDebugExceptionCheck): (KJS::CTI::emitJumpSlowCaseIfNotImm): (KJS::CTI::emitJumpSlowCaseIfNotImms): (KJS::CTI::emitFastArithDeTagImmediate): (KJS::CTI::emitFastArithReTagImmediate): (KJS::CTI::emitFastArithPotentiallyReTagImmediate): (KJS::CTI::emitFastArithImmToInt): (KJS::CTI::emitFastArithIntToImmOrSlowCase): (KJS::CTI::emitFastArithIntToImmNoCheck): (KJS::CTI::CTI): (KJS::CTI::compileOpCall): (KJS::CTI::privateCompileMainPass): (KJS::CTI::privateCompileSlowCases): (KJS::CTI::privateCompile): (KJS::CTI::privateCompileGetByIdSelf): (KJS::CTI::privateCompileGetByIdProto): (KJS::CTI::privateCompileGetByIdChain): (KJS::CTI::privateCompilePutByIdReplace): (KJS::CTI::privateArrayLengthTrampoline): (KJS::CTI::privateStringLengthTrampoline): (KJS::CTI::compileRegExp):
  • VM/CTI.h: (KJS::CallRecord::CallRecord): (KJS::JmpTable::JmpTable): (KJS::SlowCaseEntry::SlowCaseEntry): (KJS::CTI::JSRInfo::JSRInfo):
  • kjs/regexp.cpp: (KJS::RegExp::RegExp):
  • wrec/WREC.cpp: (KJS::GenerateParenthesesNonGreedyFunctor::GenerateParenthesesNonGreedyFunctor): (KJS::GeneratePatternCharacterFunctor::generateAtom): (KJS::GeneratePatternCharacterFunctor::backtrack): (KJS::GenerateCharacterClassFunctor::generateAtom): (KJS::GenerateCharacterClassFunctor::backtrack): (KJS::GenerateBackreferenceFunctor::generateAtom): (KJS::GenerateBackreferenceFunctor::backtrack): (KJS::GenerateParenthesesNonGreedyFunctor::generateAtom): (KJS::GenerateParenthesesNonGreedyFunctor::backtrack): (KJS::WRECGenerate::generateBacktrack1): (KJS::WRECGenerate::generateBacktrackBackreference): (KJS::WRECGenerate::generateBackreferenceQuantifier): (KJS::WRECGenerate::generateNonGreedyQuantifier): (KJS::WRECGenerate::generateGreedyQuantifier): (KJS::WRECGenerate::generatePatternCharacter): (KJS::WRECGenerate::generateCharacterClassInvertedRange): (KJS::WRECGenerate::generateCharacterClassInverted): (KJS::WRECGenerate::generateCharacterClass): (KJS::WRECGenerate::generateParentheses): (KJS::WRECGenerate::generateParenthesesNonGreedy): (KJS::WRECGenerate::gererateParenthesesResetTrampoline): (KJS::WRECGenerate::generateAssertionBOL): (KJS::WRECGenerate::generateAssertionEOL): (KJS::WRECGenerate::generateAssertionWordBoundary): (KJS::WRECGenerate::generateBackreference): (KJS::WRECGenerate::gernerateDisjunction): (KJS::WRECGenerate::terminateDisjunction): (KJS::WRECParser::parseGreedyQuantifier): (KJS::WRECParser::parseQuantifier): (KJS::WRECParser::parsePatternCharacterQualifier): (KJS::WRECParser::parseCharacterClassQuantifier): (KJS::WRECParser::parseBackreferenceQuantifier): (KJS::WRECParser::parseParentheses): (KJS::WRECParser::parseCharacterClass): (KJS::WRECParser::parseOctalEscape): (KJS::WRECParser::parseEscape): (KJS::WRECParser::parseTerm): (KJS::WRECParser::parseDisjunction):
  • wrec/WREC.h: (KJS::WRECGenerate::WRECGenerate): (KJS::WRECParser::): (KJS::WRECParser::WRECParser): (KJS::WRECParser::parseAlternative): (KJS::WRECParser::isEndOfPattern):
21:37 Changeset [36240] by mrowe@apple.com
  • 114 edits
    3 copies
    1 move
    13 adds
    2 deletes in branches/squirrelfish-extreme

Merge up to r36133.

21:37 Changeset [36239] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/ChangeLog

Re-review a patch only reviewed by Gavin before.

21:37 Changeset [36238] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix the sampler build.

Reviewed by NOBODY(build fix)

21:37 Changeset [36237] by mrowe@apple.com
  • 10 edits
    1 delete in branches/squirrelfish-extreme/JavaScriptCore

Jump through the necessary hoops required to make MSVC cooperate with SFX

Reviewed by Maciej Stachowiak

We now explicitly declare the calling convention on all cti_op_* cfunctions,
and return int instead of bool where appropriate (despite the cdecl calling
convention seems to state MSVC generates code that returns the result value
through ecx). SFX behaves slightly differently under MSVC, specifically it
stores the base argument address for the cti_op_* functions in the first
argument, and then does the required stack manipulation through that pointer.
This is necessary as MSVC's optimisations assume they have complete control
of the stack, and periodically elide our stack manipulations, or move
values in unexpected ways. MSVC also frequently produces tail calls which may
clobber the first argument, so the MSVC path is slightly less efficient due
to the need to restore it.

21:37 Changeset [36236] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Maciej Stachowiak, or maybe the other way around.


Added the ability to coalesce JITCode buffer grow operations by first
growing the buffer and then executing unchecked puts to it.


About a 2% speedup on date-format-tofte.

  • VM/CTI.cpp: (KJS::CTI::compileOpCall):
  • masm/IA32MacroAsm.h: (KJS::JITCodeBuffer::ensureSpace): (KJS::JITCodeBuffer::putByteUnchecked): (KJS::JITCodeBuffer::putByte): (KJS::JITCodeBuffer::putShortUnchecked): (KJS::JITCodeBuffer::putShort): (KJS::JITCodeBuffer::putIntUnchecked): (KJS::JITCodeBuffer::putInt): (KJS::IA32MacroAssembler::emitTestl_i32r): (KJS::IA32MacroAssembler::emitMovl_mr): (KJS::IA32MacroAssembler::emitMovl_rm): (KJS::IA32MacroAssembler::emitMovl_i32m): (KJS::IA32MacroAssembler::emitUnlinkedJe): (KJS::IA32MacroAssembler::emitModRm_rr): (KJS::IA32MacroAssembler::emitModRm_rr_Unchecked): (KJS::IA32MacroAssembler::emitModRm_rm_Unchecked): (KJS::IA32MacroAssembler::emitModRm_rm): (KJS::IA32MacroAssembler::emitModRm_opr): (KJS::IA32MacroAssembler::emitModRm_opr_Unchecked): (KJS::IA32MacroAssembler::emitModRm_opm_Unchecked):
21:37 Changeset [36235] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Disable WREC and CTI on platforms that we have not yet had a chance to test with.

Reviewed by Sam Weinig.

21:37 Changeset [36234] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.


Use jo instead of a mask compare when fetching array.length and
string.length. 4% speedup on array.length / string.length torture
test.

  • VM/CTI.cpp: (KJS::CTI::privateArrayLengthTrampoline): (KJS::CTI::privateStringLengthTrampoline):
21:36 Changeset [36233] by mrowe@apple.com
  • 7 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-05 Geoffrey Garen <ggaren@apple.com>

Reviewed by Sam Weinig.

Removed a CTI compilation pass by recording labels during bytecode
generation. This is more to reduce complexity than it is to improve
performance.

SunSpider reports no change.

CodeBlock now keeps a "labels" set, which holds the offsets of all the
instructions that can be jumped to.

  • VM/CTI.cpp: Nixed a pass.
  • VM/CodeBlock.h: Added a "labels" set.
  • VM/LabelID.h: No need for a special LableID for holding jump destinations, since the CodeBlock now knows all jump destinations.
  • wtf/HashTraits.h: New hash traits to accomodate putting offset 0 in the set.
  • kjs/nodes.cpp: (KJS::TryNode::emitCode): Emit a dummy label to record sret targets.
21:36 Changeset [36232] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/ChangeLog

Re-review changes only reviewed by Gavin.

21:36 Changeset [36231] by mrowe@apple.com
  • 15 edits in branches/squirrelfish-extreme/JavaScriptCore

Move the JITCodeBuffer onto Machine and remove the static variables.

Reviewed by Oliver Hunt and Gavin Barraclough.

  • VM/CTI.cpp: Initialize m_jit with the Machine's code buffer.
  • VM/Machine.cpp:

(KJS::Machine::Machine): Allocate a JITCodeBuffer.

  • VM/Machine.h:
  • kjs/RegExpConstructor.cpp:

(KJS::constructRegExp): Pass the ExecState through.

  • kjs/RegExpPrototype.cpp:

(KJS::regExpProtoFuncCompile): Ditto.

  • kjs/StringPrototype.cpp:

(KJS::stringProtoFuncMatch): Ditto.
(KJS::stringProtoFuncSearch): Ditto.

  • kjs/nodes.cpp:

(KJS::RegExpNode::emitCode): Compile the pattern at code generation time
so that we have access to an ExecState.

  • kjs/nodes.h:

(KJS::RegExpNode::):

  • kjs/nodes2string.cpp:
  • kjs/regexp.cpp:

(KJS::RegExp::RegExp): Pass the ExecState through.
(KJS::RegExp::create): Ditto.

  • kjs/regexp.h:
  • masm/IA32MacroAsm.h:

(KJS::IA32MacroAssembler::IA32MacroAssembler): Reset the JITCodeBuffer when we are
constructed.

  • wrec/WREC.cpp:

(KJS::WRECompiler::compile): Retrieve the JITCodeBuffer from the Machine.

  • wrec/WREC.h:
21:36 Changeset [36230] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix the build when CTI is disabled.

Reviewed by Oliver Hunt and Gavin Barraclough.

21:36 Changeset [36229] by mrowe@apple.com
  • 5 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-05 Gavin Barraclough <barraclough@apple.com>

Reviewed by Mark Rowe.

Fix some windows abi issues.

  • VM/CTI.cpp: (KJS::CTI::privateCompileMainPass): (KJS::CTI::privateCompileSlowCases):
  • VM/CTI.h: (KJS::CallRecord::CallRecord): (KJS::):
  • VM/Machine.cpp: (KJS::Machine::cti_op_resolve_func): (KJS::Machine::cti_op_post_inc): (KJS::Machine::cti_op_resolve_with_base): (KJS::Machine::cti_op_post_dec):
  • VM/Machine.h:
21:36 Changeset [36228] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix ecma/FunctionObjects/15.3.5.3.js after I broke it in r93.

Reviewed by Sam Weinig.

  • VM/Machine.cpp:

(KJS::Machine::cti_op_call_NotJSFunction): Restore m_callFrame to the correct value after making the native call.
(KJS::Machine::cti_op_construct_NotJSConstruct): Ditto.

21:36 Changeset [36227] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix fast/dom/Window/console-functions.html.

The call frame on the ExecState was not being updated on calls into native functions. This meant that functions
such as console.log would use the line number of the last JS function on the call stack.

Reviewed by Sam Weinig.

  • VM/Machine.cpp:

(KJS::Machine::cti_op_call_NotJSFunction): Update the ExecState's call frame before making a native function call,
and restore it when the function is done.
(KJS::Machine::cti_op_construct_NotJSConstruct): Ditto.

21:36 Changeset [36226] by mrowe@apple.com
  • 9 edits
    4 adds in branches/squirrelfish-extreme

Start bringing up SFX on windows.

Reviewed by Mark Rowe and Sam Weinig

Start doing the work to bring up SFX on windows. Initially
just working on WREC, as it does not make any calls so reduces
the amount of code that needs to be corrected.

Start abstracting the CTI JIT codegen engine.

21:36 Changeset [36225] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Gavin Barraclough <barraclough@apple.com>

Reviewed by Sam Weinig.

Support for slow scripts (timeout checking).

  • VM/CTI.cpp: (KJS::CTI::privateCompileMainPass): (KJS::CTI::privateCompile):
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::Machine::cti_timeout_check): (KJS::Machine::cti_vm_throw):
21:36 Changeset [36224] by mrowe@apple.com
  • 7 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Third round of style cleanup.

  • VM/CTI.cpp:
  • VM/CTI.h:
  • VM/CodeBlock.h:
  • VM/Machine.cpp:
  • VM/Machine.h:
  • kjs/ExecState.h:
21:36 Changeset [36223] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Sam Weinig <sam@webkit.org>

Reviewed by Jon Honeycutt.

Second round of style cleanup.

  • VM/CTI.cpp:
  • VM/CTI.h:
  • wrec/WREC.h:
21:36 Changeset [36222] by mrowe@apple.com
  • 6 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

First round of style cleanup.

  • VM/CTI.cpp:
  • VM/CTI.h:
  • masm/IA32MacroAsm.h:
  • wrec/WREC.cpp:
  • wrec/WREC.h:
21:36 Changeset [36221] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Geoffrey Garen <ggaren@apple.com>

Reviewed by Mark Rowe.


Merged http://trac.webkit.org/changeset/36081 to work with CTI.

  • VM/Machine.cpp: (KJS::Machine::tryCtiCacheGetByID):
21:36 Changeset [36220] by mrowe@apple.com
  • 1 edit
    16 adds in branches/squirrelfish-extreme/LayoutTests

2008-09-04 Geoffrey Garen <ggaren@apple.com>

Checking in some tests that got forgotten in a previous merge.

  • fast/js/pic/cached-deleted-properties-expected.txt: Added.
  • fast/js/pic/cached-deleted-properties.html: Added.
  • fast/js/pic/cached-getter-dictionary-and-proto-expected.txt: Added.
  • fast/js/pic/cached-getter-dictionary-and-proto.html: Added.
  • fast/js/pic/cached-getter-setter-expected.txt: Added.
  • fast/js/pic/cached-getter-setter.html: Added.
  • fast/js/pic/cached-prototype-setter-expected.txt: Added.
  • fast/js/pic/cached-prototype-setter.html: Added.
  • fast/js/pic/cached-single-entry-transition-expected.txt: Added.
  • fast/js/pic/cached-single-entry-transition.html: Added.
  • fast/js/pic/get-empty-string-expected.txt: Added.
  • fast/js/pic/get-empty-string.html: Added.
  • fast/js/pic/get-set-proxy-object-expected.txt: Added.
  • fast/js/pic/get-set-proxy-object.html: Added.
  • fast/js/pic/rehash-poisons-structure-expected.txt: Added.
  • fast/js/pic/rehash-poisons-structure.html: Added.
21:36 Changeset [36219] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Gavin Barraclough <barraclough@apple.com>

Reviewed by Sam Weinig.

Enable profiling in CTI.

  • VM/CTI.h: (KJS::): (KJS::CTI::execute):
  • VM/Machine.cpp: (KJS::Machine::cti_op_call_JSFunction): (KJS::Machine::cti_op_call_NotJSFunction): (KJS::Machine::cti_op_ret): (KJS::Machine::cti_op_construct_JSConstruct): (KJS::Machine::cti_op_construct_NotJSConstruct):
21:36 Changeset [36218] by mrowe@apple.com
  • 205 edits
    6 copies
    3 moves
    65 adds
    2 deletes in branches/squirrelfish-extreme

Merge up to r36102.

21:35 Changeset [36217] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Victor Hernandez <vhernandez@apple.com>

Reviewed by Geoffrey Garen.


Fixed an #if to support using WREC without CTI.

  • kjs/regexp.cpp: (KJS::RegExp::match):
21:35 Changeset [36216] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-04 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

The array/string length trampolines are owned by the Machine, not the codeblock that compiled them.

  • VM/CTI.cpp: (KJS::CTI::privateArrayLengthTrampoline): (KJS::CTI::privateStringLengthTrampoline):
  • VM/Machine.cpp: (KJS::Machine::~Machine):
  • VM/Machine.h:
21:35 Changeset [36215] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix a crash on launch of jsc when GuardMalloc is enabled.

Reviewed by Gavin Barraclough.

  • kjs/ScopeChain.h:

(KJS::ScopeChain::ScopeChain): Initialize m_node to 0 when we have no valid scope chain.
(KJS::ScopeChain::~ScopeChain): Null-check m_node before calling deref.

21:35 Changeset [36214] by mrowe@apple.com
  • 4 edits
    3 adds in branches/squirrelfish-extreme

Fix inspector and fast array access so that it bounds
checks correctly.

Reviewed by Gavin Barraclough

21:35 Changeset [36213] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Move the assertion after the InitializeAndReturn block, as
that is used even when CTI is enabled.

  • VM/Machine.cpp:

(KJS::Machine::privateExecute):

21:35 Changeset [36212] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

Replace calls to exit with ASSERT_WITH_MESSAGE or ASSERT_NOT_REACHED.

Reviewed by Sam Weinig.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile_pass1_Scan):
(KJS::CTI::privateCompile_pass2_Main):
(KJS::CTI::privateCompile_pass4_SlowCases):

  • VM/Machine.cpp:

(KJS::Machine::privateExecute):
(KJS::Machine::cti_vm_throw):

21:35 Changeset [36211] by mrowe@apple.com
  • 12 edits in branches/squirrelfish-extreme/JavaScriptCore

Tweak JavaScriptCore to compile on non-x86 platforms. This is achieved
by wrapping more code with ENABLE(CTI), ENABLE(WREC), and PLATFORM(X86)

Reviewed by Sam Weinig.

  • VM/CTI.cpp:
  • VM/CTI.h:
  • VM/CodeBlock.cpp:

(KJS::CodeBlock::printStructureIDs): Use %td as the format specifier for
printing a ptrdiff_t.

  • VM/Machine.cpp:
  • VM/Machine.h:
  • kjs/regexp.cpp:

(KJS::RegExp::RegExp):
(KJS::RegExp::~RegExp):
(KJS::RegExp::match):

  • kjs/regexp.h:
  • masm/IA32MacroAsm.h:
  • wrec/WREC.cpp:
  • wrec/WREC.h:
  • wtf/Platform.h: Only enable CTI and WREC on x86. Add an extra define to

track whether any MASM-using features are enabled.

21:35 Changeset [36210] by mrowe@apple.com
  • 7 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-03 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Copy Geoff's array/string length optimization for CTI.

  • VM/CTI.cpp: (KJS::CTI::privateArrayLengthTrampoline): (KJS::CTI::privateStringLengthTrampoline):
  • VM/CTI.h: (KJS::CTI::compileArrayLengthTrampoline): (KJS::CTI::compileStringLengthTrampoline):
  • VM/Machine.cpp: (KJS::Machine::Machine): (KJS::Machine::getCtiArrayLengthTrampoline): (KJS::Machine::getCtiStringLengthTrampoline): (KJS::Machine::tryCtiCacheGetByID): (KJS::Machine::cti_op_get_by_id_second):
  • VM/Machine.h:
  • kjs/JSString.h:
  • kjs/ustring.h:
21:35 Changeset [36209] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/VM/CodeBlock.cpp

debug build fix from merge up to 36021

21:35 Changeset [36208] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-03 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Implement fast array accesses in CTI - 2-3% progression on sunspider.

  • VM/CTI.cpp: (KJS::CTI::emitFastArithIntToImmNoCheck): (KJS::CTI::compileOpCall): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile_pass4_SlowCases):
  • VM/CTI.h:
  • kjs/JSArray.h:
21:35 Changeset [36207] by mrowe@apple.com
  • 12 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-02 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Enable fast property access support in CTI.

  • VM/CTI.cpp: (KJS::ctiSetReturnAddress): (KJS::ctiRepatchCallByReturnAddress): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile): (KJS::CTI::privateCompileGetByIdSelf): (KJS::CTI::privateCompileGetByIdProto): (KJS::CTI::privateCompileGetByIdChain): (KJS::CTI::privateCompilePutByIdReplace):
  • VM/CTI.h: (KJS::CTI::compileGetByIdSelf): (KJS::CTI::compileGetByIdProto): (KJS::CTI::compileGetByIdChain): (KJS::CTI::compilePutByIdReplace):
  • VM/CodeBlock.cpp: (KJS::CodeBlock::~CodeBlock):
  • VM/CodeBlock.h:
  • VM/Machine.cpp: (KJS::doSetReturnAddressVmThrowTrampoline): (KJS::Machine::tryCtiCachePutByID): (KJS::Machine::tryCtiCacheGetByID): (KJS::Machine::cti_op_put_by_id): (KJS::Machine::cti_op_put_by_id_second): (KJS::Machine::cti_op_put_by_id_generic): (KJS::Machine::cti_op_put_by_id_fail): (KJS::Machine::cti_op_get_by_id): (KJS::Machine::cti_op_get_by_id_second): (KJS::Machine::cti_op_get_by_id_generic): (KJS::Machine::cti_op_get_by_id_fail): (KJS::Machine::cti_op_throw): (KJS::Machine::cti_vm_throw):
  • VM/Machine.h:
  • kjs/JSCell.h:
  • kjs/JSObject.h:
  • kjs/PropertyMap.h:
  • kjs/StructureID.cpp: (KJS::StructureIDChain::StructureIDChain):
  • masm/IA32MacroAsm.h: (KJS::IA32MacroAssembler::emitCmpl_i32m): (KJS::IA32MacroAssembler::emitMovl_mr): (KJS::IA32MacroAssembler::emitMovl_rm):
21:35 Changeset [36206] by mrowe@apple.com
  • 119 edits
    26 adds in branches/squirrelfish-extreme

JavaScriptCore:

2008-09-02 Gavin Barraclough <barraclough@apple.com>

Merge up to trunk - r36009:36021.

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (KJS::::JSCallbackObject): (KJS::::put):
  • API/JSContextRef.cpp: (JSGlobalContextCreateInGroup):
  • API/JSObjectRef.cpp: (JSObjectMake): (JSObjectSetPrototype): (JSObjectSetProperty):
  • ChangeLog:
  • GNUmakefile.am:
  • JavaScriptCore.exp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/CodeBlock.cpp: (KJS::registerName): (KJS::pointerToSourceString): (KJS::printGetByIdOp): (KJS::printPutByIdOp): (KJS::CodeBlock::printStructureID): (KJS::CodeBlock::printStructureIDs): (KJS::CodeBlock::dump): (KJS::CodeBlock::~CodeBlock): (KJS::CodeBlock::derefStructureIDs): (KJS::CodeBlock::refStructureIDs):
  • VM/CodeBlock.h: (KJS::CodeBlock::CodeBlock):
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::CodeGenerator): (KJS::CodeGenerator::emitGetById): (KJS::CodeGenerator::emitPutById): (KJS::CodeGenerator::emitNewObject):
  • VM/CodeGenerator.h:
  • VM/ExceptionHelpers.cpp: (KJS::InterruptedExecutionError::InterruptedExecutionError): (KJS::createInterruptedExecutionException): (KJS::createNotAnObjectErrorStub):
  • VM/Instruction.h: (KJS::Instruction::Instruction): (KJS::Instruction::):
  • VM/Machine.cpp: (KJS::scopeChainForCall): (KJS::Machine::Machine): (KJS::Machine::execute): (KJS::createExceptionScope): (KJS::cachePrototypeChain): (KJS::Machine::tryCachePutByID): (KJS::Machine::uncachePutByID): (KJS::Machine::tryCacheGetByID): (KJS::Machine::uncacheGetByID): (KJS::Machine::privateExecute): (KJS::Machine::retrieveArguments): (KJS::Machine::cti_op_put_by_id): (KJS::Machine::cti_op_get_by_id): (KJS::Machine::cti_op_put_by_val): (KJS::Machine::cti_op_push_new_scope):
  • VM/Machine.h:
  • VM/Opcode.h:
  • VM/SamplingTool.cpp: (KJS::SamplingTool::dump):
  • kjs/Arguments.cpp: (KJS::Arguments::Arguments): (KJS::Arguments::put):
  • kjs/Arguments.h:
  • kjs/ArrayPrototype.cpp: (KJS::putProperty): (KJS::arrayProtoFuncPop): (KJS::arrayProtoFuncPush): (KJS::arrayProtoFuncShift): (KJS::arrayProtoFuncSplice): (KJS::arrayProtoFuncUnShift):
  • kjs/DateConstructor.cpp: (KJS::DateConstructor::DateConstructor):
  • kjs/InternalFunction.cpp: (KJS::InternalFunction::InternalFunction):
  • kjs/InternalFunction.h: (KJS::InternalFunction::InternalFunction):
  • kjs/JSActivation.cpp: (KJS::JSActivation::JSActivation): (KJS::JSActivation::getOwnPropertySlot): (KJS::JSActivation::put): (KJS::JSActivation::putWithAttributes):
  • kjs/JSActivation.h:
  • kjs/JSArray.cpp: (KJS::JSArray::JSArray): (KJS::JSArray::put): (KJS::JSArray::putSlowCase):
  • kjs/JSArray.h: (KJS::JSArray::):
  • kjs/JSCell.cpp: (KJS::JSCell::put):
  • kjs/JSCell.h: (KJS::JSCell::JSCell): (KJS::JSCell::structureID):
  • kjs/JSFunction.cpp: (KJS::JSFunction::put):
  • kjs/JSFunction.h: (KJS::JSFunction::JSFunction):
  • kjs/JSGlobalData.cpp: (KJS::JSGlobalData::JSGlobalData):
  • kjs/JSGlobalData.h:
  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::put): (KJS::JSGlobalObject::putWithAttributes): (KJS::JSGlobalObject::reset): (KJS::JSGlobalObject::resetPrototype):
  • kjs/JSGlobalObject.h: (KJS::JSGlobalObject::JSGlobalObject): (KJS::JSGlobalObject::globalData):
  • kjs/JSImmediate.cpp: (KJS::JSImmediate::toObject): (KJS::JSImmediate::prototype):
  • kjs/JSNotAnObject.cpp: (KJS::JSNotAnObject::put):
  • kjs/JSNotAnObject.h: (KJS::JSNotAnObjectErrorStub::JSNotAnObjectErrorStub): (KJS::JSNotAnObject::JSNotAnObject):
  • kjs/JSObject.cpp: (KJS::JSObject::mark): (KJS::JSObject::put): (KJS::JSObject::deleteProperty): (KJS::JSObject::defaultValue): (KJS::JSObject::defineGetter): (KJS::JSObject::defineSetter): (KJS::JSObject::getPropertyNames): (KJS::JSObject::removeDirect): (KJS::JSObject::createInheritorID):
  • kjs/JSObject.h: (KJS::): (KJS::JSObject::offsetForLocation): (KJS::JSObject::hasGetterSetterProperties): (KJS::JSObject::getDirectOffset): (KJS::JSObject::putDirectOffset): (KJS::JSObject::isVariableObject): (KJS::JSObject::isWatchdogException): (KJS::JSObject::JSObject): (KJS::JSObject::~JSObject): (KJS::JSObject::prototype): (KJS::JSObject::setPrototype): (KJS::JSObject::setStructureID): (KJS::JSObject::inheritorID): (KJS::JSObject::getPropertySlot): (KJS::JSObject::getOwnPropertySlotForWrite): (KJS::JSObject::getOwnPropertySlot): (KJS::JSObject::putDirect): (KJS::JSValue::get): (KJS::JSValue::put):
  • kjs/JSStaticScopeObject.cpp: (KJS::JSStaticScopeObject::put):
  • kjs/JSStaticScopeObject.h: (KJS::JSStaticScopeObject::JSStaticScopeObject):
  • kjs/JSValue.h:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObject):
  • kjs/JSWrapperObject.h: (KJS::JSWrapperObject::JSWrapperObject):
  • kjs/MathObject.cpp: (KJS::MathObject::MathObject): (KJS::MathObject::getOwnPropertySlot):
  • kjs/MathObject.h:
  • kjs/ObjectPrototype.cpp: (KJS::ObjectPrototype::ObjectPrototype):
  • kjs/PropertyMap.cpp: (KJS::PropertyMap::put):
  • kjs/PropertyMap.h: (KJS::PropertyMapEntry::PropertyMapEntry): (KJS::PropertyMapHashTable::entries): (KJS::PropertyMapHashTable::allocationSize): (KJS::PropertyMap::getOffset): (KJS::PropertyMap::putOffset): (KJS::PropertyMap::offsetForLocation): (KJS::PropertyMap::offsetForTableLocation):
  • kjs/PropertySlot.h: (KJS::PropertySlot::PropertySlot): (KJS::PropertySlot::isCacheable): (KJS::PropertySlot::cachedOffset): (KJS::PropertySlot::setValueSlot): (KJS::PutPropertySlot::): (KJS::PutPropertySlot::PutPropertySlot): (KJS::PutPropertySlot::setExistingProperty): (KJS::PutPropertySlot::setNewProperty): (KJS::PutPropertySlot::type): (KJS::PutPropertySlot::slotBase): (KJS::PutPropertySlot::isCacheable): (KJS::PutPropertySlot::cachedOffset):
  • kjs/RegExpConstructor.cpp: (KJS::RegExpMatchesArray::put): (KJS::RegExpMatchesArray::fillArrayInstance): (KJS::RegExpConstructor::put):
  • kjs/RegExpConstructor.h:
  • kjs/RegExpObject.cpp: (KJS::RegExpObject::put):
  • kjs/RegExpObject.h:
  • kjs/Shell.cpp: (GlobalObject::GlobalObject): (runWithScripts): (jscmain):
  • kjs/StringObject.cpp: (KJS::StringObject::put):
  • kjs/StringObject.h:
  • kjs/StructureID.cpp: Added. (KJS::StructureID::StructureID): (KJS::StructureID::addPropertyTransition): (KJS::StructureID::dictionaryTransition): (KJS::StructureID::changePrototypeTransition): (KJS::StructureID::getterSetterTransition): (KJS::StructureID::~StructureID): (KJS::StructureIDChain::StructureIDChain):
  • kjs/StructureID.h: Added. (KJS::StructureID::create): (KJS::StructureID::mark): (KJS::StructureID::isDictionary): (KJS::StructureID::prototype): (KJS::StructureID::setCachedPrototypeChain): (KJS::StructureID::cachedPrototypeChain): (KJS::StructureIDChain::create): (KJS::StructureIDChain::head):
  • kjs/SymbolTable.h:
  • kjs/lookup.cpp: (KJS::setUpStaticFunctionSlot):
  • kjs/lookup.h: (KJS::lookupPut):
  • kjs/nodes.cpp: (KJS::FuncExprNode::makeFunction):
  • kjs/ustring.h: (WTF::): (WTF::IdentifierRepHash::hash):

JavaScriptGlue:

2008-09-02 Geoffrey Garen <ggaren@apple.com>

Reviewed by Darin Adler.

First cut at inline caching for access to vanilla JavaScript properties.


Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
to JavaScriptGlue classes, and PutPropertySlot& arguments to put functions.

WebCore:

2008-09-02 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=20571
Make sure Window object can assign Animation/Transition event
listeners via attributes.

Also added a bunch of transition event tests, although
only transition-end-event-window is directly relevant to this patch.

(WebCore::JSDOMWindowBase::put):

Tests: transitions/transition-end-event-all-properties.html

transitions/transition-end-event-attributes.html
transitions/transition-end-event-container.html
transitions/transition-end-event-left.html
transitions/transition-end-event-multiple-01.html
transitions/transition-end-event-multiple-02.html
transitions/transition-end-event-multiple-03.html
transitions/transition-end-event-multiple-04.html
transitions/transition-end-event-nested.html
transitions/transition-end-event-transform.html
transitions/transition-end-event-window.html

WebKit/gtk:

2008-09-02 Alp Toker <alp@nuanti.com>

Reviewed by Eric Seidel.

https://bugs.webkit.org/show_bug.cgi?id=19939
[GTK] webkit_web_history_item_get_title() fails with assertion

Make sure newly constructed WebHistoryItem objects wrap a WebCore
history item when necessary. Avoid G_PARAM_CONSTRUCT since it destroys
history data -- use WEBKIT_PARAM flags instead as they do the right
thing. This restores history functionality.

Also use CString to simplify UTF-8 string management.

  • webkit/webkitwebbackforwardlist.cpp: (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): No need to initialize the vector with a size since it's cleared by the callee.
  • webkit/webkitwebhistoryitem.cpp: (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri):

LayoutTests:

2008-09-02 Dean Jackson <dino@apple.com>

Reviewed by Sam Weinig.

https://bugs.webkit.org/show_bug.cgi?id=20571
Add a bunch of tests for WebKitTransitionEndEvents.

  • transitions/end-event-helpers.js: Added.
  • transitions/interrupted-all-transition-expected.txt:
  • transitions/interrupted-all-transition.html:
  • transitions/opacity-transition-zindex-expected.txt:
  • transitions/transition-end-event-all-properties-expected.txt: Added.
  • transitions/transition-end-event-all-properties.html: Added.
  • transitions/transition-end-event-attributes-expected.txt: Added.
  • transitions/transition-end-event-attributes.html: Added.
  • transitions/transition-end-event-container-expected.txt: Added.
  • transitions/transition-end-event-container.html: Added.
  • transitions/transition-end-event-left-expected.txt: Added.
  • transitions/transition-end-event-left.html: Added.
  • transitions/transition-end-event-multiple-01-expected.txt: Added.
  • transitions/transition-end-event-multiple-01.html: Added.
  • transitions/transition-end-event-multiple-02-expected.txt: Added.
  • transitions/transition-end-event-multiple-02.html: Added.
  • transitions/transition-end-event-multiple-03-expected.txt: Added.
  • transitions/transition-end-event-multiple-03.html: Added.
  • transitions/transition-end-event-multiple-04-expected.txt: Added.
  • transitions/transition-end-event-multiple-04.html: Added.
  • transitions/transition-end-event-nested-expected.txt: Added.
  • transitions/transition-end-event-nested.html: Added.
  • transitions/transition-end-event-transform-expected.txt: Added.
  • transitions/transition-end-event-transform.html: Added.
  • transitions/transition-end-event-window-expected.txt: Added.
  • transitions/transition-end-event-window.html: Added.
21:35 Changeset [36205] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/LayoutTests

2008-09-02 Sam Weinig <sam@webkit.org>

Rubber-stamped by Geoff Garen.

Change recursion limit to account for a fatter stack frame.

  • fast/js/deep-recursion-test.html:
21:35 Changeset [36204] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-02 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

A backslash (\) at the of a RegEx should produce an error.
Fixes fast/regex/test1.html.

  • wrec/WREC.cpp: (KJS::WRECompiler::parseEscape):
21:34 Changeset [36203] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-02 Sam Weinig <sam@webkit.org>

Reviewed by Geoff Garen.

Link jumps for the slow case of op_loop_if_less. Fixes acid3.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass4_SlowCases):
21:34 Changeset [36202] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Rubber-stamped by Maciej Stachowiak.

Switch WREC on by default.

  • wtf/Platform.h:
21:34 Changeset [36201] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Fix two failures in fast/regex/test1.html

  • \- in a character class should be treated as a literal -
  • A missing max quantifier needs to be treated differently than a null max quantifier.
  • wrec/WREC.cpp: (KJS::WRECompiler::generateNonGreedyQuantifier): (KJS::WRECompiler::generateGreedyQuantifier): (KJS::WRECompiler::parseCharacterClass):
  • wrec/WREC.h: (KJS::Quantifier::Quantifier):
21:34 Changeset [36200] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Fix crash in fast/js/kde/evil-n.html

  • kjs/regexp.cpp: Always pass a non-null offset vector to the wrec function.
21:34 Changeset [36199] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Add pattern length limit fixing one test in fast/js.

  • wrec/WREC.cpp: (KJS::WRECompiler::compile):
  • wrec/WREC.h: (KJS::WRECompiler::):
21:34 Changeset [36198] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Make octal escape parsing/back-reference parsing more closely match
prior behavior fixing one test in fast/js.

  • wrec/WREC.cpp: (KJS::WRECompiler::parseCharacterClass): 8 and 9 should be IdentityEscaped (KJS::WRECompiler::parseEscape):
  • wrec/WREC.h: (KJS::WRECompiler::peekDigit):
21:34 Changeset [36197] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Fix one mozilla test.

  • wrec/WREC.cpp: (KJS::WRECompiler::generateCharacterClassInverted): Fix incorrect not ascii upper check.
21:34 Changeset [36196] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Parse octal escapes in character classes fixing one mozilla test.

  • wrec/WREC.cpp: (KJS::WRECompiler::parseCharacterClass): (KJS::WRECompiler::parseOctalEscape):
  • wrec/WREC.h: (KJS::WRECompiler::consumeOctal):
21:34 Changeset [36195] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Fixes two mozilla tests with WREC enabled.

  • wrec/WREC.cpp: (KJS::CharacterClassConstructor::append): Keep the character class sorted when appending another character class.
21:34 Changeset [36194] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Fixes two mozilla tests with WREC enabled.

  • wrec/WREC.cpp: (KJS::CharacterClassConstructor::addSortedRange): Insert the range at the correct position instead of appending it to the end.
21:34 Changeset [36193] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Move cross-compilation unit call into NEVER_INLINE function.

  • VM/Machine.cpp: (KJS::doSetReturnAddressVmThrowTrampoline):
21:34 Changeset [36192] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-09-01 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Fix one test in fast/js.

  • VM/Machine.cpp: (KJS::Machine::cti_op_construct_NotJSConstruct): Throw a createNotAConstructorError, instead of a createNotAFunctionError.
21:34 Changeset [36191] by mrowe@apple.com
  • 8 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-31 Gavin Barraclough <barraclough@apple.com>

Reviewed by Maciej Stachowiak.


Zero-cost exception handling. This patch takes the exception checking
back of the hot path. When an exception occurs in a Machine::cti*
method, the return address to JIT code is recorded, and is then
overwritten with a pointer to a trampoline routine. When the method
returns the trampoline will cause the cti_vm_throw method to be invoked.

cti_vm_throw uses the return address preserved above, to discover the
vPC of the bytecode that raised the exception (using a map build during
translation). From the VPC of the faulting bytecode the vPC of a catch
routine may be discovered (unwinding the stack where necesary), and then
a bytecode address for the catch routine is looked up. Final cti_vm_throw
overwrites its return address to JIT code again, to trampoline directly
to the catch routine.


cti_op_throw is handled in a similar fashion.

  • VM/CTI.cpp: (KJS::CTI::emitPutCTIParam): (KJS::CTI::emitPutToCallFrameHeader): (KJS::CTI::emitGetFromCallFrameHeader): (KJS::ctiSetReturnAddressForArgs): (KJS::CTI::emitDebugExceptionCheck): (KJS::CTI::printOpcodeOperandTypes): (KJS::CTI::emitCall): (KJS::CTI::compileOpCall): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile):
  • VM/CTI.h: (KJS::CallRecord::CallRecord): (KJS::): (KJS::CTI::execute):
  • VM/CodeBlock.h:
  • VM/Machine.cpp: (KJS::Machine::privateExecute): (KJS::Machine::cti_op_instanceof): (KJS::Machine::cti_op_call_NotJSFunction): (KJS::Machine::cti_op_resolve): (KJS::Machine::cti_op_resolve_func): (KJS::Machine::cti_op_resolve_skip): (KJS::Machine::cti_op_resolve_with_base): (KJS::Machine::cti_op_throw): (KJS::Machine::cti_op_in): (KJS::Machine::cti_vm_throw):
  • VM/RegisterFile.h: (KJS::RegisterFile::):
  • kjs/ExecState.h: (KJS::ExecState::setCtiReturnAddress): (KJS::ExecState::ctiReturnAddress):
  • masm/IA32MacroAsm.h: (KJS::IA32MacroAssembler::): (KJS::IA32MacroAssembler::emitPushl_m): (KJS::IA32MacroAssembler::emitPopl_m): (KJS::IA32MacroAssembler::getRelocatedAddress):
21:34 Changeset [36190] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

Fall back to PCRE for any regexp containing parentheses until we correctly backtrack within them.

Reviewed by Oliver Hunt.

  • wrec/WREC.cpp:

(KJS::WRECompiler::parseParentheses):

  • wrec/WREC.h:

(KJS::WRECompiler::):

21:34 Changeset [36189] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix several issues within ecma_3/RegExp/perlstress-001.js with WREC enabled.

Reviewed by Oliver Hunt.

  • wrec/WREC.cpp:

(KJS::WRECompiler::generateNonGreedyQuantifier): Compare with the maximum quantifier count rather than the minimum.
(KJS::WRECompiler::generateAssertionEOL): Do a register-to-register comparison rather than immediate-to-register.
(KJS::WRECompiler::parseCharacterClass): Pass through the correct inversion flag.

21:34 Changeset [36188] by mrowe@apple.com
  • 139 edits
    2 copies
    2 moves
    20 adds
    1 delete in branches/squirrelfish-extreme

Merge up to r36009.

21:29 Changeset [36187] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/WebKitTools

Add a --profile flag to run-sunspider.

Reviewed by Maciej Stachowiak.

  • Scripts/webkitdirs.pm: Detect --profile or --profiling passed as a command-line argument

to build scripts as indicating that we should use the "Profiling" configuration. At present
this is only supported by JavaScriptCore, so using this argument to build any other project
will likely result in unexpected behaviour.

21:29 Changeset [36186] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Re-fix the six remaining failures in the Mozilla JavaScript tests in a manner that does not kill performance.
This shows up as a 0.6% progression on SunSpider on my machine.

Grow the JITCodeBuffer's underlying buffer when we run out of space rather than just bailing out.

Reviewed by Oliver Hunt.

  • VM/CodeBlock.h:

(KJS::CodeBlock::~CodeBlock): Switch to using fastFree now that JITCodeBuffer::copy uses fastMalloc.

  • kjs/regexp.cpp: Ditto.
  • masm/IA32MacroAsm.h:

(KJS::JITCodeBuffer::growBuffer):
(KJS::JITCodeBuffer::JITCodeBuffer):
(KJS::JITCodeBuffer::~JITCodeBuffer):
(KJS::JITCodeBuffer::putByte):
(KJS::JITCodeBuffer::putShort):
(KJS::JITCodeBuffer::putInt):
(KJS::JITCodeBuffer::reset):
(KJS::JITCodeBuffer::copy):

21:29 Changeset [36185] by mrowe@apple.com
  • 6 edits in branches/squirrelfish-extreme/JavaScriptCore

Revert "Have JITCodeBuffer manage a Vector containing the generated code so that it can grow"

RS=Maciej

21:29 Changeset [36184] by mrowe@apple.com
  • 6 edits in branches/squirrelfish-extreme/JavaScriptCore

Have JITCodeBuffer manage a Vector containing the generated code so that it can grow
as needed when generating code for a large function. This fixes all six remaining failures
in Mozilla tests in both debug and release builds.

Reviewed by Oliver Hunt.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile):

  • VM/CodeBlock.h:

(KJS::CodeBlock::~CodeBlock):

  • masm/IA32MacroAsm.h:

(KJS::JITCodeBuffer::putByte):
(KJS::JITCodeBuffer::putShort):
(KJS::JITCodeBuffer::putInt):
(KJS::JITCodeBuffer::getEIP):
(KJS::JITCodeBuffer::start):
(KJS::JITCodeBuffer::getOffset):
(KJS::JITCodeBuffer::getCode):
(KJS::IA32MacroAssembler::emitModRm_rr):

  • wrec/WREC.cpp:

(KJS::WRECompiler::compilePattern):

  • wrec/WREC.h:
21:29 Changeset [36183] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Implement parsing of octal escapes in regular expressions. This fixes three Mozilla tests.

Reviewed by Oliver Hunt.

  • wrec/WREC.cpp:

(KJS::WRECompiler::parseOctalEscape):
(KJS::WRECompiler::parseEscape): Parse the escape sequence as an octal escape if it has a leading zero.
Add a FIXME about treating invalid backreferences as octal escapes in the future.

  • wrec/WREC.h:

(KJS::WRECompiler::consumeNumber): Multiply by 10 rather than 0 so that we handle numbers with more than
one digit.

  • wtf/ASCIICType.h:

(WTF::isASCIIOctalDigit):

21:29 Changeset [36182] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-29 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Pass vPC to instanceof method. Fixes 2 mozilla tests in debug.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass2_Main):
  • VM/Machine.cpp: (KJS::Machine::cti_op_instanceof):
21:29 Changeset [36181] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-29 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Pass vPCs to resolve methods for correct exception creation. Fixes
17 mozilla tests in debug.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass2_Main):
  • VM/CTI.h:
  • VM/Machine.cpp: (KJS::Machine::cti_op_resolve): (KJS::Machine::cti_op_resolve_func): (KJS::Machine::cti_op_resolve_skip): (KJS::Machine::cti_op_resolve_with_base):
21:29 Changeset [36180] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-29 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Remembering to actually throw the exception passed to op throw helps.
Regressions 19 -> 6.

  • VM/Machine.cpp: (KJS::Machine::cti_op_throw): (KJS::Machine::cti_vm_throw):
21:29 Changeset [36179] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-29 Gavin Barraclough <barraclough@apple.com>

Reviewed by Sam Weinig.

Support for exception unwinding the stack.

Once upon a time, Sam asked me for a bettr ChangeLog entry. The return address
is now preserved on entry to a JIT code function (if we preserve lazily we need
restore the native return address during exception stack unwind). This takes
the number of regressions down from ~150 to 19.

  • VM/CTI.cpp: (KJS::getJCB): (KJS::CTI::emitExceptionCheck): (KJS::CTI::compileOpCall): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile):
  • VM/CTI.h: (KJS::):
  • VM/Machine.cpp: (KJS::Machine::throwException): (KJS::Machine::cti_op_call_JSFunction): (KJS::Machine::cti_op_call_NotJSFunction): (KJS::Machine::cti_op_construct_JSConstruct): (KJS::Machine::cti_op_construct_NotJSConstruct): (KJS::Machine::cti_op_throw): (KJS::Machine::cti_vm_throw):
21:28 Changeset [36178] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix js1_2/regexp/word_boundary.js and four other Mozilla tests with WREC enabled.

Reviewed by Oliver Hunt.

  • wrec/WREC.cpp:

(KJS::WRECompiler::generateCharacterClassInvertedRange): If none of the exact matches
succeeded, jump to failure.
(KJS::WRECompiler::compilePattern): Restore and increment the current position stored
on the stack to ensure that it will be reset to the correct position after a failed
match has consumed input.

21:28 Changeset [36177] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix a hang in ecma_3/RegExp/15.10.2-1.js with WREC enabled.

A backreference with a quantifier would get stuck in an infinite
loop if the captured range was empty.

Reviewed by Oliver Hunt.

  • wrec/WREC.cpp:

(KJS::WRECompiler::generateBackreferenceQuantifier): If the captured range
was empty, do not attempt to match the backreference.
(KJS::WRECompiler::parseBackreferenceQuantifier):

  • wrec/WREC.h:

(KJS::Quantifier::):

21:28 Changeset [36176] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-28 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Implement op_debug.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/Machine.cpp: (KJS::Machine::debug): (KJS::Machine::privateExecute): (KJS::Machine::cti_op_debug):
  • VM/Machine.h:
21:28 Changeset [36175] by mrowe@apple.com
  • 8 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-28 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Implement op_switch_string fixing 1 mozilla test and one test in fast/js.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile):
  • VM/CTI.h: (KJS::SwitchRecord::): (KJS::SwitchRecord::SwitchRecord):
  • VM/CodeBlock.cpp: (KJS::CodeBlock::dump):
  • VM/CodeBlock.h: (KJS::ExpressionRangeInfo::): (KJS::StringJumpTable::offsetForValue): (KJS::StringJumpTable::ctiForValue): (KJS::SimpleJumpTable::add): (KJS::SimpleJumpTable::ctiForValue):
  • VM/CodeGenerator.cpp: (KJS::prepareJumpTableForStringSwitch):
  • VM/Machine.cpp: (KJS::Machine::privateExecute): (KJS::Machine::cti_op_switch_string):
  • VM/Machine.h:
21:28 Changeset [36174] by mrowe@apple.com
  • 11 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-28 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Do not recurse on the machine stack when executing op_call.

  • VM/CTI.cpp: (KJS::CTI::emitGetPutArg): (KJS::CTI::emitPutArg): (KJS::CTI::emitPutArgConstant): (KJS::CTI::compileOpCall): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile):
  • VM/CTI.h: (KJS::): (KJS::CTI::compile): (KJS::CTI::execute): (KJS::CTI::):
  • VM/Machine.cpp: (KJS::Machine::Machine): (KJS::Machine::execute): (KJS::Machine::cti_op_call_JSFunction): (KJS::Machine::cti_op_call_NotJSFunction): (KJS::Machine::cti_op_ret): (KJS::Machine::cti_op_construct_JSConstruct): (KJS::Machine::cti_op_construct_NotJSConstruct): (KJS::Machine::cti_op_call_eval):
  • VM/Machine.h:
  • VM/Register.h: (KJS::Register::Register):
  • VM/RegisterFile.h: (KJS::RegisterFile::):
  • kjs/InternalFunction.h: (KJS::InternalFunction::InternalFunction):
  • kjs/JSFunction.h: (KJS::JSFunction::JSFunction):
  • kjs/ScopeChain.h: (KJS::ScopeChain::ScopeChain):
  • masm/IA32MacroAsm.h: (KJS::IA32MacroAssembler::): (KJS::IA32MacroAssembler::emitModRm_opm): (KJS::IA32MacroAssembler::emitCmpl_i32m): (KJS::IA32MacroAssembler::emitCallN_r):
21:28 Changeset [36173] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-28 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Exit instead of crashing in ctiUnsupported and ctiTimedOut.

  • VM/Machine.cpp: (KJS::ctiUnsupported): (KJS::ctiTimedOut):
21:28 Changeset [36172] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Implement codegen for op_jsr and op_sret.

Reviewed by Maciej Stachowiak.

21:28 Changeset [36171] by mrowe@apple.com
  • 10 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-28 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Initial support for exceptions (throw / catch must occur in same CodeBlock).

  • VM/CTI.cpp: (KJS::CTI::emitExceptionCheck): (KJS::CTI::emitCall): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile_pass4_SlowCases): (KJS::CTI::privateCompile):
  • VM/CTI.h:
  • VM/CodeBlock.cpp: (KJS::CodeBlock::nativeExceptionCodeForHandlerVPC):
  • VM/CodeBlock.h:
  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCatch):
  • VM/Machine.cpp: (KJS::Machine::throwException): (KJS::Machine::privateExecute): (KJS::ctiUnsupported): (KJS::ctiTimedOut): (KJS::Machine::cti_op_add): (KJS::Machine::cti_op_pre_inc): (KJS::Machine::cti_timeout_check): (KJS::Machine::cti_op_loop_if_less): (KJS::Machine::cti_op_put_by_id): (KJS::Machine::cti_op_get_by_id): (KJS::Machine::cti_op_instanceof): (KJS::Machine::cti_op_del_by_id): (KJS::Machine::cti_op_mul): (KJS::Machine::cti_op_call): (KJS::Machine::cti_op_resolve): (KJS::Machine::cti_op_construct): (KJS::Machine::cti_op_get_by_val): (KJS::Machine::cti_op_resolve_func): (KJS::Machine::cti_op_sub): (KJS::Machine::cti_op_put_by_val): (KJS::Machine::cti_op_lesseq): (KJS::Machine::cti_op_loop_if_true): (KJS::Machine::cti_op_negate): (KJS::Machine::cti_op_resolve_skip): (KJS::Machine::cti_op_div): (KJS::Machine::cti_op_pre_dec): (KJS::Machine::cti_op_jless): (KJS::Machine::cti_op_not): (KJS::Machine::cti_op_jtrue): (KJS::Machine::cti_op_post_inc): (KJS::Machine::cti_op_eq): (KJS::Machine::cti_op_lshift): (KJS::Machine::cti_op_bitand): (KJS::Machine::cti_op_rshift): (KJS::Machine::cti_op_bitnot): (KJS::Machine::cti_op_resolve_with_base): (KJS::Machine::cti_op_mod): (KJS::Machine::cti_op_less): (KJS::Machine::cti_op_neq): (KJS::Machine::cti_op_post_dec): (KJS::Machine::cti_op_urshift): (KJS::Machine::cti_op_bitxor): (KJS::Machine::cti_op_bitor): (KJS::Machine::cti_op_call_eval): (KJS::Machine::cti_op_throw): (KJS::Machine::cti_op_push_scope): (KJS::Machine::cti_op_stricteq): (KJS::Machine::cti_op_nstricteq): (KJS::Machine::cti_op_to_jsnumber): (KJS::Machine::cti_op_in): (KJS::Machine::cti_op_del_by_val): (KJS::Machine::cti_vm_throw):
  • VM/Machine.h:
  • kjs/ExecState.h:
  • masm/IA32MacroAsm.h: (KJS::IA32MacroAssembler::emitCmpl_i32m):
21:28 Changeset [36170] by mrowe@apple.com
  • 87 edits
    28 adds in branches/squirrelfish-extreme

Merge up to r35963.

21:28 Changeset [36169] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

Print debugging info to stderr so that run-webkit-tests can capture it.
This makes it easy to check whether test failures are due to unimplemented
op codes, missing support for exceptions, etc.

Rubber-stamped by Oliver Hunt.

21:28 Changeset [36168] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

Fix fast/js/bitwise-and-on-undefined.html.

Reviewed by Gavin Barraclough.

A temporary value in the slow path of op_bitand was being stored in edx, but was
being clobbered by emitGetPutArg before we used it. To fix this, emitGetPutArg
now takes a third argument that specifies the scratch register to use when loading
from memory. This allows us to avoid clobbering the temporary in op_bitand.

21:28 Changeset [36167] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/WebKitTools

Fix run-webkit-tests to handle DRT exiting early.

Reviewed by Oliver Hunt.

  • Scripts/run-webkit-tests: Initialize $expectedResultPaths{$base} before it will be used.
21:28 Changeset [36166] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Switch CTI on by default.

Rubber-stamped by Oliver Hunt.

21:28 Changeset [36165] by mrowe@apple.com
  • 5 edits
    4 adds in branches/squirrelfish-extreme

Fix the build of the full WebKit stack.

Reviewed by Oliver Hunt.

21:28 Changeset [36164] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Implement op_new_error. Does not fix any tests as it is always followed by the unimplemented op_throw.

Reviewed by Sam Weinig.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile_pass1_Scan):
(KJS::CTI::privateCompile_pass2_Main):

  • VM/Machine.cpp:

(KJS::Machine::cti_op_new_error):

  • VM/Machine.h:
21:27 Changeset [36163] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-27 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Implement op_put_getter and op_put_setter.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/Machine.cpp: (KJS::Machine::cti_op_put_getter): (KJS::Machine::cti_op_put_setter):
  • VM/Machine.h:
21:27 Changeset [36162] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-27 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Implement op_del_by_val fixing 3 mozilla tests.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/Machine.cpp: (KJS::Machine::cti_op_del_by_val):
  • VM/Machine.h:
21:27 Changeset [36161] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-27 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Quick & dirty fix to get SamplingTool sampling op_call.

  • VM/SamplingTool.h: (KJS::SamplingTool::callingHostFunction):
21:27 Changeset [36160] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-27 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Fix op_put_by_index.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass2_Main): Use emitPutArgConstant instead of emitGetPutArg for the property value.
  • VM/Machine.cpp: (KJS::Machine::cti_op_put_by_index): Get the property value from the correct argument.
21:27 Changeset [36159] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-27 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Implement op_switch_imm in the CTI fixing 13 mozilla tests.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/Machine.cpp: (KJS::Machine::cti_op_switch_imm):
  • VM/Machine.h:
21:27 Changeset [36158] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/VM/Machine.cpp

Fixing mistake in commit

21:27 Changeset [36157] by mrowe@apple.com
  • 7 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-27 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

Implement op_switch_char in CTI.

  • VM/CTI.cpp: (KJS::CTI::emitCall): (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile):
  • VM/CTI.h: (KJS::CallRecord::CallRecord): (KJS::SwitchRecord::SwitchRecord):
  • VM/CodeBlock.h: (KJS::SimpleJumpTable::SimpleJumpTable::ctiForValue):
  • VM/Machine.cpp: (KJS::Machine::cti_op_switch_char):
  • VM/Machine.h:
  • masm/IA32MacroAsm.h: (KJS::IA32MacroAssembler::): (KJS::IA32MacroAssembler::emitJmpN_r): (KJS::IA32MacroAssembler::getRelocatedAddress):
  • wtf/Platform.h:
21:27 Changeset [36156] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Sam Weinig <sam@webkit.org>

Reviewed by Mark Rowe.

Implement op_put_by_index to fix 1 mozilla test.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/Machine.cpp: (KJS::Machine::cti_op_put_by_index):
  • VM/Machine.h:
21:27 Changeset [36155] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Gavin Barraclough <barraclough@apple.com>

Reviewed by Geoff Garen.

More fixes from Geoff's review.

  • VM/CTI.cpp: (KJS::CTI::emitGetArg): (KJS::CTI::emitGetPutArg): (KJS::CTI::emitPutArg): (KJS::CTI::emitPutArgConstant): (KJS::CTI::getConstantImmediateNumericArg): (KJS::CTI::emitGetCTIParam): (KJS::CTI::emitPutResult): (KJS::CTI::emitCall): (KJS::CTI::emitJumpSlowCaseIfNotImm): (KJS::CTI::emitJumpSlowCaseIfNotImms): (KJS::CTI::getDeTaggedConstantImmediate): (KJS::CTI::emitFastArithDeTagImmediate): (KJS::CTI::emitFastArithReTagImmediate): (KJS::CTI::emitFastArithPotentiallyReTagImmediate): (KJS::CTI::emitFastArithImmToInt): (KJS::CTI::emitFastArithIntToImmOrSlowCase): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile_pass4_SlowCases): (KJS::CTI::privateCompile):
  • VM/CTI.h:
21:27 Changeset [36154] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Implement op_jmp_scopes to fix 2 Mozilla tests.

Reviewed by Gavin Barraclough.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile_pass1_Scan):
(KJS::CTI::privateCompile_pass2_Main):

  • VM/Machine.cpp:

(KJS::Machine::cti_op_push_new_scope): Update ExecState::m_scopeChain after calling ARG_setScopeChain.
(KJS::Machine::cti_op_jmp_scopes):

  • VM/Machine.h:
21:27 Changeset [36153] by mrowe@apple.com
  • 5 edits
    3 adds in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Gavin Barraclough <barraclough@apple.com>

Reviewed by Oliver Hunt.

WebKit Regular Expression Compiler. (set ENABLE_WREC = 1 in Platform.h).

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • kjs/regexp.cpp:
  • kjs/regexp.h:
  • wrec: Added.
  • wrec/WREC.cpp: Added.
  • wrec/WREC.h: Added.
  • wtf/Platform.h:
21:27 Changeset [36152] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Sam Weinig <sam@webkit.org>

Rubber-stamped by Oliver Hunt.

Remove bogus assertion.

  • VM/Machine.cpp: (KJS::Machine::cti_op_del_by_id):
21:27 Changeset [36151] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Implement op_push_new_scope and stub out op_catch.

Reviewed by Sam Weinig.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile_pass1_Scan):
(KJS::CTI::privateCompile_pass2_Main):

  • VM/Machine.cpp:

(KJS::Machine::cti_op_push_new_scope):
(KJS::Machine::cti_op_catch):

  • VM/Machine.h:
21:27 Changeset [36150] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Clean up op_resolve_base so that it shares its implementation with the bytecode interpreter.

Reviewed by Sam Weinig.

  • VM/Machine.cpp:

(KJS::inlineResolveBase):
(KJS::resolveBase):

21:27 Changeset [36149] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Add codegen support for op_instanceof, fixing 15 mozilla tests.

Reviewed by Sam Weinig

21:27 Changeset [36148] by mrowe@apple.com
  • 5 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Gavin Barraclough <barraclough@apple.com>

Reviewed by Geoff Garen.

Fixes for initial review comments.

  • VM/CTI.cpp: (KJS::CTI::ctiCompileGetArg): (KJS::CTI::ctiCompileGetPutArg): (KJS::CTI::ctiCompilePutResult): (KJS::CTI::ctiCompileCall): (KJS::CTI::CTI): (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::printOpcodeOperandTypes): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile_pass4_SlowCases): (KJS::CTI::privateCompile):
  • VM/CTI.h:
  • VM/Register.h:
  • kjs/JSValue.h:
21:27 Changeset [36147] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Fix up exception checking code.

  • VM/Machine.cpp: (KJS::Machine::cti_op_call): (KJS::Machine::cti_op_resolve): (KJS::Machine::cti_op_construct): (KJS::Machine::cti_op_resolve_func): (KJS::Machine::cti_op_resolve_skip): (KJS::Machine::cti_op_resolve_with_base): (KJS::Machine::cti_op_call_eval):
21:27 Changeset [36146] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Sam Weinig <sam@webkit.org>

Reviewed by Oliver Hunt.

Fix slowcase for op_post_inc and op_post_dec fixing 2 mozilla tests.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass4_SlowCases):
21:27 Changeset [36145] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Implement op_in, fixing 8 mozilla tests.

Reviewed by Sam Weinig.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile_pass1_Scan):
(KJS::CTI::privateCompile_pass2_Main):

  • VM/Machine.cpp:

(KJS::Machine::cti_op_in):

  • VM/Machine.h:
21:27 Changeset [36144] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Don't hardcode the size of a Register for op_new_array. Fixes a crash
seen during the Mozilla tests.

Rubber-stamped by Oliver Hunt.

  • VM/CTI.cpp:

(KJS::CTI::privateCompile_pass2_Main):

21:27 Changeset [36143] by mrowe@apple.com
  • 5 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Add support for op_push_scope and op_pop_scope, fixing 20 mozilla tests.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::privateCompile_pass2_Main):
  • VM/CTI.h:
  • VM/Machine.cpp: (KJS::Machine::cti_op_push_scope): (KJS::Machine::cti_op_pop_scope):
  • VM/Machine.h:
21:26 Changeset [36142] by mrowe@apple.com
  • 1 edit in branches/squirrelfish-extreme/JavaScriptCore/wtf/Platform.h
21:26 Changeset [36141] by mrowe@apple.com
  • 4 edits in branches/squirrelfish-extreme/JavaScriptCore

Support op_del_by_id

Reviewed by Maciej Stachowiak

Add codegen support for op_del_by_id, fixing 49 mozilla tests.

21:26 Changeset [36140] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

2008-08-26 Sam Weinig <sam@webkit.org>

Reviewed by Gavin Barraclough.

Don't hardcode the size of a Register for op_get_scoped_var and op_put_scoped_var
fixing 513 mozilla tests in debug build.

  • VM/CTI.cpp: (KJS::CTI::privateCompile_pass2_Main):
21:26 Changeset [36139] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Add support for op_loop

Reviewed by Maciej Stachowiak

Added code generator support for op_loop, fixing around 60 mozilla tests.

21:26 Changeset [36138] by mrowe@apple.com
  • 3 edits in branches/squirrelfish-extreme/JavaScriptCore

Set -fomit-frame-pointer in the correct location.

Reviewed by Sam Weinig.

  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
21:26 Changeset [36137] by mrowe@apple.com
  • 11 edits
    4 adds in branches/squirrelfish-extreme/JavaScriptCore

Reviewed by Geoff Garen.

Inital cut of CTI, Geoff's review fixes to follow.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • VM/CTI.cpp: Added. (KJS::getJCB): (KJS::CTI::ctiCompileGetArg): (KJS::CTI::ctiCompileGetPutArg): (KJS::CTI::ctiCompilePutArg): (KJS::CTI::ctiCompilePutArgImm): (KJS::CTI::ctiImmediateNumericArg): (KJS::CTI::ctiCompileGetCTIParam): (KJS::CTI::ctiCompilePutResult): (KJS::CTI::ctiCompileCall): (KJS::CTI::slowCaseIfNotImm): (KJS::CTI::slowCaseIfNotImms): (KJS::CTI::ctiFastArithDeTagConstImmediate): (KJS::CTI::ctiFastArithDeTagImmediate): (KJS::CTI::ctiFastArithReTagImmediate): (KJS::CTI::ctiFastArithPotentiallyReTagImmediate): (KJS::CTI::ctiFastArithImmToInt): (KJS::CTI::ctiFastArithIntToImmOrSlowCase): (KJS::CTI::CTI): (KJS::CTI::privateCompile_pass1_Scan): (KJS::CTI::ctiCompileAdd): (KJS::CTI::ctiCompileAddImm): (KJS::CTI::ctiCompileAddImmNotInt): (KJS::CTI::TEMP_HACK_PRINT_TYPES): (KJS::CTI::privateCompile_pass2_Main): (KJS::CTI::privateCompile_pass3_Link): (KJS::CTI::privateCompile_pass4_SlowCases): (KJS::CTI::privateCompile):
  • VM/CTI.h: Added. (KJS::CTI2Result::CTI2Result): (KJS::CallRecord::CallRecord): (KJS::JmpTable::JmpTable): (KJS::SlowCaseEntry::SlowCaseEntry): (KJS::CTI::compile): (KJS::CTI::LabelInfo::LabelInfo):
  • VM/CodeBlock.h: (KJS::CodeBlock::CodeBlock): (KJS::CodeBlock::~CodeBlock):
  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute): (KJS::ctiException): (KJS::ctiUnsupported): (KJS::ctiTimedOut): (KJS::Machine::cti_op_end): (KJS::Machine::cti_op_add): (KJS::Machine::cti_op_pre_inc): (KJS::Machine::cti_timeout_check): (KJS::Machine::cti_op_loop_if_less): (KJS::Machine::cti_op_new_object): (KJS::Machine::cti_op_put_by_id): (KJS::Machine::cti_op_get_by_id): (KJS::Machine::cti_op_mul): (KJS::Machine::cti_op_new_func): (KJS::Machine::cti_op_call): (KJS::Machine::cti_op_ret): (KJS::Machine::cti_op_new_array): (KJS::Machine::cti_op_resolve): (KJS::Machine::cti_op_construct): (KJS::Machine::cti_op_get_by_val): (KJS::Machine::cti_op_resolve_func): (KJS::Machine::cti_op_sub): (KJS::Machine::cti_op_put_by_val): (KJS::Machine::cti_op_lesseq): (KJS::Machine::cti_op_loop_if_true): (KJS::Machine::cti_op_negate): (KJS::Machine::cti_op_resolve_base): (KJS::Machine::cti_op_resolve_skip): (KJS::Machine::cti_op_div): (KJS::Machine::cti_op_pre_dec): (KJS::Machine::cti_op_jless): (KJS::Machine::cti_op_not): (KJS::Machine::cti_op_jtrue): (KJS::Machine::cti_op_post_inc): (KJS::Machine::cti_op_eq): (KJS::Machine::cti_op_lshift): (KJS::Machine::cti_op_bitand): (KJS::Machine::cti_op_rshift): (KJS::Machine::cti_op_bitnot): (KJS::Machine::cti_op_resolve_with_base): (KJS::Machine::cti_op_new_func_exp): (KJS::Machine::cti_op_mod): (KJS::Machine::cti_op_less): (KJS::Machine::cti_op_neq): (KJS::Machine::cti_op_post_dec): (KJS::Machine::cti_op_urshift): (KJS::Machine::cti_op_bitxor): (KJS::Machine::cti_op_new_regexp): (KJS::Machine::cti_op_bitor): (KJS::Machine::cti_op_call_eval): (KJS::Machine::cti_op_throw): (KJS::Machine::cti_op_get_pnames): (KJS::Machine::cti_op_next_pname): (KJS::Machine::cti_op_typeof): (KJS::Machine::cti_op_stricteq): (KJS::Machine::cti_op_nstricteq): (KJS::Machine::cti_op_to_jsnumber):
  • VM/Machine.h:
  • VM/Register.h: (KJS::Register::jsValue): (KJS::Register::getJSValue): (KJS::Register::codeBlock): (KJS::Register::scopeChain): (KJS::Register::i): (KJS::Register::r): (KJS::Register::vPC): (KJS::Register::jsPropertyNameIterator):
  • VM/SamplingTool.cpp: (KJS::): (KJS::SamplingTool::run): (KJS::SamplingTool::dump):
  • VM/SamplingTool.h:
  • kjs/JSImmediate.h: (KJS::JSImmediate::zeroImmediate): (KJS::JSImmediate::oneImmediate):
  • kjs/JSValue.h:
  • kjs/JSVariableObject.h: (KJS::JSVariableObject::JSVariableObjectData::offsetOf_registers): (KJS::JSVariableObject::offsetOf_d): (KJS::JSVariableObject::offsetOf_Data_registers):
  • masm: Added.
  • masm/IA32MacroAsm.h: Added. (KJS::JITCodeBuffer::JITCodeBuffer): (KJS::JITCodeBuffer::putByte): (KJS::JITCodeBuffer::putShort): (KJS::JITCodeBuffer::putInt): (KJS::JITCodeBuffer::getEIP): (KJS::JITCodeBuffer::start): (KJS::JITCodeBuffer::getOffset): (KJS::JITCodeBuffer::reset): (KJS::JITCodeBuffer::copy): (KJS::IA32MacroAssembler::): (KJS::IA32MacroAssembler::emitModRm_rr): (KJS::IA32MacroAssembler::emitModRm_rm): (KJS::IA32MacroAssembler::emitModRm_rmsib): (KJS::IA32MacroAssembler::emitModRm_opr): (KJS::IA32MacroAssembler::emitModRm_opm): (KJS::IA32MacroAssembler::IA32MacroAssembler): (KJS::IA32MacroAssembler::emitInt3): (KJS::IA32MacroAssembler::emitPushl_r): (KJS::IA32MacroAssembler::emitPopl_r): (KJS::IA32MacroAssembler::emitMovl_rr): (KJS::IA32MacroAssembler::emitAddl_rr): (KJS::IA32MacroAssembler::emitAddl_i8r): (KJS::IA32MacroAssembler::emitAddl_i32r): (KJS::IA32MacroAssembler::emitAddl_mr): (KJS::IA32MacroAssembler::emitAndl_rr): (KJS::IA32MacroAssembler::emitAndl_i32r): (KJS::IA32MacroAssembler::emitCmpl_i8r): (KJS::IA32MacroAssembler::emitCmpl_rr): (KJS::IA32MacroAssembler::emitCmpl_rm): (KJS::IA32MacroAssembler::emitCmpl_i32r): (KJS::IA32MacroAssembler::emitCmpw_rm): (KJS::IA32MacroAssembler::emitOrl_rr): (KJS::IA32MacroAssembler::emitOrl_i8r): (KJS::IA32MacroAssembler::emitSubl_rr): (KJS::IA32MacroAssembler::emitSubl_i8r): (KJS::IA32MacroAssembler::emitSubl_i32r): (KJS::IA32MacroAssembler::emitSubl_mr): (KJS::IA32MacroAssembler::emitTestl_i32r): (KJS::IA32MacroAssembler::emitTestl_rr): (KJS::IA32MacroAssembler::emitXorl_i8r): (KJS::IA32MacroAssembler::emitXorl_rr): (KJS::IA32MacroAssembler::emitSarl_i8r): (KJS::IA32MacroAssembler::emitSarl_CLr): (KJS::IA32MacroAssembler::emitShl_i8r): (KJS::IA32MacroAssembler::emitShll_CLr): (KJS::IA32MacroAssembler::emitMull_rr): (KJS::IA32MacroAssembler::emitIdivl_r): (KJS::IA32MacroAssembler::emitCdq): (KJS::IA32MacroAssembler::emitMovl_mr): (KJS::IA32MacroAssembler::emitMovzwl_mr): (KJS::IA32MacroAssembler::emitMovl_rm): (KJS::IA32MacroAssembler::emitMovl_i32r): (KJS::IA32MacroAssembler::emitMovl_i32m): (KJS::IA32MacroAssembler::emitLeal_mr): (KJS::IA32MacroAssembler::emitRet): (KJS::IA32MacroAssembler::JmpSrc::JmpSrc): (KJS::IA32MacroAssembler::JmpDst::JmpDst): (KJS::IA32MacroAssembler::emitCall): (KJS::IA32MacroAssembler::label): (KJS::IA32MacroAssembler::emitUnlinkedJmp): (KJS::IA32MacroAssembler::emitUnlinkedJne): (KJS::IA32MacroAssembler::emitUnlinkedJe): (KJS::IA32MacroAssembler::emitUnlinkedJl): (KJS::IA32MacroAssembler::emitUnlinkedJle): (KJS::IA32MacroAssembler::emitUnlinkedJge): (KJS::IA32MacroAssembler::emitUnlinkedJae): (KJS::IA32MacroAssembler::emitUnlinkedJo): (KJS::IA32MacroAssembler::emitPredictionNotTaken): (KJS::IA32MacroAssembler::link): (KJS::IA32MacroAssembler::copy):
  • wtf/Platform.h:
21:26 Changeset [36136] by mrowe@apple.com
  • 2 edits in branches/squirrelfish-extreme/JavaScriptCore

Enabled -fomit-frame-pointer on Release and Production builds, add additional Profiling build config for shark, etc.

RS=Maciej

20:54 Changeset [36135] by antti@apple.com
  • 2 edits in trunk/WebCore

2008-09-06 Antti Koivisto <antti@apple.com>

Reviewed by Dave Hyatt.

<rdar://problem/6187043>
Don't parse full HTML user agent style sheet unless it is actually needed
<rdar://problem/6131889>
WebView is significantly more expensive to create recently


Parsing the html4.css takes significant amount of time and memory (~50kb) on application
startup. Some clients may never use most of the rules.


With this patch we use simplified UA stylesheet until we hit something it can't handle.
This avoids full stylesheet parsing on application startup (due to empty document construction)
and also makes it possible for clients with very simple demands (divs and spans only) never to load
the full style.


It also delays view source style parsing until it is used.

  • css/CSSStyleSelector.cpp: (WebCore::elementCanUseSimpleDefaultStyle): (WebCore::CSSStyleSelector::CSSStyleSelector): (WebCore::loadFullDefaultStyle): (WebCore::loadSimpleDefaultStyle): (WebCore::loadViewSourceStyle): (WebCore::CSSStyleSelector::matchUARules): (WebCore::CSSStyleSelector::styleForElement):
20:46 Changeset [36134] by kevino@webkit.org
  • 2 edits in trunk/WebCore

wx build fix.

20:02 WebKit Team edited by antti@apple.com
(diff)
19:57 Applications using WebKit edited by kevino@theolliviers.com
(diff)
19:56 Applications using WebKit edited by kevino@theolliviers.com
(diff)
19:51 WebKit Team edited by kevino@theolliviers.com
(diff)
16:32 Changeset [36133] by antti@apple.com
  • 2 edits in trunk/WebCore

2008-09-06 Antti Koivisto <antti@apple.com>

Reverting r35953 which was causing problems on Windows which relies on
WebCore timers in nested event loops. r36132 did alternative fix.

  • page/Chrome.cpp: (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
16:27 Changeset [36132] by antti@apple.com
  • 3 edits in trunk/WebCore

2008-09-06 Antti Koivisto <antti@apple.com>

Reviewed by Dan Bernstein.

Fix <rdar://problem/6201644>
https://bugs.webkit.org/show_bug.cgi?id=20493
Crash after OK in dialog box and reloading page in secure mode


Limited loader only fix since the general timer fix is causing problems on Windows.

  • loader/loader.cpp: (WebCore::Loader::servePendingRequests): (WebCore::Loader::Host::Host): (WebCore::Loader::Host::didFinishLoading): (WebCore::Loader::Host::didFail): (WebCore::Loader::Host::didReceiveData):
  • loader/loader.h: (WebCore::Loader::Host::processingResource):
15:39 Changeset [36131] by mitz@apple.com
  • 12 edits
    3 copies
    1 add in trunk/WebCore

Reviewed by Dave Hyatt.

The initial Core Text adoption prototype was made by Daniel Fenwick.

  • <rdar://problem/5158514> Add a Core Text-based complex text code path

Currently the Core Text code path is not used in any configuration.

  • WebCore.xcodeproj/project.pbxproj: Added files.
  • config.h: Defined WTF_USE_ATSUI and WTF_USE_CORE_TEXT.
  • platform/graphics/Font.cpp: (WebCore::WidthIterator::advance): Moved the spacingDisabled() test out of the loop.
  • platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::add): Added this version that takes an advance.
  • platform/graphics/SimpleFontData.h: Added ATSUI and CORE_TEXT #ifdefs. Added getCTFont() and getCFStringAttributes() and corresponding data members for Core Text.
  • platform/graphics/mac/CoreTextController.cpp: Added. (WebCore::roundCGFloat): Helper function. (WebCore::ceilCGFloat): Helper function. (WebCore::CoreTextController::CoreTextRun::CoreTextRun): (WebCore::CoreTextController::CoreTextController): (WebCore::CoreTextController::offsetForPosition): (WebCore::CoreTextController::collectCoreTextRuns): Added. Segments the run into subruns as necessary such that each subrun can be rendered with a single font. Also separates out soft hyphens and replaces them with real hyphens, because Core Text does not emit a glyph for soft hyphens. Then calls collectCoreTextRunsForCharacters() on each subrun. (WebCore::CoreTextController::advance): (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Creates a CTLine from the given subrun and collects its CoreTextRuns. (WebCore::CoreTextController::adjustGlyphsAndAdvances): Applies the rounding hacks, letter- and word-spacing and glyph substitutions and stores the resulting adjusted glyphs and advances.
  • platform/graphics/mac/CoreTextController.h: Copied from WebCore/platform/graphics/win/UniscribeController.h. (WebCore::CoreTextController::totalWidth): (WebCore::CoreTextController::finalRoundingWidth): (WebCore::CoreTextController::CoreTextRun::ctRun): (WebCore::CoreTextController::CoreTextRun::glyphCount): (WebCore::CoreTextController::CoreTextRun::fontData): (WebCore::CoreTextController::CoreTextRun::characters): (WebCore::CoreTextController::CoreTextRun::stringLocation): (WebCore::CoreTextController::CoreTextRun::stringLength): (WebCore::CoreTextController::CoreTextRun::indexAt):
  • platform/graphics/mac/FontMac.mm: Moved the ATSUI-specific parts to FontMacATSUI.mm.
  • platform/graphics/mac/FontMacATSUI.mm: Copied from WebCore/platform/graphics/mac/FontMac.mm. (WebCore::disableLigatures): Changed to call FontPlatformData::allowsLigatures(). (WebCore::overrideLayoutOperation): Changed to call FontPlatformData::roundsGlyphAdvances().
  • platform/graphics/mac/FontMacCoreText.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp. (WebCore::Font::selectionRectForComplexText): Changed to use totalWidth() instead of advancing to the end and using runWidthSoFar(). (WebCore::Font::drawComplexText): (WebCore::Font::floatWidthForComplexText): Ditto. (WebCore::Font::offsetForPositionForComplexText):
  • platform/graphics/mac/FontPlatformData.h:
  • platform/graphics/mac/FontPlatformDataMac.mm: (WebCore::FontPlatformData::setFont): (WebCore::FontPlatformData::roundsGlyphAdvances): Added. Checks the AppKit rendering mode. (WebCore::FontPlatformData::allowsLigatures): Added. Implements the heuristic that allows ligatures in fonts that do not have a glyph for 'a', based on the assumption that such fonts are only used in complex text.
  • platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformDestroy): (WebCore::SimpleFontData::getCTFont): Added. (WebCore::SimpleFontData::getCFStringAttributes): Added. Caches and returns an attributes dictionary.
  • platform/text/mac/ShapeArabic.c: Added ATSUI #ifdefs.
  • platform/text/mac/ShapeArabic.h: Ditto.
04:48 Changeset [36130] by cwzwarich@webkit.org
  • 4 edits
    1 move
    1 add in trunk/JavaScriptCore

2008-09-06 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Maciej Stachowiak.

Fix the Mac Debug build by adding symbols that are exported only in a
Debug configuration.

01:31 Changeset [36129] by mitz@apple.com
  • 2 edits in trunk/WebCore

Reviewed by Dave Hyatt.

  • make combining mark offsets work in CG text on Windows
  • platform/graphics/win/FontCGWin.cpp: (WebCore::Font::drawGlyphs): The old code tried to translate the text matrix, but failed for two reasons: it did not actually change the matrix, and even if it did, CGContextSetTextPosition overwrites the translation values in the text matrix. Instead, just added the translation to the anchor point.
Note: See TracTimeline for information about the timeline view.