[V8] ScriptController::compileAndRunScript() can crash
https://bugs.webkit.org/show_bug.cgi?id=96567

Reviewed by Adam Barth.

See chromium bug: http://code.google.com/p/chromium/issues/detail?id=146776

The root cause is that v8::PreCompile() can return 0 when the stack of
V8's parser overflows (c.f. http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/src/parser.cc&exact_package=chromium&q=kPreParseStackOverflow&type=cs&l=6021).

This patch adds the 0 check to the caller side. Given that precompileScript()
is just trying to speculatively precompile a script, it's OK to give up
precompiling for such edge cases.

Manually tested with the html generated by the following shell script:

  echo '<script language="JavaScript" type="text/javascript" src="asan-crash.js"></script>' > asan-crash.html
  echo 'if(wURLF.search("")>=0) {}' > asan-crash.js
  for i in `seq 14830`
  do
    echo 'else if(wURLF.search("")>=0) {}' >> asan-crash.js
  done

I didn't add the test because '14380' depends on an environment
and because we don't want to add a huge html test.

* bindings/v8/ScriptSourceCode.cpp:
(WebCore::ScriptSourceCode::precompileScript):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129077 268f45cc-cd09-0410-ab3c-d52691b4dbfc
The collapsing border code needs direction-aware border getters
https://bugs.webkit.org/show_bug.cgi?id=96710

Reviewed by Ojan Vafai.

This refactoring is needed to extend our collapsing border support for mixed directionality
at the table cell level (we currently wrongly ignore any direction below the row-group). For
now, the new helpers are dumb and return exactly the old result but they will be made
direction-aware in a follow-up change.

Refactoring covered by existing tests.

* rendering/RenderBox.h:
(WebCore::RenderBox::hasSameDirectionAs):
Added this helper function. For now, it's only used to compare against
the table direction but we will reuse it to compare the current cell
direction against the other table parts.

* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::computeCollapsedStartBorder):
(WebCore::RenderTableCell::computeCollapsedEndBorder):
Transitioned those 2 functions to using the new direction-aware functions.

* rendering/RenderTable.cpp:
(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::borderAdjoiningTableStart):
(WebCore::RenderTableCell::borderAdjoiningTableEnd):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::borderAdjoiningTableStart):
(WebCore::RenderTableSection::borderAdjoiningTableEnd):
Updated those call sites to use RenderBox::hasSameDirectionAs.

* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::borderAdjoiningNextCell):
(WebCore::RenderTableCell::borderAdjoiningPreviousCell):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::borderAdjoiningCellStartBorder):
(WebCore::RenderTableCol::borderAdjoiningCellEndBorder):
(WebCore::RenderTableCol::borderAdjoiningCellBefore):
(WebCore::RenderTableCol::borderAdjoiningCellAfter):
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::borderAdjoiningStartCell):
(WebCore::RenderTableRow::borderAdjoiningEndCell):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::borderAdjoiningTableStart):
(WebCore::RenderTableRow::borderAdjoiningTableEnd):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):
New direction-aware functions. Added some ASSERT to ensure
we don't call them with the wrong parameters.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
update flakiness dashboard after cutover to new test expectations syntax
https://bugs.webkit.org/show_bug.cgi?id=97152

Reviewed by Ryosuke Niwa.

This change clones the TestExpectation parsing state machine
from python into javascript.

* TestResultServer/static-dashboards/flakiness_dashboard.js:
(parsedExpectations.lines.forEach):
(parsedExpectations):
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
update flakiness dashboard after cutover to new test expectations syntax
https://bugs.webkit.org/show_bug.cgi?id=97152

Unreviewed, build fix.

Handle (??) the new Bug notations as well. Hopefully we don't
still need the old ones.

* TestResultServer/static-dashboards/flakiness_dashboard.js:
(filterBugs):
(htmlForBugs):
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129080 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: print unexpected results using new TestExpectations syntax
https://bugs.webkit.org/show_bug.cgi?id=97159

Unreviewed, build fix.

Change new-run-webkit-tests to print out failures using the new
syntax when there are unexpected results, e.g.:

52 tests ran as expected, 19 didn't:

Regressions: Unexpected failures : (2)
  failures/flaky/text.html [ Failure ]
  failures/unexpected/text-image-checksum.html [ Failure ]

and so forth

* Scripts/webkitpy/layout_tests/views/printing.py:
(Printer._print_unexpected_results):

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