⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 10, 2008:

11:58 PM Changeset in webkit [31804] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

This time for sure.

  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
11:57 PM Changeset in webkit [31803] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


Fixed Interpreter::execute to honor the new model for returning non-NULL
values when an exception is thrown.

  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
11:38 PM Changeset in webkit [31802] by Antti Koivisto
  • 94 edits in trunk/LayoutTests

2008-04-10 Antti Koivisto <Antti Koivisto>

Update SVG animation test results.

  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-02-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-02-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-03-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-03-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-04-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-04-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-05-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-05-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-09-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-09-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-10-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-10-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-11-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-11-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-12-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-12-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-30-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-30-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-31-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-31-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-33-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-33-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-34-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-34-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-39-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-39-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-40-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-40-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-41-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-41-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-46-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-46-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-60-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-60-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-62-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-62-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-63-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-63-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-64-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-64-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-65-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-65-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-66-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-66-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-67-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-67-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-68-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-68-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-69-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-69-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-70-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-70-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-77-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-77-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-78-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-78-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-81-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-81-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-82-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-82-t-expected.png:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-85-t-expected.checksum:
  • platform/mac-leopard/svg/W3C-SVG-1.1/animate-elem-85-t-expected.png:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-02-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-03-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-04-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-05-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-09-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-10-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-11-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-12-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-34-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-60-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-62-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-63-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-64-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-65-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-66-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-67-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-68-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-69-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-70-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-77-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-81-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-85-t-expected.txt:
11:37 PM Changeset in webkit [31801] by Antti Koivisto
  • 25 edits
    7 adds
    4 deletes in trunk/WebCore

2008-04-10 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Redo the SVG animation support.


It does

  • Full SMIL interval timing model including syncbase and event base timing (the hard part).
  • CSS and XML attribute animation.
  • Linear, discrete and spline calcModes.
  • Values animation with keyTimes and keySplines.
  • Link activated animations.
  • Pretty good support for <animate> and <set> animations
  • Basic support for <animateColor>, <animateMotion> and <animateTransform>.

This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
with some subtest failures.

What is still missing

  • Additive animation with multiple animations operating on the same property. This is a major architectural feature in animation code. It shouldn't be too hard to add.
  • Only <animate> implements accumulate.
  • <animateMotion> does not do paths, keypoints, rotate.
  • <animateTransform> does not work correctly in all cases
  • calcMode paced is missing.
  • repeat, beginEvent, endEvent are missing.
  • accesskey() is missing.
  • JS does not see correct values for baseVal/animVal, changing values that are being animted for a script produces wrong results. This problem needs to be solved outside the animation code.
  • Some other stuff I forgot or do not know about.
  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:
  • history/CachedPage.cpp: (WebCore::CachedPage::CachedPage):


Use cache notification mechanism to start/stop animations.

  • svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):


Start target animation on link activation.


  • svg/SVGAnimateColorElement.cpp: (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement): (WebCore::SVGAnimateColorElement::updateAnimatedValue): (WebCore::SVGAnimateColorElement::calculateFromAndToValues): (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
  • svg/SVGAnimateColorElement.h:
  • svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::SVGAnimateElement): (WebCore::parseNumberValueAndUnit): (WebCore::SVGAnimateElement::applyAnimatedValueToElement): (WebCore::SVGAnimateElement::updateAnimatedValue): (WebCore::isColorAttribute): (WebCore::SVGAnimateElement::calculateFromAndToValues): (WebCore::SVGAnimateElement::calculateFromAndByValues):
  • svg/SVGAnimateElement.h: (WebCore::SVGAnimateElement::):
  • svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement): (WebCore::SVGAnimateMotionElement::parseMappedAttribute): (WebCore::SVGAnimateMotionElement::updateAnimatedValue): (WebCore::parsePoint): (WebCore::SVGAnimateMotionElement::calculateFromAndToValues): (WebCore::SVGAnimateMotionElement::calculateFromAndByValues): (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement): (WebCore::SVGAnimateMotionElement::startedActiveInterval):
  • svg/SVGAnimateMotionElement.h:
  • svg/SVGAnimateTransformElement.cpp: (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement): (WebCore::SVGAnimateTransformElement::hasValidTarget): (WebCore::SVGAnimateTransformElement::updateAnimatedValue): (WebCore::transformListFor): (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement): (WebCore::SVGAnimateTransformElement::calculateFromAndToValues): (WebCore::SVGAnimateTransformElement::calculateFromAndByValues): (WebCore::SVGAnimateTransformElement::startedActiveInterval): (WebCore::SVGAnimateTransformElement::parseTransformValue):
  • svg/SVGAnimateTransformElement.h:


