Web Inspector: JSContext inspection provide a way to opt-out of including Native Call Stacks in Exception traces reported to Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=131186

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-04-03
Reviewed by Geoffrey Garen.

* API/JSContextPrivate.h:
* API/JSContext.mm:
(-[JSContext _includesNativeCallStackWhenReportingExceptions]):
(-[JSContext _setIncludesNativeCallStackWhenReportingExceptions:]):
JSContext ObjC SPI to opt-out of including native call stacks in exceptions.

* API/JSContextRefPrivate.h:
* API/JSContextRef.cpp:
(JSGlobalContextGetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextSetIncludesNativeCallStackWhenReportingExceptions):
JSContext C SPI to opt-out of including native call stacks in exceptions.

* inspector/JSGlobalObjectInspectorController.h:
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
Only include the native call stack if the setting is enabled. It is enabled by default.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaseline some tests after r166748. These tests now correctly
report a contentsScale.

* platform/mac-wk2/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/mac-wk2/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/mac-wk2/compositing/tiling/tile-cache-zoomed-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
check-webkit-style: Improve warnings on Objective-C @property syntax
https://bugs.webkit.org/show_bug.cgi?id=131200

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-04-03
Reviewed by Dan Bernstein.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_spacing):
(CppChecker):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_spacing_in_objective_c_properties):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
All Heap::writeBarriers should be inline
https://bugs.webkit.org/show_bug.cgi?id=131197

Reviewed by Mark Lam.

One is in a JSCellInlines.h, another is in Heap.cpp. These are all critical
enough and small enough to belong in HeapInlines.h. Also added the proper
ENABLE(GGC) ifdefs to minimize the cost of C++ barriers for !ENABLE(GGC) builds.

* heap/Heap.cpp:
(JSC::Heap::writeBarrier): Deleted.
* heap/Heap.h:
* heap/HeapInlines.h:
(JSC::Heap::writeBarrier):
* runtime/JSCellInlines.h:
(JSC::Heap::writeBarrier): Deleted.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@166759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fast-path for casting JS wrappers to JSNode.
<https://webkit.org/b/131196>

Source/JavaScriptCore:

Allow code outside of JSC (well, WebCore) to extend the JSType spectrum
a little bit. We do this by exposing a LastJSCObjectType constant so
WebCore can encode its own wrapper types after that.

Reviewed by Mark Hahnenberg and Geoff Garen.

* runtime/JSType.h:

    Added LastJSCObjectType for use by WebCore.

* runtime/JSObject.h:
(JSC::JSObject::isVariableObject):

    Updated since this can no longer assume that types >= VariableObjectType
    are all variable objects.

Source/WebCore:

Add a way to quickly determine that a given JSObject is a JSNode.
This lets us avoid walking the ClassInfo chain in the DOM bindings
for WebCore::Node.

Reviewed by Mark Hahnenberg and Geoff Garen.

* bindings/js/JSDOMWrapper.h:

    Added a JSNodeType constant that extends beyond JSC::JSType.

* bindings/js/JSNodeCustom.h:
(WebCore::jsNodeCast):

    Added. Fast cast from JSValue to JSNode.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):

    Generate code that uses jsNodeCast in Node interfaces.

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