1. 17 Oct, 2008 2 commits
  2. 16 Oct, 2008 6 commits
    • mjs@apple.com's avatar
      2008-10-16 Maciej Stachowiak <mjs@apple.com> · 2ac7a457
      mjs@apple.com authored
              Reviewed by Geoff Garen.
      
              - fixed <rdar://problem/5806316> JavaScriptCore should not force building with gcc 4.0
              - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
      
              This time there is no performance regression; we can avoid having
              to use the fastcall calling convention for CTI functions by using
              varargs to prevent the compiler from moving things around on the
              stack.
              
              * Configurations/DebugRelease.xcconfig:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * VM/CTI.cpp:
              * VM/Machine.h:
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2ac7a457
    • mjs@apple.com's avatar
      2008-10-16 Maciej Stachowiak <mjs@apple.com> · e470558e
      mjs@apple.com authored
              Reviewed by Oliver Hunt.
      
              - fix for REGRESSION: r37631 causing crashes on buildbot
              https://bugs.webkit.org/show_bug.cgi?id=21682
              
              * kjs/collector.cpp:
              (JSC::Heap::collect): Avoid crashing when a GC occurs while no global objects are live.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e470558e
    • weinig@apple.com's avatar
      2008-10-16 Sam Weinig <sam@webkit.org> · b420579a
      weinig@apple.com authored
              Reviewed by Maciej Stachowiak.
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=21683
              Don't create intermediate StructureIDs for builtin objects
      
              First step in reduce number of StructureIDs created when initializing the
              JSGlobalObject.
      
              - In order to avoid creating the intermediate StructureIDs use the new putDirectWithoutTransition
                and putDirectFunctionWithoutTransition to add properties to JSObjects without transitioning
                the StructureID.  This patch just implements this strategy for ObjectPrototype but alone
                reduces the number of StructureIDs create for about:blank by 10, from 142 to 132.
      
              * kjs/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::reset):
              * kjs/JSObject.cpp:
              (JSC::JSObject::putDirectFunctionWithoutTransition):
              * kjs/JSObject.h:
              (JSC::JSObject::putDirectWithoutTransition):
              * kjs/ObjectPrototype.cpp:
              (JSC::ObjectPrototype::ObjectPrototype):
              * kjs/ObjectPrototype.h:
              * kjs/StructureID.cpp:
              (JSC::StructureID::addPropertyWithoutTransition):
              * kjs/StructureID.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b420579a
    • mjs@apple.com's avatar
      2008-10-16 Maciej Stachowiak <mjs@apple.com> · 389fb965
      mjs@apple.com authored
              Reviewed by Cameron Zwarich.
              
              - fix for: REGRESSION: over 100 StructureIDs leak loading about:blank (result of fix for bug 21633)
              
              Apparent slight progression (< 0.5%) on v8 benchmarks and SunSpider.
      
              * kjs/StructureID.cpp:
              (JSC::StructureID::~StructureID): Don't deref this object's parent's pointer to
              itself from the destructor; that doesn't even make sense.
              (JSC::StructureID::addPropertyTransition): Don't refer the single transition;
              the rule is that parent StructureIDs are ref'd but child ones are not. Refing
              the child creates a cycle.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      389fb965
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · a89bd1e2
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21609
              Make MessagePorts protect their peers across heaps
      
      JavaScriptCore:
              * JavaScriptCore.exp:
              * kjs/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::markCrossHeapDependentObjects):
              * kjs/JSGlobalObject.h:
              * kjs/collector.cpp:
              (JSC::Heap::collect):
              Before GC sweep phase, a function supplied by global object is now called for all global
              objects in the heap, making it possible to implement cross-heap dependencies.
      
      WebCore:
              * dom/MessagePort.cpp:
              (WebCore::MessagePort::MessagePort):
              * dom/MessagePort.h:
              (WebCore::MessagePort::setJSWrapperIsKnownToBeInaccessible):
              (WebCore::MessagePort::jsWrapperIsKnownToBeInaccessible):
              Track objects whose JS wrappers are no longer reachable in MessagePort. Unfortunately, this
              means that the implementation object knows about JS bindings - but it is not possible to
              access JS wrappers from another heap/thread.
      
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::markCrossHeapDependentObjectsForDocument):
              * bindings/js/JSDOMBinding.h:
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::markCrossHeapDependentObjects):
              * bindings/js/JSDOMWindowBase.h:
              Implement cross-heap dependency tracking for entangled MessagePorts. If a wrapper object
              hasn't been marked normally, it is marked as inaccessible. It is then marked manually,
              as long as its entangled port is accessible itself.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a89bd1e2
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · 7acc29ce
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=21610
              run-webkit-threads --threaded crashes in StructureID destructor
      
              * kjs/StructureID.cpp:
              (JSC::StructureID::StructureID):
              (JSC::StructureID::~StructureID):
              Protect access to a static (debug-only) HashSet with a lock.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7acc29ce
  3. 15 Oct, 2008 6 commits
    • weinig@apple.com's avatar
      2008-10-15 Sam Weinig <sam@webkit.org> · 7b219677
      weinig@apple.com authored
              Reviewed by Goeffrey Garen.
      
              Add function to dump statistics for StructureIDs.
      
              * kjs/StructureID.cpp:
              (JSC::StructureID::dumpStatistics):
              (JSC::StructureID::StructureID):
              (JSC::StructureID::~StructureID):
              * kjs/StructureID.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7b219677
    • cwzwarich@webkit.org's avatar
      2008-10-15 Cameron Zwarich <zwarich@apple.com> · 2a7c7ef2
      cwzwarich@webkit.org authored
              Reviewed by Maciej Stachowiak.
      
              Bug 21633: Avoid using a HashMap when there is only a single transition
              <https://bugs.webkit.org/show_bug.cgi?id=21633>
      
              This is a 0.8% speedup on SunSpider and between a 0.5% and 1.0% speedup
              on the V8 benchmark suite, depending on which harness we use. It will
              also slightly reduce the memory footprint of a StructureID.
      
              * kjs/StructureID.cpp:
              (JSC::StructureID::StructureID):
              (JSC::StructureID::~StructureID):
              (JSC::StructureID::addPropertyTransition):
              * kjs/StructureID.h:
              (JSC::StructureID::):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37627 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2a7c7ef2
    • ggaren@apple.com's avatar
      2008-10-15 Csaba Osztrogonac <oszi@inf.u-szeged.hu> · d13a3b64
      ggaren@apple.com authored
              Reviewed by Geoffrey Garen.
      
              1.40% speedup on SunSpider, 1.44% speedup on V8. (Linux)
              
              No change on Mac.
      
              * VM/Machine.cpp:
              (JSC::fastIsNumber): ALWAYS_INLINE modifier added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d13a3b64
    • ggaren@apple.com's avatar
      JavaScriptCore: · 9f98034f
      ggaren@apple.com authored
      2008-10-15  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Fixed https://bugs.webkit.org/show_bug.cgi?id=21345
              Start the debugger without reloading the inspected page
      
              * JavaScriptCore.exp: New symbols.
              * JavaScriptCore.xcodeproj/project.pbxproj: New files.
      
              * VM/CodeBlock.h:
              (JSC::EvalCodeCache::get): Updated for tweak to parsing API.
      
              * kjs/CollectorHeapIterator.h: Added. An iterator for the object heap,
              which we use to find all the live functions and recompile them.
      
              * kjs/DebuggerCallFrame.cpp:
              (JSC::DebuggerCallFrame::evaluate): Updated for tweak to parsing API.
      
              * kjs/FunctionConstructor.cpp:
              (JSC::constructFunction): Updated for tweak to parsing API.
      
              * kjs/JSFunction.cpp:
              (JSC::JSFunction::JSFunction): Try to validate our SourceCode in debug
              builds by ASSERTing that it's syntactically valid. This doesn't catch
              all SourceCode bugs, but it catches a lot of them.
      
              * kjs/JSGlobalObjectFunctions.cpp:
              (JSC::globalFuncEval): Updated for tweak to parsing API.
      
              * kjs/Parser.cpp:
              (JSC::Parser::parse):
              * kjs/Parser.h:
              (JSC::Parser::parse): Tweaked the parser to make it possible to parse
              without an ExecState, and to allow the client to specify a debugger to
              notify (or not) about the source we parse. This allows the inspector
              to recompile even though no JavaScript is executing, then notify the
              debugger about all source code when it's done.
      
              * kjs/Shell.cpp:
              (prettyPrintScript): Updated for tweak to parsing API.
      
              * kjs/SourceRange.h:
              (JSC::SourceCode::isNull): Added to help with ASSERTs.
      
              * kjs/collector.cpp:
              (JSC::Heap::heapAllocate):
              (JSC::Heap::sweep):
              (JSC::Heap::primaryHeapBegin):
              (JSC::Heap::primaryHeapEnd):
              * kjs/collector.h:
              (JSC::): Moved a bunch of declarations around to enable compilation of
              CollectorHeapIterator.
      
              * kjs/interpreter.cpp:
              (JSC::Interpreter::checkSyntax):
              (JSC::Interpreter::evaluate): Updated for tweak to parsing API.
      
              * kjs/lexer.h:
              (JSC::Lexer::sourceCode): BUG FIX: Calculate SourceCode ranges relative
              to the SourceCode range in which we're lexing, otherwise nested functions
              that are compiled individually get SourceCode ranges that don't reflect
              their nesting.
      
              * kjs/nodes.cpp:
              (JSC::FunctionBodyNode::FunctionBodyNode):
              (JSC::FunctionBodyNode::finishParsing):
              (JSC::FunctionBodyNode::create):
              (JSC::FunctionBodyNode::copyParameters):
              * kjs/nodes.h:
              (JSC::ScopeNode::setSource):
              (JSC::FunctionBodyNode::parameterCount): Added some helper functions for
              copying one FunctionBodyNode's parameters to another. The recompiler uses
              these when calling "finishParsing".
      
      WebCore:
      
      2008-10-15  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Fixed https://bugs.webkit.org/show_bug.cgi?id=21345
              Start the debugger without reloading the inspected page
      
              * WebCore.base.exp: New symbols.
      
              * ForwardingHeaders/kjs/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/ustring.h.
              * ForwardingHeaders/kjs/Parser.h: Copied from ForwardingHeaders/kjs/ustring.h.
              * WebCore.xcodeproj/project.pbxproj: New forwarding headers.
      
              * inspector/InspectorController.cpp:
              (WebCore::InspectorController::setWindowVisible):
              (WebCore::InspectorController::windowScriptObjectAvailable):
              (WebCore::InspectorController::startDebugging):
              * inspector/InspectorController.h: Renamed startDebuggingAndReloadInspectedPage
              to startDebugging, and changed its behavior to match.
      
              * inspector/JavaScriptDebugListener.h:
              * inspector/JavaScriptDebugServer.cpp:
              (WebCore::JavaScriptDebugServer::JavaScriptDebugServer):
              (WebCore::JavaScriptDebugServer::addListener):
              (WebCore::JavaScriptDebugServer::removeListener):
              (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
              (WebCore::JavaScriptDebugServer::willAddFirstListener):
              (WebCore::JavaScriptDebugServer::didRemoveLastListener):
              * inspector/JavaScriptDebugServer.h: Refactored the
              JavaScriptDebugServer to centralize handling of adding the first listener
              and removing the last. Then, added a feature to recompile all JS functions
              in these cases. This allows us to dynamically add and remove hooks like
              the debugger hooks without reloading the page.
      
              * inspector/front-end/ScriptsPanel.js:
              * English.lproj/localizedStrings.js: Updated for startDebuggingAndReloadInspectedPage =>
              startDebugging rename. Removed all UI that claimed that starting the
              debugger would reload the page.
      
      WebKit/mac:
      
      2008-10-15  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Fixed https://bugs.webkit.org/show_bug.cgi?id=21345
              Start the debugger without reloading the inspected page
      
              * WebInspector/WebInspector.mm:
              (-[WebInspector startDebuggingJavaScript:]): Updated for rename.
      
      WebKit/win:
      
      2008-10-15  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Fixed https://bugs.webkit.org/show_bug.cgi?id=21345
              Start the debugger without reloading the inspected page
      
              * WebInspector.cpp:
              (WebInspector::toggleDebuggingJavaScript): Updated for rename.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f98034f
    • darin@apple.com's avatar
      2008-10-15 Joerg Bornemann <joerg.bornemann@trolltech.com> · 683345f8
      darin@apple.com authored
              Reviewed by Darin Adler.
      
              - part of https://bugs.webkit.org/show_bug.cgi?id=20746
                Fix compilation on Windows CE.
      
              str(n)icmp, strdup and vsnprintf are not available on Windows CE,
              they are called _str(n)icmp, etc. instead
      
              * wtf/StringExtras.h: Added inline function implementations.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      683345f8
    • cwzwarich@webkit.org's avatar
      2008-10-15 Gabor Loki <loki@inf.u-szeged.hu> · 062a6629
      cwzwarich@webkit.org authored
              Reviewed by Cameron Zwarich.
      
              <https://bugs.webkit.org/show_bug.cgi?id=20912>
              Use simple uint32_t multiplication on op_mul if both operands are
              immediate number and they are between zero and 0x7FFF.
      
              * VM/Machine.cpp:
              (JSC::Machine::privateExecute):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      062a6629
  4. 14 Oct, 2008 4 commits
    • darin@chromium.org's avatar
      2008-10-09 Darin Fisher <darin@chromium.org> · fbf0c05b
      darin@chromium.org authored
              Reviewed by Sam Weinig.
      
              Make pan scrolling a platform configurable option.
              https://bugs.webkit.org/show_bug.cgi?id=21515
      
              * wtf/Platform.h: Add ENABLE_PAN_SCROLLING
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fbf0c05b
    • mjs@apple.com's avatar
      2008-10-14 Maciej Stachowiak <mjs@apple.com> · 36f4f421
      mjs@apple.com authored
              Rubber stamped by Sam Weinig.
              
              - revert r37572 and r37581 for now
              
              Turns out GCC 4.2 is still a (small) regression, we'll have to do
              more work to turn it on.
      
              * Configurations/DebugRelease.xcconfig:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * VM/CTI.cpp:
              * VM/CTI.h:
              * VM/Machine.cpp:
              (JSC::Machine::cti_op_convert_this):
              (JSC::Machine::cti_op_end):
              (JSC::Machine::cti_op_add):
              (JSC::Machine::cti_op_pre_inc):
              (JSC::Machine::cti_timeout_check):
              (JSC::Machine::cti_register_file_check):
              (JSC::Machine::cti_op_loop_if_less):
              (JSC::Machine::cti_op_loop_if_lesseq):
              (JSC::Machine::cti_op_new_object):
              (JSC::Machine::cti_op_put_by_id):
              (JSC::Machine::cti_op_put_by_id_second):
              (JSC::Machine::cti_op_put_by_id_generic):
              (JSC::Machine::cti_op_put_by_id_fail):
              (JSC::Machine::cti_op_get_by_id):
              (JSC::Machine::cti_op_get_by_id_second):
              (JSC::Machine::cti_op_get_by_id_generic):
              (JSC::Machine::cti_op_get_by_id_fail):
              (JSC::Machine::cti_op_instanceof):
              (JSC::Machine::cti_op_del_by_id):
              (JSC::Machine::cti_op_mul):
              (JSC::Machine::cti_op_new_func):
              (JSC::Machine::cti_op_call_JSFunction):
              (JSC::Machine::cti_vm_compile):
              (JSC::Machine::cti_op_push_activation):
              (JSC::Machine::cti_op_call_NotJSFunction):
              (JSC::Machine::cti_op_create_arguments):
              (JSC::Machine::cti_op_tear_off_activation):
              (JSC::Machine::cti_op_tear_off_arguments):
              (JSC::Machine::cti_op_ret_profiler):
              (JSC::Machine::cti_op_ret_scopeChain):
              (JSC::Machine::cti_op_new_array):
              (JSC::Machine::cti_op_resolve):
              (JSC::Machine::cti_op_construct_JSConstruct):
              (JSC::Machine::cti_op_construct_NotJSConstruct):
              (JSC::Machine::cti_op_get_by_val):
              (JSC::Machine::cti_op_resolve_func):
              (JSC::Machine::cti_op_sub):
              (JSC::Machine::cti_op_put_by_val):
              (JSC::Machine::cti_op_put_by_val_array):
              (JSC::Machine::cti_op_lesseq):
              (JSC::Machine::cti_op_loop_if_true):
              (JSC::Machine::cti_op_negate):
              (JSC::Machine::cti_op_resolve_base):
              (JSC::Machine::cti_op_resolve_skip):
              (JSC::Machine::cti_op_resolve_global):
              (JSC::Machine::cti_op_div):
              (JSC::Machine::cti_op_pre_dec):
              (JSC::Machine::cti_op_jless):
              (JSC::Machine::cti_op_not):
              (JSC::Machine::cti_op_jtrue):
              (JSC::Machine::cti_op_post_inc):
              (JSC::Machine::cti_op_eq):
              (JSC::Machine::cti_op_lshift):
              (JSC::Machine::cti_op_bitand):
              (JSC::Machine::cti_op_rshift):
              (JSC::Machine::cti_op_bitnot):
              (JSC::Machine::cti_op_resolve_with_base):
              (JSC::Machine::cti_op_new_func_exp):
              (JSC::Machine::cti_op_mod):
              (JSC::Machine::cti_op_less):
              (JSC::Machine::cti_op_neq):
              (JSC::Machine::cti_op_post_dec):
              (JSC::Machine::cti_op_urshift):
              (JSC::Machine::cti_op_bitxor):
              (JSC::Machine::cti_op_new_regexp):
              (JSC::Machine::cti_op_bitor):
              (JSC::Machine::cti_op_call_eval):
              (JSC::Machine::cti_op_throw):
              (JSC::Machine::cti_op_get_pnames):
              (JSC::Machine::cti_op_next_pname):
              (JSC::Machine::cti_op_push_scope):
              (JSC::Machine::cti_op_pop_scope):
              (JSC::Machine::cti_op_typeof):
              (JSC::Machine::cti_op_is_undefined):
              (JSC::Machine::cti_op_is_boolean):
              (JSC::Machine::cti_op_is_number):
              (JSC::Machine::cti_op_is_string):
              (JSC::Machine::cti_op_is_object):
              (JSC::Machine::cti_op_is_function):
              (JSC::Machine::cti_op_stricteq):
              (JSC::Machine::cti_op_nstricteq):
              (JSC::Machine::cti_op_to_jsnumber):
              (JSC::Machine::cti_op_in):
              (JSC::Machine::cti_op_push_new_scope):
              (JSC::Machine::cti_op_jmp_scopes):
              (JSC::Machine::cti_op_put_by_index):
              (JSC::Machine::cti_op_switch_imm):
              (JSC::Machine::cti_op_switch_char):
              (JSC::Machine::cti_op_switch_string):
              (JSC::Machine::cti_op_del_by_val):
              (JSC::Machine::cti_op_put_getter):
              (JSC::Machine::cti_op_put_setter):
              (JSC::Machine::cti_op_new_error):
              (JSC::Machine::cti_op_debug):
              (JSC::Machine::cti_vm_throw):
              * VM/Machine.h:
              * masm/X86Assembler.h:
              (JSC::X86Assembler::emitRestoreArgumentReference):
              (JSC::X86Assembler::emitRestoreArgumentReferenceForTrampoline):
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      36f4f421
    • ap@webkit.org's avatar
      Reviewed by Darin Adler. · 82f52eef
      ap@webkit.org authored
              https://bugs.webkit.org/show_bug.cgi?id=20256
              Array.push and other standard methods disappear
      
              * kjs/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              (JSC::JSGlobalData::~JSGlobalData):
              Don't use static hash tables even on platforms that don't enable JSC_MULTIPLE_THREADS -
              these tables reference IdentifierTable, which is always per-GlobalData.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37586 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      82f52eef
    • mjs@apple.com's avatar
      2008-10-14 Maciej Stachowiak <mjs@apple.com> · 67ebde03
      mjs@apple.com authored
              Reviewed by Cameron Zwarich.
              
              - always use CTI_ARGUMENTS and CTI_ARGUMENTS_FASTCALL
              
              This is a small regression for GCC 4.0, but simplifies the code
              for future improvements and lets us focus on GCC 4.2+ and MSVC.
      
              * VM/CTI.cpp:
              * VM/CTI.h:
              * VM/Machine.cpp:
              (JSC::Machine::cti_op_convert_this):
              (JSC::Machine::cti_op_end):
              (JSC::Machine::cti_op_add):
              (JSC::Machine::cti_op_pre_inc):
              (JSC::Machine::cti_timeout_check):
              (JSC::Machine::cti_register_file_check):
              (JSC::Machine::cti_op_loop_if_less):
              (JSC::Machine::cti_op_loop_if_lesseq):
              (JSC::Machine::cti_op_new_object):
              (JSC::Machine::cti_op_put_by_id):
              (JSC::Machine::cti_op_put_by_id_second):
              (JSC::Machine::cti_op_put_by_id_generic):
              (JSC::Machine::cti_op_put_by_id_fail):
              (JSC::Machine::cti_op_get_by_id):
              (JSC::Machine::cti_op_get_by_id_second):
              (JSC::Machine::cti_op_get_by_id_generic):
              (JSC::Machine::cti_op_get_by_id_fail):
              (JSC::Machine::cti_op_instanceof):
              (JSC::Machine::cti_op_del_by_id):
              (JSC::Machine::cti_op_mul):
              (JSC::Machine::cti_op_new_func):
              (JSC::Machine::cti_op_call_JSFunction):
              (JSC::Machine::cti_vm_compile):
              (JSC::Machine::cti_op_push_activation):
              (JSC::Machine::cti_op_call_NotJSFunction):
              (JSC::Machine::cti_op_create_arguments):
              (JSC::Machine::cti_op_tear_off_activation):
              (JSC::Machine::cti_op_tear_off_arguments):
              (JSC::Machine::cti_op_ret_profiler):
              (JSC::Machine::cti_op_ret_scopeChain):
              (JSC::Machine::cti_op_new_array):
              (JSC::Machine::cti_op_resolve):
              (JSC::Machine::cti_op_construct_JSConstruct):
              (JSC::Machine::cti_op_construct_NotJSConstruct):
              (JSC::Machine::cti_op_get_by_val):
              (JSC::Machine::cti_op_resolve_func):
              (JSC::Machine::cti_op_sub):
              (JSC::Machine::cti_op_put_by_val):
              (JSC::Machine::cti_op_put_by_val_array):
              (JSC::Machine::cti_op_lesseq):
              (JSC::Machine::cti_op_loop_if_true):
              (JSC::Machine::cti_op_negate):
              (JSC::Machine::cti_op_resolve_base):
              (JSC::Machine::cti_op_resolve_skip):
              (JSC::Machine::cti_op_resolve_global):
              (JSC::Machine::cti_op_div):
              (JSC::Machine::cti_op_pre_dec):
              (JSC::Machine::cti_op_jless):
              (JSC::Machine::cti_op_not):
              (JSC::Machine::cti_op_jtrue):
              (JSC::Machine::cti_op_post_inc):
              (JSC::Machine::cti_op_eq):
              (JSC::Machine::cti_op_lshift):
              (JSC::Machine::cti_op_bitand):
              (JSC::Machine::cti_op_rshift):
              (JSC::Machine::cti_op_bitnot):
              (JSC::Machine::cti_op_resolve_with_base):
              (JSC::Machine::cti_op_new_func_exp):
              (JSC::Machine::cti_op_mod):
              (JSC::Machine::cti_op_less):
              (JSC::Machine::cti_op_neq):
              (JSC::Machine::cti_op_post_dec):
              (JSC::Machine::cti_op_urshift):
              (JSC::Machine::cti_op_bitxor):
              (JSC::Machine::cti_op_new_regexp):
              (JSC::Machine::cti_op_bitor):
              (JSC::Machine::cti_op_call_eval):
              (JSC::Machine::cti_op_throw):
              (JSC::Machine::cti_op_get_pnames):
              (JSC::Machine::cti_op_next_pname):
              (JSC::Machine::cti_op_push_scope):
              (JSC::Machine::cti_op_pop_scope):
              (JSC::Machine::cti_op_typeof):
              (JSC::Machine::cti_op_is_undefined):
              (JSC::Machine::cti_op_is_boolean):
              (JSC::Machine::cti_op_is_number):
              (JSC::Machine::cti_op_is_string):
              (JSC::Machine::cti_op_is_object):
              (JSC::Machine::cti_op_is_function):
              (JSC::Machine::cti_op_stricteq):
              (JSC::Machine::cti_op_nstricteq):
              (JSC::Machine::cti_op_to_jsnumber):
              (JSC::Machine::cti_op_in):
              (JSC::Machine::cti_op_push_new_scope):
              (JSC::Machine::cti_op_jmp_scopes):
              (JSC::Machine::cti_op_put_by_index):
              (JSC::Machine::cti_op_switch_imm):
              (JSC::Machine::cti_op_switch_char):
              (JSC::Machine::cti_op_switch_string):
              (JSC::Machine::cti_op_del_by_val):
              (JSC::Machine::cti_op_put_getter):
              (JSC::Machine::cti_op_put_setter):
              (JSC::Machine::cti_op_new_error):
              (JSC::Machine::cti_op_debug):
              (JSC::Machine::cti_vm_throw):
              * VM/Machine.h:
              * masm/X86Assembler.h:
              (JSC::X86Assembler::emitRestoreArgumentReference):
              (JSC::X86Assembler::emitRestoreArgumentReferenceForTrampoline):
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67ebde03
  5. 13 Oct, 2008 6 commits
    • mjs@apple.com's avatar
      2008-10-13 Maciej Stachowiak <mjs@apple.com> · 28f0821b
      mjs@apple.com authored
              Reviewed by Cameron Zwarich.
              
              - make Machine::getArgumentsData an Arguments method and inline it
              
              ~2% on v8 raytrace
      
              * VM/Machine.cpp:
              * kjs/Arguments.h:
              (JSC::Machine::getArgumentsData):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37576 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      28f0821b
    • alp@webkit.org's avatar
      2008-10-13 Alp Toker <alp@nuanti.com> · a3417888
      alp@webkit.org authored
              Fix autotools dist build target by listing recently added header
              files only. Not reviewed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37575 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a3417888
    • mjs@apple.com's avatar
      JavaScriptCore: · 268962eb
      mjs@apple.com authored
      2008-10-13  Maciej Stachowiak  <mjs@apple.com>
      
              Rubber stamped by Mark Rowe.
              
              - fixed <rdar://problem/5806316> JavaScriptCore should not force building with gcc 4.0
              - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
      
              * Configurations/DebugRelease.xcconfig:
              * JavaScriptCore.xcodeproj/project.pbxproj:
      
      JavaScriptGlue:
      
      2008-10-13  Maciej Stachowiak  <mjs@apple.com>
      
              Rubber stamped by Mark Rowe.
              
              - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
      
              * Configurations/DebugRelease.xcconfig:
      
      WebCore:
      
      2008-10-13  Maciej Stachowiak  <mjs@apple.com>
      
              Rubber stamped by Mark Rowe.
              
              - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
      
              * Configurations/DebugRelease.xcconfig:
      
      WebKit/mac:
      
      2008-10-13  Maciej Stachowiak  <mjs@apple.com>
      
              Rubber stamped by Mark Rowe.
              
              - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
      
              * Configurations/DebugRelease.xcconfig:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37572 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      268962eb
    • cwzwarich@webkit.org's avatar
      2008-10-13 Cameron Zwarich <zwarich@apple.com> · 21e217a9
      cwzwarich@webkit.org authored
              Reviewed by Geoff Garen.
      
              Bug 21541: Move RegisterFile growth check to callee
              <https://bugs.webkit.org/show_bug.cgi?id=21541>
      
              Move the RegisterFile growth check to the callee in the common case,
              where some of the information is known statically at JIT time. There is
              still a check in the caller in the case where the caller provides too
              few arguments.
      
              This is a 2.1% speedup on the V8 benchmark, including a 5.1% speedup on
              the Richards benchmark, a 4.1% speedup on the DeltaBlue benchmark, and a
              1.4% speedup on the Earley-Boyer benchmark. It is also a 0.5% speedup on
              SunSpider.
      
              * VM/CTI.cpp:
              (JSC::CTI::privateCompile):
              * VM/Machine.cpp:
              (JSC::Machine::cti_register_file_check):
              (JSC::Machine::cti_op_call_JSFunction):
              (JSC::Machine::cti_op_construct_JSConstruct):
              * VM/Machine.h:
              * VM/RegisterFile.h:
              * masm/X86Assembler.h:
              (JSC::X86Assembler::):
              (JSC::X86Assembler::cmpl_mr):
              (JSC::X86Assembler::emitUnlinkedJg):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      21e217a9
    • weinig@apple.com's avatar
      JavaScriptCore: · fe8ca436
      weinig@apple.com authored
      2008-10-13  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Dan Bernstein.
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=21577
              5 false positive StructureID leaks
      
              - Add leak ignore set to StructureID to selectively ignore leaking some StructureIDs.
              - Add create method to JSGlolalData to be used when the data will be intentionally
                leaked and ignore all leaks caused the StructureIDs stored in it.
      
              * JavaScriptCore.exp:
              * kjs/JSGlobalData.cpp:
              (JSC::JSGlobalData::createLeaked):
              * kjs/JSGlobalData.h:
              * kjs/StructureID.cpp:
              (JSC::StructureID::StructureID):
              (JSC::StructureID::~StructureID):
              (JSC::StructureID::startIgnoringLeaks):
              (JSC::StructureID::stopIgnoringLeaks):
              * kjs/StructureID.h:
      
      WebCore:
      
      2008-10-13  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Dan Bernstein.
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=21577
              5 false positive StructureID leaks
      
              In WebCore, we intentionally leak the common JSGlobalData which in turn
              leaks 5 StructureIDs.  Use the new JSGlobalData::createLeaked in order to
              ignore the StructureIDs leaked within.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::commonJSGlobalData):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37563 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fe8ca436
    • jmalonzo@webkit.org's avatar
      2008-10-13 Marco Barisione <marco.barisione@collabora.co.uk> · 4d9c9527
      jmalonzo@webkit.org authored
              Reviewed by Darin Adler. Landed by Jan Alonzo.
      
              WebKit GTK Port needs a smartpointer to handle g_free (GFreePtr?)
              http://bugs.webkit.org/show_bug.cgi?id=20483
      
              Start the conversion to use GOwnPtr and fix a memory leak.
      
              * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
              (WebCore::mediaPlayerPrivateErrorCallback):
      
      2008-10-13  Marco Barisione  <marco.barisione@collabora.co.uk>
      
              Reviewed by Darin Adler. Landed by Jan Alonzo.
      
              WebKit GTK Port needs a smartpointer to handle g_free (GFreePtr?)
              http://bugs.webkit.org/show_bug.cgi?id=20483
      
              Add a GOwnPtr smart pointer (similar to OwnPtr) to handle memory
              allocated by GLib and start the conversion to use it.
      
              * GNUmakefile.am:
              * wtf/GOwnPtr.cpp: Added.
              (WTF::GError):
              (WTF::GList):
              (WTF::GCond):
              (WTF::GMutex):
              (WTF::GPatternSpec):
              (WTF::GDir):
              * wtf/GOwnPtr.h: Added.
              (WTF::freeOwnedPtr):
              (WTF::GOwnPtr::GOwnPtr):
              (WTF::GOwnPtr::~GOwnPtr):
              (WTF::GOwnPtr::get):
              (WTF::GOwnPtr::release):
              (WTF::GOwnPtr::rawPtr):
              (WTF::GOwnPtr::set):
              (WTF::GOwnPtr::clear):
              (WTF::GOwnPtr::operator*):
              (WTF::GOwnPtr::operator->):
              (WTF::GOwnPtr::operator!):
              (WTF::GOwnPtr::operator UnspecifiedBoolType):
              (WTF::GOwnPtr::swap):
              (WTF::swap):
              (WTF::operator==):
              (WTF::operator!=):
              (WTF::getPtr):
              * wtf/Threading.h:
              * wtf/ThreadingGtk.cpp:
              (WTF::Mutex::~Mutex):
              (WTF::Mutex::lock):
              (WTF::Mutex::tryLock):
              (WTF::Mutex::unlock):
              (WTF::ThreadCondition::~ThreadCondition):
              (WTF::ThreadCondition::wait):
              (WTF::ThreadCondition::timedWait):
              (WTF::ThreadCondition::signal):
              (WTF::ThreadCondition::broadcast):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4d9c9527
  6. 12 Oct, 2008 4 commits
    • darin@apple.com's avatar
      2008-10-12 Gabriella Toth <gtoth@inf.u-szeged.hu> · 5545877e
      darin@apple.com authored
              Reviewed by Darin Adler.
      
              - part of https://bugs.webkit.org/show_bug.cgi?id=21055
                Bug 21055: not invoked functions
      
              * kjs/nodes.cpp: Deleted a function that is not invoked:
              statementListInitializeVariableAccessStack.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37553 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5545877e
    • darin@apple.com's avatar
      2008-10-12 Darin Adler <darin@apple.com> · 8cf9e60e
      darin@apple.com authored
              Reviewed by Sam Weinig.
      
              * wtf/unicode/icu/UnicodeIcu.h: Fixed indentation to match WebKit coding style.
              * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37532 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8cf9e60e
    • darin@apple.com's avatar
      JavaScriptCore: · 2ce65d5d
      darin@apple.com authored
      2008-10-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              - https://bugs.webkit.org/show_bug.cgi?id=21556
                Bug 21556: non-ASCII digits are allowed in places where only ASCII should be
      
              * wtf/unicode/icu/UnicodeIcu.h: Removed isDigit, digitValue, and isFormatChar.
              * wtf/unicode/qt4/UnicodeQt4.h: Ditto.
      
      WebCore:
      
      2008-10-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              - https://bugs.webkit.org/show_bug.cgi?id=21556
                Bug 21556: non-ASCII digits are allowed in places where only ASCII should be
      
              Tests: fast/dom/HTMLFontElement/size-attribute.html
                     fast/dom/HTMLInputElement/size-attribute.html
                     fast/dom/HTMLTableElement/cellpadding-attribute.html
      
              * html/HTMLFontElement.cpp:
              (WebCore::parseFontSizeNumber): Use isASCIIDigit instead of
              Unicode::isDigit, since non-ASCII digits are not valid here.
              * html/HTMLFontElement.h: Tweaked formatting a bit and removed
              the unneeded destructor declaration.
              * platform/text/String.cpp:
              (WebCore::lengthOfCharactersAsInteger): Use isASCIIDigit instead
              of Unicode::isDigit, since non-ASCII digits are not valid.
      
      LayoutTests:
      
      2008-10-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              - tests for https://bugs.webkit.org/show_bug.cgi?id=21556
                Bug 21556: non-ASCII digits are allowed in places where only ASCII should be
      
              The fix was in a function used all over the place. I set a breakpoint in the
              function and made some regression tests for the first few places it was used.
      
              * fast/dom/HTMLFontElement: Added.
              * fast/dom/HTMLFontElement/resources: Added.
              * fast/dom/HTMLFontElement/resources/TEMPLATE.html: Added.
              * fast/dom/HTMLFontElement/resources/size-attribute.js: Added.
              * fast/dom/HTMLFontElement/size-attribute-expected.txt: Added.
              * fast/dom/HTMLFontElement/size-attribute.html: Added.
              * fast/dom/HTMLInputElement/resources/size-attribute.js: Added.
              * fast/dom/HTMLInputElement/size-attribute-expected.txt: Added.
              * fast/dom/HTMLInputElement/size-attribute.html: Added.
              * fast/dom/HTMLTableElement/cellpadding-attribute-expected.txt: Added.
              * fast/dom/HTMLTableElement/cellpadding-attribute.html: Added.
              * fast/dom/HTMLTableElement/resources/cellpadding-attribute.js: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37531 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2ce65d5d
    • andersca@apple.com's avatar
      2008-10-12 Anders Carlsson <andersca@apple.com> · 6eeb3972
      andersca@apple.com authored
              Reviewed by Darin Adler.
      
              Make the append method that takes a Vector more strict - it now requires the elements 
              of the vector to be appended same type as the elements of the Vector they're being appended to.
              
              This would cause problems when dealing with Vectors containing other Vectors.
              
              * wtf/Vector.h:
              (WTF::::append):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6eeb3972
  7. 11 Oct, 2008 2 commits
  8. 10 Oct, 2008 4 commits
    • oliver@apple.com's avatar
      Use fastcall calling convention on GCC > 4.0 · 22851784
      oliver@apple.com authored
      Reviewed by Cameron Zwarich
      
      Results in a 2-3% improvement in GCC 4.2 performance, so
      that it is no longer a regression vs. GCC 4.0
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37500 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22851784
    • weinig@apple.com's avatar
      JavaScriptCore: · 775d8c52
      weinig@apple.com authored
      2008-10-10  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Darin Adler.
      
              - Add a workaround for a bug in ceil in Darwin libc.
              - Remove old workarounds for JS math functions that are not needed
                anymore.
      
              The math functions are heavily tested by fast/js/math.html.
      
              * kjs/MathObject.cpp:
              (JSC::mathProtoFuncAbs): Remove workaround.
              (JSC::mathProtoFuncCeil): Ditto.
              (JSC::mathProtoFuncFloor): Ditto.
              * wtf/MathExtras.h:
              (wtf_ceil): Add ceil workaround for darwin.
      
      LayoutTests:
      
      2008-10-10  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Darin Adler.
      
              - Update tests after fixing ceil(-0.1) behavior on darwin.
      
              * fast/js/math-expected.txt:
              * fast/js/resources/math.js: Remove code to detect sign of 0 now that the harness can handle it.
              * fast/xpath/4XPath/Core/test_core_functions-expected.txt:
              * fast/xpath/4XPath/Core/test_core_functions.html: Update test expect correct result of -0.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      775d8c52
    • weinig@apple.com's avatar
      2008-10-10 Sam Weinig <sam@webkit.org> · dfd7b656
      weinig@apple.com authored
              Reviewed by Darin Adler
      
              Add Assertions to JSObject constructor.
      
              * kjs/JSObject.h:
              (JSC::JSObject::JSObject):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dfd7b656
    • weinig@apple.com's avatar
      2008-10-10 Sam Weinig <sam@webkit.org> · 8e4ebd63
      weinig@apple.com authored
              Reviewed by Cameron Zwarich.
      
              Remove now unused m_getterSetterFlag variable from PropertyMap.
      
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::operator=):
              * kjs/PropertyMap.h:
              (JSC::PropertyMap::PropertyMap):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37479 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8e4ebd63
  9. 09 Oct, 2008 5 commits
    • weinig@apple.com's avatar
      2008-10-09 Sam Weinig <sam@webkit.org> · ff4f17d5
      weinig@apple.com authored
              Reviewed by Maciej Stachowiak.
      
              Add leaks checking to StructureID.
      
              * kjs/StructureID.cpp:
              (JSC::StructureID::StructureID):
              (JSC::StructureID::~StructureID):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ff4f17d5
    • alp@webkit.org's avatar
      2008-10-09 Alp Toker <alp@nuanti.com> · 7e2b6cd8
      alp@webkit.org authored
              Reviewed by Mark Rowe.
      
              https://bugs.webkit.org/show_bug.cgi?id=20760
              Implement support for x86 Linux in CTI
      
              Prepare to enable CTI/WREC on supported architectures.
      
              Make it possible to use the CTI_ARGUMENT workaround with GCC as well
              as MSVC by fixing some preprocessor conditionals.
      
              Note that CTI/WREC no longer requires CTI_ARGUMENT on Linux so we
              don't actually enable it except when building with MSVC. GCC on Win32
              remains untested.
      
              Adapt inline ASM code to use the global symbol underscore prefix only
              on Darwin and to call the properly mangled Machine::cti_vm_throw
              symbol name depending on CTI_ARGUMENT.
      
              Also avoid global inclusion of the JIT infrastructure headers
              throughout WebCore and WebKit causing recompilation of about ~1500
              source files after modification to X86Assembler.h, CTI.h, WREC.h,
              which are only used deep inside JavaScriptCore.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e2b6cd8
    • barraclough@apple.com's avatar
      JavaScriptCore: · c8c2bb22
      barraclough@apple.com authored
      2008-10-09  Gavin Barraclough  <barraclough@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Fix for bug #21160, x=0;1/(x*-1) == -Infinity
      
              * ChangeLog:
              * VM/CTI.cpp:
              (JSC::CTI::emitFastArithDeTagImmediate):
              (JSC::CTI::emitFastArithDeTagImmediateJumpIfZero):
              (JSC::CTI::compileBinaryArithOp):
              (JSC::CTI::compileBinaryArithOpSlowCase):
              (JSC::CTI::privateCompileMainPass):
              (JSC::CTI::privateCompileSlowCases):
              * VM/CTI.h:
              * masm/X86Assembler.h:
              (JSC::X86Assembler::):
              (JSC::X86Assembler::emitUnlinkedJs):
      
      LayoutTests:
      
      2008-10-09  Gavin Barraclough  <barraclough@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Correct results for -0 cases.
      
              * fast/js/math-transforms-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8c2bb22
    • cwzwarich@webkit.org's avatar
      2008-10-09 Cameron Zwarich <zwarich@apple.com> · 144f3d50
      cwzwarich@webkit.org authored
              Reviewed by Oliver Hunt.
      
              Bug 21459: REGRESSION (r37324): Safari crashes inside JavaScriptCore while browsing hulu.com
              <https://bugs.webkit.org/show_bug.cgi?id=21459>
      
              After r37324, an Arguments object does not mark an associated activation
              object. This change was made because Arguments no longer directly used
              the activation object in any way. However, if an activation is torn off,
              then the backing store of Arguments becomes the register array of the
              activation object. Arguments directly marks all of the arguments, but
              the activation object is being collected, which causes its register
              array to be freed and new memory to be allocated in its place.
      
              Unfortunately, it does not seem possible to reproduce this issue in a
              layout test.
      
              * kjs/Arguments.cpp:
              (JSC::Arguments::mark):
              * kjs/Arguments.h:
              (JSC::Arguments::setActivation):
              (JSC::Arguments::Arguments):
              (JSC::JSActivation::copyRegisters):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      144f3d50
    • hausmann@webkit.org's avatar
      2008-10-09 Ariya Hidayat <ariya.hidayat@trolltech.com> · c95945ea
      hausmann@webkit.org authored
              Reviewed by Simon.
      
              Build fix for MinGW.
      
              * wtf/AlwaysInline.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37446 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c95945ea
  10. 08 Oct, 2008 1 commit