Concrete anmation element classes.


  • svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::SVGAnimationElement): (WebCore::SVGAnimationElement::~SVGAnimationElement): (WebCore::parseKeyTimes): (WebCore::parseKeySplines): (WebCore::SVGAnimationElement::parseMappedAttribute): (WebCore::SVGAnimationElement::attributeChanged): (WebCore::SVGAnimationElement::getStartTime): (WebCore::SVGAnimationElement::getCurrentTime): (WebCore::SVGAnimationElement::getSimpleDuration): (WebCore::SVGAnimationElement::beginElement): (WebCore::SVGAnimationElement::beginElementAt): (WebCore::SVGAnimationElement::endElement): (WebCore::SVGAnimationElement::endElementAt): (WebCore::SVGAnimationElement::animationMode): (WebCore::SVGAnimationElement::calcMode): (WebCore::SVGAnimationElement::attributeType): (WebCore::SVGAnimationElement::toValue): (WebCore::SVGAnimationElement::byValue): (WebCore::SVGAnimationElement::fromValue): (WebCore::SVGAnimationElement::attributeName): (WebCore::SVGAnimationElement::isAdditive): (WebCore::SVGAnimationElement::isAccumulated): (WebCore::SVGAnimationElement::hasValidTarget): (WebCore::SVGAnimationElement::targetAttributeIsCSS): (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue): (WebCore::SVGAnimationElement::targetAttributeBaseValue): (WebCore::solveEpsilon): (WebCore::SVGAnimationElement::currentValuesForValuesAnimation): (WebCore::SVGAnimationElement::startedActiveInterval): (WebCore::SVGAnimationElement::applyAnimation): (WebCore::SVGAnimationElement::unapplyAnimation): (WebCore::SVGAnimationElement::endedActiveInterval):
  • svg/SVGAnimationElement.h: (WebCore::SVGAnimationElement::):


This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
was refactored to SMILTimingElement class that this class now inherits.


  • svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::startAnimations):
  • svg/SVGElement.cpp: (WebCore::SVGElement::ownerSVGElement):
  • svg/SVGSVGElement.cpp:


We need to reach the <svg> element from <use> too so go out from the shadow tree.


(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::~SVGSVGElement):
(WebCore::SVGSVGElement::pauseAnimations):
(WebCore::SVGSVGElement::unpauseAnimations):
(WebCore::SVGSVGElement::animationsPaused):
(WebCore::SVGSVGElement::getCurrentTime):
(WebCore::SVGSVGElement::willSaveToCache):
(WebCore::SVGSVGElement::willRestoreFromCache):

  • svg/SVGSVGElement.h: (WebCore::SVGSVGElement::timeContainer):
  • svg/SVGSetElement.cpp: (WebCore::SVGSetElement::applyAnimatedValueToElement): (WebCore::SVGSetElement::calculateFromAndToValues): (WebCore::SVGSetElement::calculateFromAndByValues): (WebCore::SVGSetElement::updateAnimatedValue):
  • svg/SVGSetElement.h:


Concrete anmation element classes.


  • svg/SVGTimer.cpp: Removed.
  • svg/SVGTimer.h: Removed.
  • svg/SVGUseElement.cpp: (WebCore::SVGUseElement::removedFromDocument):
  • svg/TimeScheduler.cpp: Removed.
  • svg/TimeScheduler.h: Removed.


Replaced these with SMILTimeContainer class.


  • svg/animation: Added.
  • svg/animation/SMILTime.cpp: Added. (WebCore::operator+): (WebCore::operator-): (WebCore::operator*):
  • svg/animation/SMILTime.h: Added. (WebCore::SMILTime::SMILTime): (WebCore::SMILTime::unresolved): (WebCore::SMILTime::indefinite): (WebCore::SMILTime::operator=): (WebCore::SMILTime::value): (WebCore::SMILTime::isFinite): (WebCore::SMILTime::isIndefinite): (WebCore::SMILTime::isUnresolved): (WebCore::operator==): (WebCore::operator!=): (WebCore::operator>): (WebCore::operator<): (WebCore::operator>=): (WebCore::operator<=): (WebCore::max): (WebCore::min):


A floating point number with special values "indefinite" and "unresolved". Defines math for those.


  • svg/animation/SMILTimeContainer.cpp: Added. (WebCore::SMILTimeContainer::SMILTimeContainer): (WebCore::SMILTimeContainer::schedule): (WebCore::SMILTimeContainer::unschedule): (WebCore::SMILTimeContainer::elapsed): (WebCore::SMILTimeContainer::isActive): (WebCore::SMILTimeContainer::isPaused): (WebCore::SMILTimeContainer::begin): (WebCore::SMILTimeContainer::pause): (WebCore::SMILTimeContainer::resume): (WebCore::SMILTimeContainer::startTimer): (WebCore::SMILTimeContainer::timerFired): (WebCore::SMILTimeContainer::updateAnimations):
  • svg/animation/SMILTimeContainer.h: Added.


