Implement `CSS.escape` as per CSSOM
https://bugs.webkit.org/show_bug.cgi?id=126337

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-24
Reviewed by Dean Jackson.

Source/WebCore:

Test: css3/escape-dom-api.html

* css/CSSOMUtils.cpp:
(WebCore::serializeIdentifier):
Update serialization to match the latest version of the spec:
<https://drafts.csswg.org/cssom/#serialize-an-identifier>
New handling for 0x0, 0x7f, just "-", and "--" is now allowed.

* css/DOMCSSNamespace.cpp:
(WebCore::DOMCSSNamespace::escape):
* css/DOMCSSNamespace.h:
* css/DOMCSSNamespace.idl:
New CSS.escape method.

LayoutTests:

CSS.escape is part of the CSSOM Spec:
https://drafts.csswg.org/cssom/#the-css.escape%28%29-method

Tests:
https://github.com/mathiasbynens/CSS.escape/blob/master/tests/tests.js

Change is based on the Blink change (patch by <rob.buis@samsung.com>) and follow-ups:
<https://chromium.googlesource.com/chromium/blink/+/c1a5ffdc924b089e70cd33ad2726b58cc8312abe>

* css3/escape-dom-api-expected.txt: Added.
* css3/escape-dom-api.html: Added.
New tests, taken from the polyfill.

* fast/css/parsing-css-nonascii-expected.txt:
* fast/css/parsing-css-nonascii.html:
* fast/css/selector-text-escape.html:
Update existing tests now that 0x7f is escaped.

* js/dom/function-removed-after-parsing-expected.txt:
* js/dom/function-removed-after-parsing.html:
Rename use of `CSS.escape` here now that `CSS.escape` exists.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@204952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
13 files changed