Implement white-space property on simple line layout path
https://bugs.webkit.org/show_bug.cgi?id=124122

Source/WebCore: 

Reviewed by Andreas Kling.
        
Support all values of the white-space property and the tab-size property.

Tests: fast/forms/basic-textareas-simple-lines.html
       fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html
       fast/text/whitespace/pre-wrap-line-test-simple-lines.html
       fast/text/whitespace/pre-wrap-long-word-simple-lines.html
       fast/text/whitespace/pre-wrap-spaces-after-newline-simple-lines.html

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::isWhitespace):
(WebCore::SimpleLineLayout::skipWhitespaces):
(WebCore::SimpleLineLayout::textWidth):
(WebCore::SimpleLineLayout::measureWord):
(WebCore::SimpleLineLayout::createTextRuns):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintDebugBorders):
(WebCore::SimpleLineLayout::paintFlow):

LayoutTests: 

Reviewed by Andreas Kling.
        
The simple line layout produces slightly different runs in some pre-wrap cases compared
to the line box path (with less unnecessary boxes). To keep the test coverage this patch forces the
existing render tree dump based tests to use line boxes. It also adds new ref tests for
the same cases where the test uses the simple line path and the ref is forced on the line box path.
This ensures that the paths produce pixel-identical results.

* fast/forms/basic-textareas-simple-lines-expected.html: Added.
* fast/forms/basic-textareas-simple-lines.html: Added.
* fast/forms/basic-textareas.html:
* fast/text/embed-at-end-of-pre-wrap-line-simple-lines-expected.html: Added.
* fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html: Added.
* fast/text/embed-at-end-of-pre-wrap-line.html:
* fast/text/whitespace/pre-wrap-line-test-simple-lines-expected.html: Added.
* fast/text/whitespace/pre-wrap-line-test-simple-lines.html: Added.
* fast/text/whitespace/pre-wrap-line-test.html:
* fast/text/whitespace/pre-wrap-long-word-simple-lines-expected.html: Added.
* fast/text/whitespace/pre-wrap-long-word-simple-lines.html: Added. New simple test for overflowing lines which was only covered by the very large basic-textareas.html.
* fast/text/whitespace/pre-wrap-spaces-after-newline-simple-lines-expected.html: Added.
* fast/text/whitespace/pre-wrap-spaces-after-newline-simple-lines.html: Added.
* fast/text/whitespace/pre-wrap-spaces-after-newline.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement Set iterators
https://bugs.webkit.org/show_bug.cgi?id=124129

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

Add Set iterator classes and implementations

* JavaScriptCore.xcodeproj/project.pbxproj:
* runtime/CommonIdentifiers.h:
* runtime/JSGlobalObject.cpp:
* runtime/JSGlobalObject.h:
* runtime/JSSetIterator.cpp: Added.
(JSC::JSSetIterator::finishCreation):
(JSC::JSSetIterator::visitChildren):
(JSC::JSSetIterator::createPair):
* runtime/JSSetIterator.h: Added.
(JSC::JSSetIterator::createStructure):
(JSC::JSSetIterator::create):
(JSC::JSSetIterator::next):
(JSC::JSSetIterator::JSSetIterator):
* runtime/SetIteratorConstructor.cpp: Added.
(JSC::SetIteratorConstructor::finishCreation):
* runtime/SetIteratorConstructor.h: Added.
(JSC::SetIteratorConstructor::create):
(JSC::SetIteratorConstructor::createStructure):
(JSC::SetIteratorConstructor::SetIteratorConstructor):
* runtime/SetIteratorPrototype.cpp: Added.
(JSC::SetIteratorPrototype::finishCreation):
(JSC::SetIteratorPrototypeFuncIterator):
(JSC::SetIteratorPrototypeFuncNext):
* runtime/SetIteratorPrototype.h: Added.
(JSC::SetIteratorPrototype::create):
(JSC::SetIteratorPrototype::createStructure):
(JSC::SetIteratorPrototype::SetIteratorPrototype):
* runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
(JSC::setProtoFuncValues):
(JSC::setProtoFuncEntries):
(JSC::setProtoFuncKeys):

LayoutTests:

Move Set tests to more sensible location and add iterator tests

* js/basic-set-expected.txt: Renamed from LayoutTests/js/dom/basic-set-expected.txt.
* js/basic-set.html: Renamed from LayoutTests/js/dom/basic-set.html.
* js/script-tests/basic-set.js: Renamed from LayoutTests/js/dom/script-tests/basic-set.js.
(set new):
(otherString.string_appeared_here.set add):
(try.set forEach):
(set forEach):
(set gc):

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