Manages the clock and time line for active animations in a document.


  • svg/animation/SVGSMILElement.cpp: Added. (WebCore::ConditionEventListener::ConditionEventListener): (WebCore::ConditionEventListener::handleEvent): (WebCore::SVGSMILElement::Condition::Condition): (WebCore::SVGSMILElement::SVGSMILElement): (WebCore::SVGSMILElement::~SVGSMILElement): (WebCore::SVGSMILElement::insertedIntoDocument): (WebCore::SVGSMILElement::removedFromDocument): (WebCore::SVGSMILElement::finishParsingChildren): (WebCore::SVGSMILElement::parseOffsetValue): (WebCore::SVGSMILElement::parseClockValue): (WebCore::smilTimeSortFunction): (WebCore::sortTimeList): (WebCore::SVGSMILElement::parseCondition): (WebCore::SVGSMILElement::isTimingElement): (WebCore::SVGSMILElement::parseBeginOrEnd): (WebCore::SVGSMILElement::parseMappedAttribute): (WebCore::SVGSMILElement::attributeChanged): (WebCore::SVGSMILElement::connectConditions): (WebCore::SVGSMILElement::disconnectConditions): (WebCore::SVGSMILElement::reschedule): (WebCore::SVGSMILElement::targetElement): (WebCore::SVGSMILElement::elapsed): (WebCore::SVGSMILElement::restart): (WebCore::SVGSMILElement::fill): (WebCore::SVGSMILElement::xlinkHref): (WebCore::SVGSMILElement::dur): (WebCore::SVGSMILElement::repeatDur): (WebCore::SVGSMILElement::repeatCount): (WebCore::SVGSMILElement::maxValue): (WebCore::SVGSMILElement::minValue): (WebCore::SVGSMILElement::simpleDuration): (WebCore::SVGSMILElement::addBeginTime): (WebCore::SVGSMILElement::addEndTime): (WebCore::SVGSMILElement::findInstanceTime): (WebCore::SVGSMILElement::repeatingDuration): (WebCore::SVGSMILElement::resolveActiveEnd): (WebCore::SVGSMILElement::resolveInterval): (WebCore::SVGSMILElement::resolveFirstInterval): (WebCore::SVGSMILElement::resolveNextInterval): (WebCore::SVGSMILElement::nextProgressTime): (WebCore::SVGSMILElement::beginListChanged): (WebCore::SVGSMILElement::endListChanged): (WebCore::SVGSMILElement::checkRestart): (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat): (WebCore::SVGSMILElement::calculateNextProgressTime): (WebCore::SVGSMILElement::determineActiveState): (WebCore::SVGSMILElement::progress): (WebCore::SVGSMILElement::notifyDependentsIntervalChanged): (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase): (WebCore::SVGSMILElement::addTimeDependent): (WebCore::SVGSMILElement::removeTimeDependent): (WebCore::SVGSMILElement::handleConditionEvent): (WebCore::SVGSMILElement::beginByLinkActivation):
  • svg/animation/SVGSMILElement.h: Added. (WebCore::SVGSMILElement::timeContainer): (WebCore::SVGSMILElement::): (WebCore::SVGSMILElement::intervalBegin): (WebCore::SVGSMILElement::intervalEnd): (WebCore::SVGSMILElement::Condition::):


This abstract class implements the SMIL timing model. As an output it produces calls
to these virtual functions:


virtual void startedActiveInterval() = 0;
virtual void applyAnimation(float percent, unsigned repeat) = 0;
virtual void unapplyAnimation() = 0;
virtual void endedActiveInterval() = 0;

11:06 PM Changeset in webkit [31800] by oliver@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

Fix SquirrelFish interpreter to pass internal exceptions back to
native code correctly.

Reviewed by Geoff

10:59 PM Changeset in webkit [31799] by weinig@apple.com
  • 47 edits
    2 copies in branches/squirrelfish

JavaScriptCore:

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

Reviewed by Geoffrey Garen.

Replace the use of getCallData in op_construct with the new
getConstructData function that replaces implementsConstruct.

  • API/JSCallbackConstructor.cpp: (KJS::JSCallbackConstructor::getConstructData):
  • API/JSCallbackConstructor.h:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (KJS::::getConstructData): (KJS::::construct):
  • API/JSObjectRef.cpp: (JSObjectIsConstructor):
  • JavaScriptCore.exp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • VM/Machine.cpp: (KJS::Machine::privateExecute):
  • kjs/CallData.h:
  • kjs/ConstructData.h: Copied from JavaScriptCore/kjs/CallData.h. (KJS::):
  • kjs/array_object.cpp: (KJS::ArrayObjectImp::getConstructData):
  • kjs/array_object.h:
  • kjs/bool_object.cpp: (KJS::BooleanObjectImp::getConstructData):
  • kjs/bool_object.h:
  • kjs/date_object.cpp: (KJS::DateObjectImp::getConstructData):
  • kjs/date_object.h:
  • kjs/error_object.cpp: (KJS::ErrorObjectImp::getConstructData): (KJS::NativeErrorImp::getConstructData):
  • kjs/error_object.h:
  • kjs/function.cpp: (KJS::FunctionImp::getCallData): (KJS::FunctionImp::getConstructData): (KJS::FunctionImp::construct):
  • kjs/function.h:
  • kjs/function_object.cpp: (KJS::FunctionObjectImp::getConstructData):
  • kjs/function_object.h:
  • kjs/nodes.cpp: (KJS::NewExprNode::inlineEvaluate):
  • kjs/number_object.cpp: (KJS::NumberObjectImp::getConstructData):
  • kjs/number_object.h:
  • kjs/object.cpp:
  • kjs/object.h:
  • kjs/object_object.cpp: (KJS::ObjectObjectImp::getConstructData):
  • kjs/object_object.h:
  • kjs/regexp_object.cpp: (KJS::RegExpObjectImp::getConstructData):
  • kjs/regexp_object.h:
  • kjs/string_object.cpp: (KJS::StringObjectImp::getConstructData):
  • kjs/string_object.h:
  • kjs/value.cpp: (KJS::JSCell::getConstructData):
  • kjs/value.h: (KJS::JSValue::getConstructData):

WebCore:

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

Reviewed by Geoffrey Garen.

Adjusted WebCore JS functions to the new "getConstructData" calling convention.

10:35 PM Changeset in webkit [31798] by oliver@apple.com
  • 4 edits
    4 adds in branches/squirrelfish/JavaScriptCore

Bug 18420: SquirrelFish: need to throw Reference and Type errors
when attempting invalid operations on JSValues

Reviewed by Geoff

Add validation and exception checks to SquirrelFish so that the
correct exceptions are thrown for undefined variables, type errors
and toObject failure. Also handle exceptions thrown by native
function calls.

