Timeline



Apr 22, 2005:

5:42 PM Changeset in webkit [9044] by hyatt
  • 2 edits
    4 adds in trunk

Fix for 4096878, drop shadow effect not displayed correctly on tbray.org/ongoing/. Block minmaxwidth was
broken when negative margins were used and did not properly decrease the max width.

Reviewed by Maciej

  • khtml/rendering/render_block.cpp: (khtml::RenderBlock::calcBlockMinMaxWidth):
  • layout-tests/fast/block/float/034-expected.txt: Added.
  • layout-tests/fast/block/float/034.html: Added.
  • layout-tests/fast/block/float/035-expected.txt: Added.
  • layout-tests/fast/block/float/035.html: Added.
5:08 PM Changeset in webkit [9043] by hyatt
  • 3 edits in trunk/WebCore

Remove some dead code from css_valueimpl. It wasn't used at all.

  • khtml/css/css_valueimpl.cpp:
  • khtml/css/css_valueimpl.h:
2:53 PM Changeset in webkit [9042] by darin
  • 2 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • kjs/ustring.cpp: (KJS::UString::UTF8String): Fix off-by-one error in surrogate pair logic.
2:19 PM Changeset in webkit [9041] by darin
  • 2 edits in trunk/WebCore
  • khtml/ecma/kjs_html.h: Removed unnecessary bogus class name qualifiers.
11:12 AM Changeset in webkit [9040] by hyatt
  • 2 edits
    3 adds in trunk

Fix for 4096681, fix regression in how the list-style property is parsed. It no longer parses when it hits
a url in the property value list now, because the list pointer did not get advanced. This fixes alistapart.com.

Reviewed by john

  • khtml/css/cssparser.cpp: (CSSParser::parseValue):
  • layout-tests/fast/lists/009-expected.txt: Added.
  • layout-tests/fast/lists/009.html: Added.
  • layout-tests/fast/lists/resources/listmark.gif: Added.
9:48 AM Changeset in webkit [9039] by darin
  • 3 edits in trunk/JavaScriptCore

Reviewed by John.

  • fixed <rdar://problem/4090046> JavaScript throw statement causes parse error when no semicolon is present
  • kjs/grammar.y: Added an additional rule for throw like the ones we have for all the other semicolon rules. Not sure why we missed this one earlier.
  • kjs/grammar.cpp: Regenerated.
9:30 AM Changeset in webkit [9038] by darin
  • 4 edits in trunk/WebCore

Reviewed by John.

  • fixed <rdar://problem/4091082> Google Suggest no longer works due to lack of "frameElement"
  • khtml/ecma/kjs_window.h: Added FrameElement.
  • khtml/ecma/kjs_window.cpp: (Window::get): Added "frameElement".
  • khtml/ecma/kjs_window.lut.h: Regenerated.
9:29 AM Changeset in webkit [9037] by darin
  • 3 edits in trunk/WebCore

Reviewed by John.

  • a small editing-related code cleanup
  • khtml/rendering/render_text.h: Added positionForOffset and made offsetForPosition const.
  • khtml/rendering/render_text.cpp: (InlineTextBox::offsetForPosition): Made const. (InlineTextBox::positionForOffset): Added. Moved code here from caretRect. (RenderText::caretRect): Call positionForOffset instead of doing the work here.

Apr 21, 2005:

1:55 PM Changeset in webkit [9036] by hyatt
  • 6 edits in trunk/WebCore

Fix for 4095839, wrong background image used on flechtwerk.de. Make sure that the global mapped
attribute cache hashed background attributes into per-document buckets.

  • khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::mapToEntry):
  • khtml/html/html_elementimpl.h: (DOM::):
  • khtml/html/html_tableimpl.cpp: (HTMLTableElementImpl::mapToEntry): (HTMLTablePartElementImpl::mapToEntry):
  • khtml/xml/dom_docimpl.cpp: (DocumentImpl::DocumentImpl):
  • khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::docID):
