kill-old-processes should kill Web Socket script
https://bugs.webkit.org/show_bug.cgi?id=123546

Reviewed by Benjamin Poulain.

* BuildSlaveSupport/kill-old-processes:
(main):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixed a potential race condition around the initializtion of WKObject’s target.

Reviewed by Mark Rowe.

* Shared/Cocoa/WKObject.mm:
(initializeTargetIfNeeded): Removed the early return if _target is non-nil. As Mark pointed
out, when stores are reordered relative to other stores, it is possible for the early return
to occur while the object _target is pointing to is not yet valid.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Assertion failure in js/dom/global-constructors-attributes-dedicated-worker.html
https://bugs.webkit.org/show_bug.cgi?id=123551
<rdar://problem/15356238>

Reviewed by Mark Hahnenberg.
        
WatchpointSets have always had this "fire everything on deletion" policy because it
seemed like a good fail-safe at the time I first implemented WatchpointSets. But
it's actually causing bugs rather than providing safety:
        
- Everyone who registers Watchpoints with WatchpointSets have separate mechanisms
  for either keeping the WatchpointSets alive or noticing when they are collected.
  So this wasn't actually providing any safety.
          
  One example of this is Structures, where:
          
  - CodeBlocks that register Watchpoints on Structure's WatchpointSet will also
    register weak references to the Structure, and the GC will jettison a CodeBlock
    if the Structure(s) it cares about dies.
          
  - StructureStubInfos that register Watchpoints on Structure's WatchpointSet will
    also be cleared by GC if the Structures die.
        
- The WatchpointSet destructor would get invoked from finalization/destruction.
  This would then cause CodeBlock::jettison() to be called on a CodeBlock, but that
  method requires doing things that access heap objects. This would usually cause
  problems on VM destruction, since then the CodeBlocks would still be alive but the
  whole heap would be destroyed.
        
This also ensures that CodeBlock::jettison() cannot cause a GC. This is safe since
that method doesn't really allocate objects, and it is likely necessary because
jettison() may be called from deep in the stack.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
* bytecode/Watchpoint.cpp:
(JSC::WatchpointSet::~WatchpointSet):
* bytecode/Watchpoint.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Teach the style checker about ENUM_CLASS
https://bugs.webkit.org/show_bug.cgi?id=123528

Reviewed by Andy Estes.

* Scripts/webkitpy/style/checkers/cpp.py:
(_EnumState.process_clean_line): Make content of an ENUM_CLASS declaration
equivalent to enum content for checking.
(check_braces): Allow semicolon at the end.

* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(NoNonVirtualDestructorsTest.test_enum_casing):
(NoNonVirtualDestructorsTest.test_enum_trailing_semicolon):
(WebKitStyleTest.test_braces):
Test it.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158342 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace InlineBox::destroy() with regular virtual destruction.
<https://webkit.org/b/123550>

Move logic out of destroy() and its overloads into good ol' virtual
destructors instead.

Reviewed by Anders Carlsson.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158343 268f45cc-cd09-0410-ab3c-d52691b4dbfc