10:26 PM Changeset in webkit [31797] by Antti Koivisto
  • 4 edits
    1 add in trunk/WebCore

2008-04-10 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Move CurveData out from AnimationController.cpp and rename
it to UnitBezier. This makes it possible to reuse this nice class from the
SVG animation code.

  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • page/AnimationController.cpp: (WebCore::solveCubicBezierFunction):
  • platform/graphics/UnitBezier.h: Added. (WebCore::UnitBezier::UnitBezier): (WebCore::UnitBezier::sampleCurveX): (WebCore::UnitBezier::sampleCurveY): (WebCore::UnitBezier::sampleCurveDerivativeX): (WebCore::UnitBezier::solveCurveX): (WebCore::UnitBezier::solve):
9:32 PM Changeset in webkit [31796] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Pass a function body node its function's scope chain, rather than the
current execution context's scope chain, when compiling it.


This doesn't matter yet, but it will once we start using the scope
chain during compilation.

sunspider --squirrelfish notes a tiny speedup.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
6:47 PM Changeset in webkit [31795] by kevino@webkit.org
  • 1 edit
    1 add in trunk/WebKitTools

Reviewed by Darin Adler.

Add a script that propagates any file changes made to the Bakefiles over to GTK and Qt build systems. Still needs to be wired into those ports though.

6:11 PM Changeset in webkit [31794] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fix two bugs when throwing exceptions from re-entrant JS calls:


(1) Don't shrink the register file to 0, since our caller may still
be using it.


(2) In case of exception, return jsNull() instead of 0 because,
surprisingly, some JavaScriptCore clients rely on a function's return
value being safe to operate on even if the function threw an exception.


Also:


  • Changed FunctionImp::callAsFunction to honor the new semantics of exceptions not returning 0.


  • Renamed "handlerPC" to "handlerVPC" to match other uses of "VPC".


  • Renamed "exceptionData" to "exceptionValue", because "data" seemed to imply something more than just a JSValue.


  • Merged prepareException into throwException, since throwException was its only caller, and it seemed weird that throwException didn't take an exception as an argument.

sunspider --squirrelfish does not seem to complain on my machine, but it
complains a little (.6%) on Oliver's.

6:06 PM Changeset in webkit [31793] by beidson@apple.com
  • 13 edits
    2 moves in trunk/WebCore

2008-04-10 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

The name "OriginStorage" never felt right to a few of us. The HTML5 spec refers to our
concept of "OriginStorage" as a "storage area", which makes more sense here.

This patch is basically:
s/OriginStorage/StorageArea/

  • GNUmakefile.am:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • WebCoreSources.bkl:
  • loader/FrameLoader.cpp:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::sessionStorage):
  • page/Page.cpp:
  • storage/OriginStorage.cpp: Removed.
  • storage/OriginStorage.h: Removed.
  • storage/SessionStorage.cpp: (WebCore::SessionStorage::copy): (WebCore::SessionStorage::storageArea):
  • storage/SessionStorage.h:
  • storage/Storage.cpp: (WebCore::Storage::create): (WebCore::Storage::Storage): (WebCore::Storage::length): (WebCore::Storage::key): (WebCore::Storage::getItem): (WebCore::Storage::setItem): (WebCore::Storage::removeItem): (WebCore::Storage::contains):
  • storage/Storage.h:
  • storage/StorageArea.cpp: Copied from storage/OriginStorage.cpp. (WebCore::StorageArea::create): (WebCore::StorageArea::StorageArea): (WebCore::StorageArea::~StorageArea): (WebCore::StorageArea::copy): (WebCore::StorageArea::length): (WebCore::StorageArea::key): (WebCore::StorageArea::getItem): (WebCore::StorageArea::setItem): (WebCore::StorageArea::removeItem): (WebCore::StorageArea::contains): (WebCore::StorageArea::dispatchStorageEvent):
  • storage/StorageArea.h: Copied from storage/OriginStorage.h.
5:53 PM Changeset in webkit [31792] by alp@webkit.org
  • 2 edits in trunk/WebCore

2008-04-10 Xan Lopez <xan@gnome.org>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18342
Bug #18342 - Add logging to HTTP soup backend


Add soup logging facilities to HTTP soup backend.
Enable defining WEBKIT_SOUP_LOGGING, with values from
0 to 3 for more verbosity.


  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::ResourceHandle::start):
5:45 PM Changeset in webkit [31791] by alp@webkit.org
  • 2 edits in trunk

2008-03-12 Michael Emmel <mike.emmel@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=18397
Fix leaving spaces before parens in functions

  • WebKitTools/Scripts/wkstyle:
5:30 PM Changeset in webkit [31790] by alp@webkit.org
  • 2 edits in trunk/WebKit/gtk

2008-04-10 Mario Bensi <mbensi@pleyo.com>

Reviewed by Alp Toker.

https://bugs.webkit.org/show_bug.cgi?id=18400
Database example doesn't work on Gtk port

Fix quota in ChromeClient

  • WebCoreSupport/ChromeClientGtk.cpp: (WebKit::ChromeClient::exceededDatabaseQuota):
4:56 PM Changeset in webkit [31789] by timothy@apple.com
  • 5 edits in trunk/WebCore

Fixes floating point precision in the Resources graph labels by using String.sprintf to
format the values. Also makes the image view use Number.bytesToString when showing the file
size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
so the Inspector can pass WebInspector.UIString, so the format strings can be localized.

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