9:07 AM Changeset in webkit [9035] by vicki
  • 1 edit
    2 adds in trunk
  • layout test for 4065447, outerHTML on images
  • layout-tests/fast/dynamic/outerHTML-img-expected.txt: Added.
  • layout-tests/fast/dynamic/outerHTML-img.html: Added.
9:02 AM Changeset in webkit [9034] by vicki
  • 2 edits in trunk/WebCore

Reviewed by hyatt.

  • fixed <rdar://problem/4065447> support outerHTML on IMG elements
  • khtml/html/html_elementimpl.cpp: (HTMLElementImpl::setOuterHTML):

Apr 20, 2005:

3:14 AM Changeset in webkit [9033] by darin
  • 20 edits in trunk/JavaScriptCore

Reviewed by Maciej.

  • speedups, total 12% on JavaScript iBench

I ran the benchmark under Shark and followed its advice a lot, mainly.

  • kjs/collector.cpp: (KJS::Collector::allocate): Take out special case for 0; costing speed but unexercised. Use numLiveObjectsAtLastCollect instead of numAllocationsSinceLastCollect so we don't have to bump it each time we call allocate. Put numLiveObjects into a local variable to cut down on global variable accesses. Make "next" cell pointer be a byte offset rather than a pointer so we don't need a special case for NULL. Allow freeList to point to some bogus item when the entire block is full rather than going out of our way to make it point to NULL. (KJS::Collector::markProtectedObjects): Get table size and pointer into locals outside the loop to avoid re-loading them over and over again. (KJS::Collector::collect): Put numLiveObjects into a local variable to cut down on global variable accesses. Make "next" cell pointer be a byte offset as above. Put numLiveObjects into a local variable to cut down on global variable accesses. Set numLiveObjectsAtLastCollect rather than numAllocationsSinceLastCollect. (KJS::Collector::numReferencedObjects): Get table size and pointer into locals outside the loop to avoid re-loading them over and over again. (KJS::Collector::rootObjectClasses): Ditto.
  • kjs/internal.h: Make Value be a friend of NumberImp so it can construct number objects directly, avoiding the conversion from Number to Value.
  • kjs/internal.cpp: (StringImp::toObject): Don't use Object::dynamicCast, because we know the thing is an object and we don't want to do all the extra work; just cast directly.
  • kjs/list.cpp: (KJS::List::List): Construct valueRefCount in a way that avoids the need for a branch -- in the hot case this just meant avoiding checking a variable we just set to false.
  • kjs/lookup.cpp: (keysMatch): Marked this inline.
  • kjs/nodes.cpp: Disabled KJS_BREAKPOINT, to avoid calling hitStatement all the time. (BooleanNode::evaluate): Make a Value directly, rather than making a Boolean which is converted into a Value. (NumberNode::evaluate): Ditto. (StringNode::evaluate): Ditto. (ArrayNode::evaluate): Ditto. (FunctionCallNode::evaluate): Use new inline baseIfMutable to avoid unnecessary getBase function. Also just use a pointer for func, rather than an Object. (PostfixNode::evaluate): Change code so that it doesn't make an excess Number, and so that it passes a "known to be integer" boolean in, often avoiding a conversion from floating point to integer and back. (DeleteNode::evaluate): Make a Value directly. (TypeOfNode::evaluate): Use new inline baseIfMutable and make Value directly. (PrefixNode::evaluate): Change code so that it doesn't make an excess Number, and so that it passes a "known to be integer" boolean in, often avoiding a conversion from floating point to integer and back. (UnaryPlusNode::evaluate): Make a Value directly. (NegateNode::evaluate): Change code so that it doesn't make an excess Number, and so that it passes a "known to be integer" boolean in, often avoiding a conversion from floating point to integer and back. (BitwiseNotNode::evaluate): Make a Value directly. (LogicalNotNode::evaluate): Ditto. (ShiftNode::evaluate): Don't convert to a double before making a Value. (RelationalNode::evaluate): Make a Value directly. (EqualNode::evaluate): Ditto. (BitOperNode::evaluate): Ditto. (AssignNode::evaluate): Make a Value directly. Change code so that it passes a "known to be integer" boolean in, often avoiding a conversion from floating point to integer and back. (VarDeclNode::evaluate): Make a Value directly. (ForNode::execute): Remove unused local variable.
  • kjs/operations.h: (KJS::isNaN): Inlined. (KJS::isInf): Ditto. (KJS::isPosInf): Ditto. (KJS::isNegInf): Ditto.
  • kjs/operations.cpp: Change isNaN, isInf, isPosInf, and isNegInf to be inlines. (KJS::equal): Rewrite to avoid creating values and recursing back into the function. (KJS::relation): Rearranged code so that we don't need explicit isNaN checks. (KJS::add): Changed code to make Value directly, and so that it passes a "known to be integer" boolean in, often avoiding a conversion from floating point to integer and back. (KJS::mult): Ditto.
  • kjs/property_map.cpp: (KJS::PropertyMap::~PropertyMap): Get size and entries pointer outside loop to avoid re-getting them inside the loop. (KJS::PropertyMap::clear): Ditto. Clear value pointer in addition to key, so we can just look at the value pointer in the mark function. (KJS::PropertyMap::get): Get sizeMask and entries pointer outside loop to avoid re-getting them inside the loop. (KJS::PropertyMap::put): Ditto. (KJS::PropertyMap::insert): Ditto. (KJS::PropertyMap::remove): Ditto. (KJS::PropertyMap::mark): Get size and entries pointer outside loop to avoid re-getting them inside the loop. Don't bother checking key for 0, since we already have to check value for 0. (Also had to change clear() to set value to 0.) (KJS::PropertyMap::addEnumerablesToReferenceList): Get size and entries pointer outside loop to avoid re-getting them inside the loop. (KJS::PropertyMap::addSparseArrayPropertiesToReferenceList): Ditto. (KJS::PropertyMap::save): Ditto.
  • other changes
  • kjs/protected_values.h: Remove unneeded class name qualifiers.
  • kjs/reference.h: (KJS::Reference::baseIfMutable): New inline function: replaces isMutable(). (KJS::Reference::Reference): Inlined.
  • kjs/reference.cpp: (KJS::Reference::getValue): Rewrite to not use getBase. (KJS::Reference::putValue): Ditto. (KJS::Reference::deleteValue): Dittol
  • kjs/simple_number.h: (KJS::SimpleNumber::integerFits): Added. For use when the parameter is known to be integral.
  • kjs/string_object.cpp: (StringProtoFuncImp::call): Create the number without first converting to double in various cases that involve integers.
  • kjs/ustring.h: (KJS::UString::attach): Inlined. (KJS::UString::release): Inlined.
  • kjs/ustring.cpp: (KJS::UString::find): Get first character outside the loop instead of re-fetching it each time.
  • kjs/value.cpp: (Value::Value): Added overloads for all the various specific types of values, so you don't have to convert from, say, Number to Value, just to create one. (Number::Number): Added an overload that takes a boolean to indicate the number is already known to be an integer.
  • kjs/value.h: Added more Value constructors, added a version of toNumber that returns a boolean to indicate if the number is known to be an integer (because it was a "simple number"). (KJS::ValueImp::marked): Inlined. (KJS::ValueImp::dispatchType): Inlined. (KJS::ValueImp::dispatchToPrimitive): Inlined. (KJS::ValueImp::dispatchToBoolean): Inlined. (KJS::ValueImp::dispatchToNumber): Inlined. (KJS::ValueImp::dispatchToString): Inlined. (KJS::ValueImp::dispatchToUInt32): Inlined.
Note: See TracTimeline for information about the timeline view.