Reviewed by Adam Roben.

  • English.lproj/InspectorLocalizedStrings.js: Added the new strings.
  • page/inspector/ImageView.js:

(WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.

  • page/inspector/ResourcesPanel.js:

(WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
to Number.secondsToString.
(WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
to Number.bytesToString.

  • page/inspector/utilities.js:

(Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
to control the number precision.
(Number.bytesToString): Ditto.

4:42 PM Changeset in webkit [31788] by alice.liu@apple.com
  • 3 edits
    2 adds in trunk

WebCore:

2008-04-010 Alice Liu <alice.liu@apple.com>

Reviewed by Dan Bernstein.

Fixed <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6

Test: fast/events/mouseout-dead-subframe.html

  • page/EventHandler.cpp: dispatching a mouse event can change the document structure, necessitating a check for whether we still want to pass the event to the pre-determined subframe (WebCore::EventHandler::handleMouseMoveEvent):

LayoutTests:

2008-04-10 Alice Liu <alice.liu@apple.com>

Reviewed by Dan Bernstein.

Added test for <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6

  • fast/events/mouseout-dead-subframe-expected.txt: Added.
  • fast/events/mouseout-dead-subframe.html: Added.
3:51 PM Changeset in webkit [31787] by mrowe@apple.com
  • 3 edits in trunk/JavaScriptCore

Fix https://bugs.webkit.org/show_bug.cgi?id=18367 and the many dupes.
Bug 18367: Crash during celtic kane js speed 2007 test

Reviewed by Maciej Stachowiak.

GCC 4.2 on x86_64 Linux decided to reorder the local variables in markCurrentThreadConservatively's
stack frame. This lead to the range of addresses the collector treated as stack to exclude the
contents of volatile registers that markCurrentThreadConservatively forces onto the stack. This was
leading to objects being prematurely collected if the only reference to them was via a register at
the time a collection occurred.

The fix for this is to move the calculation of the top of the stack into a NEVER_INLINE function
that is called from markCurrentThreadConservatively. This forces the dummy variable we use for
determining the top of stack to be in a different stack frame which prevents the compiler from
reordering it relative to the registers that markCurrentThreadConservatively forces onto the stack.

  • kjs/collector.cpp:

(KJS::Collector::markCurrentThreadConservativelyInternal):
(KJS::Collector::markCurrentThreadConservatively):

  • kjs/collector.h:
3:38 PM squirrelfish edited by ggaren@apple.com
(diff)
3:30 PM Changeset in webkit [31786] by adachan@apple.com
  • 6 edits
    3 adds in trunk/WebKit/win

Added WebCoreStatistics that provides stats on Javascript objects
and IconDatabase.


Changed WebCache::statistics() to additionally return xsl stylesheets data
and data on live sizes and decoded sizes.

Reviewed by Steve.

  • ForEachCoClass.h:
  • Interfaces/IWebCoreStatistics.idl: Added.
  • Interfaces/WebKit.idl:
  • WebCache.cpp: (WebCache::statistics):
  • WebCoreStatistics.cpp: Added. (WebCoreStatistics::WebCoreStatistics): (WebCoreStatistics::~WebCoreStatistics): (WebCoreStatistics::createInstance): (WebCoreStatistics::QueryInterface): (WebCoreStatistics::AddRef): (WebCoreStatistics::Release): (WebCoreStatistics::javaScriptObjectsCount): (WebCoreStatistics::javaScriptGlobalObjectsCount): (WebCoreStatistics::javaScriptProtectedObjectsCount): (WebCoreStatistics::javaScriptProtectedGlobalObjectsCount): (WebCoreStatistics::iconPageURLMappingCount): (WebCoreStatistics::iconRetainedPageURLCount): (WebCoreStatistics::iconRecordCount): (WebCoreStatistics::iconsWithDataCount):
  • WebCoreStatistics.h: Added.
  • WebKit.vcproj/WebKit.vcproj:
  • WebKitClassFactory.cpp:
3:24 PM Changeset in webkit [31785] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-04-10 Antti Koivisto <Antti Koivisto>

Reviewed by Eric.

Fix scale transform. This will be tested by the animation test suite when
SVG animation support lands.

  • svg/SVGTransformDistance.cpp: (WebCore::SVGTransformDistance::SVGTransformDistance):
3:03 PM squirrelfish edited by ggaren@apple.com
(diff)
1:59 PM Changeset in webkit [31784] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.


Fixed op_construct for CallTypeNative to reacquire "r" before setting
its return value, since registerBase can theoretically change during the
execution of arbitrary code. (Not sure if any native constructors
actually make this possible.)

sunspider --squirrelfish does not seem to complain.

  • VM/Machine.cpp: (KJS::Machine::privateExecute):
1:27 PM Changeset in webkit [31783] by ggaren@apple.com
  • 7 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt and Sam Weinig.


Re-entrant execution of function code (global code -> built-in function
-> JS function):


Miraculously, sunspider --squirrelfish does not seem to complain.

A re-entrant function call is the same as a normal function call with
one exception: the re-entrant call leaves everything except for
CallerCodeBlock in the call frame header uninitialized, since the call
doesn't need to return to JS code. (It sets CallerCodeBlock to 0, to
indicate that the call shouldn't return to JS code.)


Also fixed a few issues along the way:


  • Fixed two bugs in the read-write List implementation that caused m_size and m_buffer to go stale.


  • Changed native call code to update "r" *before* setting the return value, since the call may in turn call JS code, which changes the value of "r".


  • Migrated initialization of "r" outside of Machine::privateExecute, because global code and function code initialize "r" differently.


  • Migrated a codegen warning from Machine::privateExecute to the wiki.


  • Removed unnecessary "r" parameter from slideRegisterWindowForCall
  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/function.cpp: (KJS::FunctionImp::callAsFunction):
  • kjs/list.cpp: (KJS::List::getSlice):
  • kjs/list.h: (KJS::List::clear):
1:25 PM Changeset in webkit [31782] by hyatt@apple.com
  • 4 edits in trunk/WebCore

2008-04-10 David Hyatt <hyatt@apple.com>

Add a gradient fillRect method to GraphicsContext. This is implemented only in the CG port. I stubbed
out a method in GraphicsContext.cpp with notImplemented(). Other platforms will need to add their own
gradient fill methods.

Reviewed by aroben

  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::fillRect):
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::fillRect):
12:35 PM Changeset in webkit [31781] by hyatt@apple.com
  • 3 edits in trunk/WebCore

2008-04-10 David Hyatt <hyatt@apple.com>

Gradient improvements. Support for adding color stops by Color and not just by String. Add the ability to mark
stops as already being sorted.

Reviewed by aroben

  • platform/graphics/Gradient.cpp: (WebCore::Gradient::addColorStop):
  • platform/graphics/Gradient.h: (WebCore::Gradient::setStopsSorted):
12:25 PM Changeset in webkit [31780] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the build where some wtf headers would not be copied due
to a bug in some older versions of Xcode.

Rubber-stamped by Adam Roben.

  • WebCore.xcodeproj/project.pbxproj: Adds a new script phase to handle

the copying of the icu and ForwardingHeaders folder to WebCore's PrivateHeaders.
Removes the old copy files phase and the icu and ForwardingHeaders folder references.

11:46 AM Changeset in webkit [31779] by sfalken@apple.com
  • 2 edits in trunk/WebKit/win

Delete backing store (after a delay) when a WebView's top-level parent becomes inactive.

Reviewed by Brady Eidson.

  • WebView.cpp: (WebView::windowReceivedMessage):
10:42 AM Changeset in webkit [31778] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

2008-04-10 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel

DOM Storage layout test cleanup

  • storage/domstorage/sessionstorage/iframe-events.html: Check for the layoutTestController in a manner that won't confuse Firefox
  • storage/domstorage/sessionstorage/resources/clearSessionStorage.js: Don't mutate while iterating! Clea the sessionStorage properly
10:22 AM squirrelfish edited by ggaren@apple.com
(diff)
10:10 AM squirrelfish edited by ggaren@apple.com
(diff)
9:03 AM Changeset in webkit [31777] by Adam Roben
  • 1 edit in trunk/JavaScriptCore/wtf/Assertions.cpp

Touch a file to force WTF.vcproj to build

8:25 AM Changeset in webkit [31776] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

VC++ Express build fix

  • JavaScriptCore.vcproj/WTF/WTF.vcproj: Link against user32.lib so that anyone who links against WTF.lib will get user32.lib automatically.
5:32 AM Changeset in webkit [31775] by mjs@apple.com
  • 2 edits in branches/squirrelfish/SunSpider

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

Reviewed by Oliver.


Add newly runnable tests to --squirrelfish mode.

  • tests/LIST-SQUIRRELFISH:
4:18 AM Changeset in webkit [31774] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • fix problem with code generation for return with no argument


3d-cube now runs

  • kjs/nodes.cpp: (KJS::ReturnNode::emitCode):
4:14 AM Changeset in webkit [31773] by mjs@apple.com
  • 3 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.


  • Implement support for JS constructors


access-binary-trees and access-nbody now run.


Inexplicably a 1% speedup.

  • VM/Machine.cpp: (KJS::initializeCallFrame): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
4:06 AM QtWebKitTodo edited by bmeyer@trolltech.com
(diff)
3:29 AM Changeset in webkit [31772] by mjs@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver.

  • More code cleanup in preparation for JS constructors

Factor the remaining interesting parts of JS function calls into
slideRegisterWindowForCall and scopeChainForCall.


  • VM/Machine.cpp: (KJS::slideRegisterWindowForCall): (KJS::scopeChainForCall): (KJS::Machine::privateExecute):
2:12 AM Changeset in webkit [31771] by mjs@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Geoff.


  • Code cleanup in preparation for JS constructors
  • Renamed returnInfo to callFrame.
  • Made an enum which defines what goes where in the call frame.
  • Factored out initializeCallFrame function from op_call


  • VM/CodeGenerator.cpp: (KJS::CodeGenerator::emitCall): (KJS::CodeGenerator::emitConstruct):
  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::initializeCallFrame): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::):
12:37 AM Changeset in webkit [31770] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Fixed two bugs in register allocation for function calls:


(1) op_call used to allocate codeBlock->numVars too many registers for
each call frame, due to duplicated math. Fixing this revealed...


(2) By unconditionally calling resize(), op_call used to truncate the
register file when calling a function whose registers fit wholly within
the register file already allocated by its caller.


sunspider --squirrelfish reports no regression.


I also threw in a little extra formatting to dumpCallFrame, because it
helped me debug these issues.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/RegisterFile.h: (KJS::RegisterFile::shrink): (KJS::RegisterFile::grow):
  • VM/RegisterFileStack.cpp: (KJS::RegisterFileStack::popRegisterFile):

Apr 9, 2008:

11:52 PM Changeset in webkit [31769] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

2008-04-09 Brady Eidson <beidson@apple.com>

Forgot to check in this updated result with my Storage-enumeration change
earlier today

  • fast/dom/Window/window-properties-expected.txt:
11:49 PM Changeset in webkit [31768] by beidson@apple.com
  • 4 edits
    4 adds in trunk

WebCore:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel

Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.

Tests: storage/domstorage/sessionstorage/onstorage-attribute-markup.html

storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html

  • html/HTMLAttributeNames.in: Added "onstorage"
  • html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): Handle this attribute on the body element *only* because that's where the HTML5 spec says StorageEvents go. This might change in the future

LayoutTests:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Mitz Pettel

Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.

  • storage/domstorage/sessionstorage/onstorage-attribute-markup-expected.txt: Added.
  • storage/domstorage/sessionstorage/onstorage-attribute-markup.html: Added.
  • storage/domstorage/sessionstorage/onstorage-attribute-setattribute-expected.txt: Added.
  • storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html: Added.
10:23 PM squirrelfish edited by oliver@apple.com
(diff)
10:22 PM squirrelfish edited by oliver@apple.com
(diff)
5:55 PM Changeset in webkit [31767] by Antti Koivisto
  • 4 edits in trunk/WebCore

2008-04-09 Antti Koivisto <Antti Koivisto>

Reviewed by Mitz.

Remove a less-than-critical bit from Node and replace it with a hash. Those bits are valuable!

Also moved setting of the guard to dispatchSimulatedClick for better consistency.
No one else calls dispatchSimulatedMouseEvent() currently and this is really a click() specific behavior.

  • dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchSimulatedMouseEvent): (WebCore::EventTargetNode::dispatchSimulatedClick):
  • dom/Node.cpp: (WebCore::Node::Node):
  • dom/Node.h:
5:23 PM Changeset in webkit [31766] by weinig@apple.com
  • 7 edits in trunk/WebCore

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

Reviewed by Geoffrey Garen.

Fix for https://bugs.webkit.org/show_bug.cgi?id=18389
Crash in JSDOMWindowWrapper::mark loading digg.com

  • Add a null check to JSDOMWindowWrapper::mark for the case when the collector runs during its allocation.
  • Cleans up the creation of the window to be a little more straight forward.
  • bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate): (WebCore::JSDOMWindowBase::JSDOMWindowBase): (WebCore::JSDOMWindowBase::clear): (WebCore::JSDOMWindowBase::wrapper):
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWindowWrapper.cpp: (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper): (WebCore::JSDOMWindowWrapper::mark):
  • bindings/js/JSDOMWindowWrapper.h:
  • bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::initScript):
  • bindings/scripts/CodeGeneratorJS.pm:
5:21 PM Changeset in webkit [31765] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

VC++ Express build fix

  • JavaScriptCore.vcproj/testkjs/testkjs.vcproj: Link against user32.lib.
4:29 PM Changeset in webkit [31764] by beidson@apple.com
  • 2 edits in trunk/WebCore

2008-04-09 Brady Eidson <beidson@apple.com>

Rubberstamped by Mitzpettel

Added HTMLAttributeNames.in and HTMLTagNames.in to the xcodeproj for easy editing,
and sorted the html group

  • WebCore.xcodeproj/project.pbxproj:
4:20 PM Changeset in webkit [31763] by pewtermoose@webkit.org
  • 2 edits in trunk/WebCore

2008-04-09 Brent Fulgham <bfulgham@gmail.com>

Reviewed by Mitz.

Correct build regression in Windows (Cairo) build due to changes
in FontDescription.h signature. (see http://bugs.webkit.org/show_bug.cgi?id=18394)

  • rendering/RenderThemeWin.cpp: Change for new font methods. (WebCore::RenderThemeWin::systemFont):
4:18 PM Changeset in webkit [31762] by beidson@apple.com
  • 6 edits in trunk

WebCore:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

When enumerating a Storage object, the Storage built-ins should not be included, but the
prototype chain SHOULD be included.

  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customGetPropertyNames): Return false so the prototype chain is walked
  • storage/Storage.idl: Mark all built-ins as "DontEnum"

LayoutTests:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Sam Weinig

When enumerating a Storage object, the Storage built-ins should not be included, but the
prototype chain SHOULD be included.

Updated the layout test to test this.

  • storage/domstorage/sessionstorage/enumerate-storage-expected.txt:
  • storage/domstorage/sessionstorage/enumerate-storage.html:
4:05 PM Changeset in webkit [31761] by ggaren@apple.com
  • 2 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.

Next step toward re-entrant execution of function code (global code ->
built-in function -> JS function):


Made op_ret return from Machine::privateExecute if its calling codeBlock
is NULL.


I'm checking this in by itself to demonstrate that a more clever
mechanism is not necessary for performance.


sunspider --squirrelfish reports no regression.

  • ChangeLog:
  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
3:36 PM Changeset in webkit [31760] by mitz@apple.com
  • 5 edits in trunk/LayoutTests

Reviewed by Sam Weinig.

  • fix more Windows layout test regressions from the font-weight patch

The patch silently introduced the ability to select some fonts
by their full name on Windows. Firefox and IE allow the same.
This made these tests use different, Windows-only fonts on
Windows. The patch removes references to these fonts from the
tests.

  • tables/mozilla/bugs/bug4093.html:
  • tables/mozilla/bugs/bug43854-1.html:
  • tables/mozilla/bugs/bug8381.html:
  • tables/mozilla/core/bloomberg.html:
2:21 PM Changeset in webkit [31759] by beidson@apple.com
  • 5 edits
    2 adds in trunk

WebCore:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben

Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area,
and should not return the built-in properties.

Test: storage/domstorage/sessionstorage/enumerate-storage.html

  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::customGetPropertyNames): Removed the name from an unused parameter
  • bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::customGetPropertyNames): Copy all of the keys into the property names array
  • storage/Storage.idl: Add CustomGetPropertyNames

LayoutTests:

2008-04-09 Brady Eidson <beidson@apple.com>

Reviewed by Adam Roben

Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area,
and should not return the built-in properties.

This test adds some keys to sessionStorage, enumerates the sessionStorage object, and logs
the sorted result. It should *not* contain the built in properties of the Storage object

  • storage/domstorage/sessionstorage/enumerate-storage-expected.txt: Added.
  • storage/domstorage/sessionstorage/enumerate-storage.html: Added.
1:36 PM Changeset in webkit [31758] by timothy@apple.com
  • 2 edits in trunk/WebCore

Fixes the regression where resource time/size pills do not
update during a load in the Inspector.

http://bugs.webkit.org/show_bug.cgi?id=18374

Reviewed by John Sullivan.

  • page/inspector/ResourcesPanel.js:

(ResourcesPanel.prototype.show): Remove an unneeded call to _updateGraphBars,
since _updateSidebarWidth already calls _updateGraphBars.
(ResourcesPanel.prototype.addResource): Call updateGraphSideWidth.
(ResourcesPanel.prototype._updateGraphBars): Ditto.
(ResourceSidebarTreeElement.prototype.updateGraphSideWidth): Update the
style for graphSideElement with the passed in width.

11:36 AM Changeset in webkit [31757] by Antti Koivisto
  • 6 edits in trunk/WebCore

2008-04-09 Antti Koivisto <Antti Koivisto>

Reviewed by Mitz.

Avoid unnecessary calls to virtual updateStyleAttributeIfNeeded() method.

  • do the the checking in call sites instead of inside the function
  • rename to updateStyleAttribute()
  • use namedAttrMap directly (for getting id attribute) in insertedIntoDocument/removedFromDocument to avoid calling attributes() which may trigger style attribute update.


  • dom/Element.cpp: (WebCore::Element::attributes): (WebCore::Element::getAttribute): (WebCore::Element::hasAttributes): (WebCore::Element::insertedIntoDocument): (WebCore::Element::removedFromDocument):
  • dom/Element.h: (WebCore::Element::updateStyleAttribute):
  • dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::addAttribute):
  • dom/StyledElement.cpp: (WebCore::StyledElement::updateStyleAttribute):
  • dom/StyledElement.h:
11:09 AM Changeset in webkit [31756] by ggaren@apple.com
  • 5 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Maciej Stachowiak.

Next step toward re-entrant execution of function code (global code ->
built-in function -> JS function):


Made Machine::execute return a value.


Sketched out some code for Machine::execute for functions -- still
doesn't work yet, though.

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h:
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
  • kjs/testkjs.cpp: (runWithScripts):
10:01 AM Changeset in webkit [31755] by timothy@apple.com
  • 2 edits in trunk/WebCore

A more complete fix for: can't drag the Web Inspector when grabbing
in the toolbar area. Makes dragging under the search field in the
empty space work again.

http://bugs.webkit.org/show_bug.cgi?id=18373

Reviewed by Adam Roben.

  • page/inspector/inspector.js:

(WebInspector.toolbarDragStart): Prevent dragging if the event target
is a toggleable toolbar item. Allow dragging when the target is a
normal toolbar item.

9:54 AM Changeset in webkit [31754] by ggaren@apple.com
  • 4 edits in branches/squirrelfish/JavaScriptCore

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

Reviewed by Sam Weinig.


First step toward re-entrant execution of function code (global code ->
built-in function -> JS function):


Tiny bit of refactoring in the Machine class.

sunspider --squirrelfish reports no regression.

  • VM/Machine.cpp: (KJS::Machine::dumpRegisters): (KJS::Machine::unwindCallFrame): (KJS::Machine::execute): (KJS::Machine::privateExecute):
  • VM/Machine.h: (KJS::Machine::isGlobalCallFrame):
  • kjs/interpreter.cpp: (KJS::Interpreter::evaluate):
8:28 AM Changeset in webkit [31753] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Build fix

8:18 AM Changeset in webkit [31752] by Adam Roben
  • 2 edits in trunk/JavaScriptCore

Build fix

  • wtf/AlwaysInline.h: Make sure to #include Platform.h before using the macros it defines.
12:06 AM squirrelfish edited by ggaren@apple.com
(diff)
12:04 AM Changeset in webkit [31751] by ggaren@apple.com
  • 11 edits
    2 adds in branches/squirrelfish/JavaScriptCore

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

Reviewed by Oliver Hunt.


Support for re-entrant execution of global code (global code -> built-in
function -> global code).


Keep a stack of register files instead of just one. Globals propogate
between register files as the register files enter and exit the stack.


An activation still uses its own register file's base as its
registerBase, but the global object uses the register file *stack*'s
registerBase, which updates dynamically to match the register file at
the top of the stack.


sunspider --squirrelfish reports no regression.

Note: See TracTimeline for information about the timeline view.