haikuwebkit/Source/WebCore/dom/TextEncoder.idl

44 lines
1.7 KiB
Plaintext
Raw Permalink Normal View History

Implement TextDecoder and TextEncoder https://bugs.webkit.org/show_bug.cgi?id=163771 Reviewed by Sam Weinig. LayoutTests/imported/w3c: * web-platform-tests/encoding/api-basics-expected.txt: * web-platform-tests/encoding/api-invalid-label-expected.txt: * web-platform-tests/encoding/api-replacement-encodings-expected.txt: * web-platform-tests/encoding/api-surrogates-utf8-expected.txt: * web-platform-tests/encoding/idlharness-expected.txt: * web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt: * web-platform-tests/encoding/single-byte-decoder-expected.txt: * web-platform-tests/encoding/textdecoder-byte-order-marks-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-ignorebom-expected.txt: * web-platform-tests/encoding/textdecoder-labels-expected.txt: * web-platform-tests/encoding/textdecoder-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-utf16-surrogates-expected.txt: * web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: * web-platform-tests/encoding/textencoder-utf16-surrogates-expected.txt: Source/WebCore: This API is already implemented by Chrome and Firefox as specified in https://encoding.spec.whatwg.org/ Covered by newly passing web platform tests. * features.json: * CMakeLists.txt: * DerivedSources.make: * WebCore.xcodeproj/project.pbxproj: * dom/TextDecoder.cpp: Added. (WebCore::isEncodingWhitespace): (WebCore::TextDecoder::create): (WebCore::TextDecoder::TextDecoder): (WebCore::TextDecoder::ignoreBOMIfNecessary): (WebCore::TextDecoder::prependBOMIfNecessary): (WebCore::codeUnitByteSize): (WebCore::TextDecoder::decode): (WebCore::TextDecoder::encoding): * dom/TextDecoder.h: Added. (WebCore::TextDecoder::fatal): (WebCore::TextDecoder::ignoreBOM): * dom/TextDecoder.idl: Added. * dom/TextEncoder.cpp: Added. (WebCore::TextEncoder::TextEncoder): (WebCore::TextEncoder::encoding): (WebCore::TextEncoder::encode): * dom/TextEncoder.h: Added. (WebCore::TextEncoder::create): * dom/TextEncoder.idl: Added. LayoutTests: * fast/encoding/utf-8-non-ascii-expected.txt: Added. * fast/encoding/utf-8-non-ascii.html: Added. * js/dom/global-constructors-attributes-dedicated-worker-expected.txt: * platform/efl/js/dom/global-constructors-attributes-expected.txt: * platform/gtk/js/dom/global-constructors-attributes-expected.txt: * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: * platform/mac/js/dom/global-constructors-attributes-expected.txt: * platform/win/js/dom/global-constructors-attributes-expected.txt: Canonical link: https://commits.webkit.org/182583@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-11-18 02:11:05 +00:00
/*
Binding generator is not always computing the right interface attributes https://bugs.webkit.org/show_bug.cgi?id=216173 Reviewed by Alex Christensen. Source/WebCore: Update the regular expression to make sure preprocess-idls.pl computes the right attributes for interfaces. Previously, it was causing issues if a dictionary defined before an interface in the same file had some extended attributes. Add some global objects IDL files to enable binding test coverage. Covered by binding tests and existing layout tests. * bindings/scripts/preprocess-idls.pl: (getInterfaceExtendedAttributesFromIDL): * bindings/scripts/test/BindingTestGlobalConstructors.idl: Added. * bindings/scripts/test/DOMWindow.idl: Added. * bindings/scripts/test/DOMWindowConstructors.idl: Added. * bindings/scripts/test/DedicatedWorkerGlobalScope.idl: Added. * bindings/scripts/test/DedicatedWorkerGlobalScopeConstructors.idl: Added. * bindings/scripts/test/ExposedToWorkerAndWindow.idl: Added. * bindings/scripts/test/JS/JSBindingTestGlobalConstructors.cpp: Added. * bindings/scripts/test/JS/JSBindingTestGlobalConstructors.h: Added. * bindings/scripts/test/JS/JSDOMWindow.cpp: Added. (WebCore::JSDOMWindowConstructor::prototypeForStructure): (WebCore::JSDOMWindowConstructor::initializeProperties): (WebCore::JSDOMWindowPrototype::finishCreation): (WebCore::JSDOMWindow::JSDOMWindow): (WebCore::JSDOMWindow::finishCreation): (WebCore::JSDOMWindow::getConstructor): (WebCore::IDLAttribute<JSDOMWindow>::cast): (WebCore::jsDOMWindowConstructor): (WebCore::setJSDOMWindowConstructor): (WebCore::jsDOMWindowExposedToWorkerAndWindowConstructorGetter): (WebCore::jsDOMWindowExposedToWorkerAndWindowConstructor): (WebCore::setJSDOMWindowExposedToWorkerAndWindowConstructorSetter): (WebCore::setJSDOMWindowExposedToWorkerAndWindowConstructor): (WebCore::jsDOMWindowTestNodeConstructorGetter): (WebCore::jsDOMWindowTestNodeConstructor): (WebCore::setJSDOMWindowTestNodeConstructorSetter): (WebCore::setJSDOMWindowTestNodeConstructor): (WebCore::jsDOMWindowTestObjectConstructorGetter): (WebCore::jsDOMWindowTestObjectConstructor): (WebCore::setJSDOMWindowTestObjectConstructorSetter): (WebCore::setJSDOMWindowTestObjectConstructor): (WebCore::jsDOMWindowTestPromiseRejectionEventConstructorGetter): (WebCore::jsDOMWindowTestPromiseRejectionEventConstructor): (WebCore::setJSDOMWindowTestPromiseRejectionEventConstructorSetter): (WebCore::setJSDOMWindowTestPromiseRejectionEventConstructor): (WebCore::JSDOMWindow::subspaceForImpl): (WebCore::JSDOMWindow::analyzeHeap): (WebCore::toJSNewlyCreated): (WebCore::toJS): (WebCore::JSDOMWindow::toWrapped): * bindings/scripts/test/JS/JSDOMWindow.h: Added. (WebCore::JSDOMWindow::create): (WebCore::JSDOMWindow::createStructure): (WebCore::JSDOMWindow::subspaceFor): (WebCore::JSDOMWindow::wrapped const): (WebCore::toJS): (WebCore::toJSNewlyCreated): * bindings/scripts/test/JS/JSDOMWindowConstructors.cpp: Added. * bindings/scripts/test/JS/JSDOMWindowConstructors.h: Added. * bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp: Added. (WebCore::JSDedicatedWorkerGlobalScopeConstructor::prototypeForStructure): (WebCore::JSDedicatedWorkerGlobalScopeConstructor::initializeProperties): (WebCore::JSDedicatedWorkerGlobalScopePrototype::finishCreation): (WebCore::JSDedicatedWorkerGlobalScope::JSDedicatedWorkerGlobalScope): (WebCore::JSDedicatedWorkerGlobalScope::finishCreation): (WebCore::JSDedicatedWorkerGlobalScope::getConstructor): (WebCore::jsDedicatedWorkerGlobalScopeConstructor): (WebCore::setJSDedicatedWorkerGlobalScopeConstructor): (WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl): (WebCore::JSDedicatedWorkerGlobalScope::analyzeHeap): * bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.h: Added. (WebCore::JSDedicatedWorkerGlobalScope::create): (WebCore::JSDedicatedWorkerGlobalScope::createStructure): (WebCore::JSDedicatedWorkerGlobalScope::subspaceFor): (WebCore::JSDedicatedWorkerGlobalScope::wrapped const): * bindings/scripts/test/JS/JSDedicatedWorkerGlobalScopeConstructors.cpp: Added. * bindings/scripts/test/JS/JSDedicatedWorkerGlobalScopeConstructors.h: Added. * bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp: Added. (WebCore::convertDictionary<ExposedToWorkerAndWindow::Dict>): (WebCore::convertDictionaryToJS): (WebCore::JSExposedToWorkerAndWindowConstructor::construct): (WebCore::JSExposedToWorkerAndWindowConstructor::prototypeForStructure): (WebCore::JSExposedToWorkerAndWindowConstructor::initializeProperties): (WebCore::JSExposedToWorkerAndWindowPrototype::finishCreation): (WebCore::JSExposedToWorkerAndWindow::JSExposedToWorkerAndWindow): (WebCore::JSExposedToWorkerAndWindow::finishCreation): (WebCore::JSExposedToWorkerAndWindow::createPrototype): (WebCore::JSExposedToWorkerAndWindow::prototype): (WebCore::JSExposedToWorkerAndWindow::getConstructor): (WebCore::JSExposedToWorkerAndWindow::destroy): (WebCore::IDLOperation<JSExposedToWorkerAndWindow>::cast): (WebCore::jsExposedToWorkerAndWindowConstructor): (WebCore::setJSExposedToWorkerAndWindowConstructor): (WebCore::jsExposedToWorkerAndWindowPrototypeFunctionDoSomethingBody): (WebCore::jsExposedToWorkerAndWindowPrototypeFunctionDoSomething): (WebCore::JSExposedToWorkerAndWindow::subspaceForImpl): (WebCore::JSExposedToWorkerAndWindow::analyzeHeap): (WebCore::JSExposedToWorkerAndWindowOwner::isReachableFromOpaqueRoots): (WebCore::JSExposedToWorkerAndWindowOwner::finalize): (WebCore::toJSNewlyCreated): (WebCore::toJS): (WebCore::JSExposedToWorkerAndWindow::toWrapped): * bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h: Copied from Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h. (WebCore::JSExposedToWorkerAndWindow::create): (WebCore::JSExposedToWorkerAndWindow::createStructure): (WebCore::JSExposedToWorkerAndWindow::subspaceFor): (WebCore::wrapperOwner): (WebCore::wrapperKey): (WebCore::toJS): (WebCore::toJSNewlyCreated): * bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp: Added. (WebCore::JSPaintWorkletGlobalScopeConstructor::prototypeForStructure): (WebCore::JSPaintWorkletGlobalScopeConstructor::initializeProperties): (WebCore::JSPaintWorkletGlobalScopePrototype::finishCreation): (WebCore::JSPaintWorkletGlobalScope::JSPaintWorkletGlobalScope): (WebCore::JSPaintWorkletGlobalScope::finishCreation): (WebCore::JSPaintWorkletGlobalScope::getConstructor): (WebCore::jsPaintWorkletGlobalScopeConstructor): (WebCore::setJSPaintWorkletGlobalScopeConstructor): (WebCore::JSPaintWorkletGlobalScope::subspaceForImpl): (WebCore::JSPaintWorkletGlobalScope::analyzeHeap): * bindings/scripts/test/JS/JSPaintWorkletGlobalScope.h: Added. (WebCore::JSPaintWorkletGlobalScope::create): (WebCore::JSPaintWorkletGlobalScope::createStructure): (WebCore::JSPaintWorkletGlobalScope::subspaceFor): (WebCore::JSPaintWorkletGlobalScope::wrapped const): * bindings/scripts/test/JS/JSPaintWorkletGlobalScopeConstructors.cpp: Added. * bindings/scripts/test/JS/JSPaintWorkletGlobalScopeConstructors.h: Added. * bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp: Added. (WebCore::JSServiceWorkerGlobalScopeConstructor::prototypeForStructure): (WebCore::JSServiceWorkerGlobalScopeConstructor::initializeProperties): (WebCore::JSServiceWorkerGlobalScopePrototype::finishCreation): (WebCore::JSServiceWorkerGlobalScope::JSServiceWorkerGlobalScope): (WebCore::JSServiceWorkerGlobalScope::finishCreation): (WebCore::JSServiceWorkerGlobalScope::getConstructor): (WebCore::jsServiceWorkerGlobalScopeConstructor): (WebCore::setJSServiceWorkerGlobalScopeConstructor): (WebCore::JSServiceWorkerGlobalScope::subspaceForImpl): (WebCore::JSServiceWorkerGlobalScope::analyzeHeap): * bindings/scripts/test/JS/JSServiceWorkerGlobalScope.h: Added. (WebCore::JSServiceWorkerGlobalScope::create): (WebCore::JSServiceWorkerGlobalScope::createStructure): (WebCore::JSServiceWorkerGlobalScope::subspaceFor): (WebCore::JSServiceWorkerGlobalScope::wrapped const): * bindings/scripts/test/JS/JSServiceWorkerGlobalScopeConstructors.cpp: Added. * bindings/scripts/test/JS/JSServiceWorkerGlobalScopeConstructors.h: Added. * bindings/scripts/test/JS/JSTestGlobalObject.cpp: (WebCore::jsTestGlobalObjectDOMWindowConstructorGetter): (WebCore::jsTestGlobalObjectDOMWindowConstructor): (WebCore::setJSTestGlobalObjectDOMWindowConstructorSetter): (WebCore::setJSTestGlobalObjectDOMWindowConstructor): (WebCore::jsTestGlobalObjectDedicatedWorkerGlobalScopeConstructorGetter): (WebCore::jsTestGlobalObjectDedicatedWorkerGlobalScopeConstructor): (WebCore::setJSTestGlobalObjectDedicatedWorkerGlobalScopeConstructorSetter): (WebCore::setJSTestGlobalObjectDedicatedWorkerGlobalScopeConstructor): (WebCore::jsTestGlobalObjectPaintWorkletGlobalScopeConstructorGetter): (WebCore::jsTestGlobalObjectPaintWorkletGlobalScopeConstructor): (WebCore::setJSTestGlobalObjectPaintWorkletGlobalScopeConstructorSetter): (WebCore::setJSTestGlobalObjectPaintWorkletGlobalScopeConstructor): (WebCore::jsTestGlobalObjectServiceWorkerGlobalScopeConstructorGetter): (WebCore::jsTestGlobalObjectServiceWorkerGlobalScopeConstructor): (WebCore::setJSTestGlobalObjectServiceWorkerGlobalScopeConstructorSetter): (WebCore::setJSTestGlobalObjectServiceWorkerGlobalScopeConstructor): (WebCore::jsTestGlobalObjectWorkerGlobalScopeConstructorGetter): (WebCore::jsTestGlobalObjectWorkerGlobalScopeConstructor): (WebCore::setJSTestGlobalObjectWorkerGlobalScopeConstructorSetter): (WebCore::setJSTestGlobalObjectWorkerGlobalScopeConstructor): (WebCore::jsTestGlobalObjectWorkletGlobalScopeConstructorGetter): (WebCore::jsTestGlobalObjectWorkletGlobalScopeConstructor): (WebCore::setJSTestGlobalObjectWorkletGlobalScopeConstructorSetter): (WebCore::setJSTestGlobalObjectWorkletGlobalScopeConstructor): * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: * bindings/scripts/test/JS/JSWorkerGlobalScope.cpp: Added. (WebCore::JSWorkerGlobalScopeConstructor::prototypeForStructure): (WebCore::JSWorkerGlobalScopeConstructor::initializeProperties): (WebCore::JSWorkerGlobalScopePrototype::finishCreation): (WebCore::JSWorkerGlobalScope::JSWorkerGlobalScope): (WebCore::JSWorkerGlobalScope::finishCreation): (WebCore::JSWorkerGlobalScope::createPrototype): (WebCore::JSWorkerGlobalScope::prototype): (WebCore::JSWorkerGlobalScope::getConstructor): (WebCore::IDLAttribute<JSWorkerGlobalScope>::cast): (WebCore::jsWorkerGlobalScopeConstructor): (WebCore::setJSWorkerGlobalScopeConstructor): (WebCore::jsWorkerGlobalScopeExposedToWorkerAndWindowConstructorGetter): (WebCore::jsWorkerGlobalScopeExposedToWorkerAndWindowConstructor): (WebCore::setJSWorkerGlobalScopeExposedToWorkerAndWindowConstructorSetter): (WebCore::setJSWorkerGlobalScopeExposedToWorkerAndWindowConstructor): (WebCore::jsWorkerGlobalScopeTestNodeConstructorGetter): (WebCore::jsWorkerGlobalScopeTestNodeConstructor): (WebCore::setJSWorkerGlobalScopeTestNodeConstructorSetter): (WebCore::setJSWorkerGlobalScopeTestNodeConstructor): (WebCore::jsWorkerGlobalScopeTestObjectConstructorGetter): (WebCore::jsWorkerGlobalScopeTestObjectConstructor): (WebCore::setJSWorkerGlobalScopeTestObjectConstructorSetter): (WebCore::setJSWorkerGlobalScopeTestObjectConstructor): (WebCore::jsWorkerGlobalScopeTestPromiseRejectionEventConstructorGetter): (WebCore::jsWorkerGlobalScopeTestPromiseRejectionEventConstructor): (WebCore::setJSWorkerGlobalScopeTestPromiseRejectionEventConstructorSetter): (WebCore::setJSWorkerGlobalScopeTestPromiseRejectionEventConstructor): (WebCore::JSWorkerGlobalScope::subspaceForImpl): (WebCore::JSWorkerGlobalScope::analyzeHeap): (WebCore::toJSNewlyCreated): (WebCore::toJS): (WebCore::JSWorkerGlobalScope::toWrapped): * bindings/scripts/test/JS/JSWorkerGlobalScope.h: Added. (WebCore::JSWorkerGlobalScope::create): (WebCore::JSWorkerGlobalScope::createStructure): (WebCore::JSWorkerGlobalScope::subspaceFor): (WebCore::JSWorkerGlobalScope::wrapped const): (WebCore::toJS): (WebCore::toJSNewlyCreated): * bindings/scripts/test/JS/JSWorkerGlobalScopeConstructors.cpp: Added. * bindings/scripts/test/JS/JSWorkerGlobalScopeConstructors.h: Added. * bindings/scripts/test/JS/JSWorkletGlobalScope.cpp: Added. (WebCore::JSWorkletGlobalScopeConstructor::prototypeForStructure): (WebCore::JSWorkletGlobalScopeConstructor::initializeProperties): (WebCore::JSWorkletGlobalScopePrototype::finishCreation): (WebCore::JSWorkletGlobalScope::JSWorkletGlobalScope): (WebCore::JSWorkletGlobalScope::finishCreation): (WebCore::JSWorkletGlobalScope::createPrototype): (WebCore::JSWorkletGlobalScope::prototype): (WebCore::JSWorkletGlobalScope::getConstructor): (WebCore::jsWorkletGlobalScopeConstructor): (WebCore::setJSWorkletGlobalScopeConstructor): (WebCore::JSWorkletGlobalScope::subspaceForImpl): (WebCore::JSWorkletGlobalScope::analyzeHeap): (WebCore::toJSNewlyCreated): (WebCore::toJS): (WebCore::JSWorkletGlobalScope::toWrapped): * bindings/scripts/test/JS/JSWorkletGlobalScope.h: Added. (WebCore::JSWorkletGlobalScope::create): (WebCore::JSWorkletGlobalScope::createStructure): (WebCore::JSWorkletGlobalScope::subspaceFor): (WebCore::JSWorkletGlobalScope::wrapped const): (WebCore::toJS): (WebCore::toJSNewlyCreated): * bindings/scripts/test/JS/JSWorkletGlobalScopeConstructors.cpp: Added. * bindings/scripts/test/JS/JSWorkletGlobalScopeConstructors.h: Added. * bindings/scripts/test/PaintWorkletGlobalScope.idl: Added. * bindings/scripts/test/PaintWorkletGlobalScopeConstructors.idl: Added. * bindings/scripts/test/ServiceWorkerGlobalScope.idl: Added. * bindings/scripts/test/ServiceWorkerGlobalScopeConstructors.idl: Added. * bindings/scripts/test/SupplementalDependencies.dep: * bindings/scripts/test/WorkerGlobalScope.idl: Added. * bindings/scripts/test/WorkerGlobalScopeConstructors.idl: Added. * bindings/scripts/test/WorkletGlobalScope.idl: Added. * bindings/scripts/test/WorkletGlobalScopeConstructors.idl: Added. * dom/TextEncoder.idl: Tools: Add support to validate global constructor idl file generator. * Scripts/webkitpy/bindings/main.py: (BindingsTests.generate_from_idl): (BindingsTests.generate_supplemental_dependency): (BindingsTests.main): Canonical link: https://commits.webkit.org/228990@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266615 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-09-04 16:40:11 +00:00
* Copyright (C) 2016-2020 Apple Inc. All rights reserved.
Implement TextDecoder and TextEncoder https://bugs.webkit.org/show_bug.cgi?id=163771 Reviewed by Sam Weinig. LayoutTests/imported/w3c: * web-platform-tests/encoding/api-basics-expected.txt: * web-platform-tests/encoding/api-invalid-label-expected.txt: * web-platform-tests/encoding/api-replacement-encodings-expected.txt: * web-platform-tests/encoding/api-surrogates-utf8-expected.txt: * web-platform-tests/encoding/idlharness-expected.txt: * web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt: * web-platform-tests/encoding/single-byte-decoder-expected.txt: * web-platform-tests/encoding/textdecoder-byte-order-marks-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-ignorebom-expected.txt: * web-platform-tests/encoding/textdecoder-labels-expected.txt: * web-platform-tests/encoding/textdecoder-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-utf16-surrogates-expected.txt: * web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: * web-platform-tests/encoding/textencoder-utf16-surrogates-expected.txt: Source/WebCore: This API is already implemented by Chrome and Firefox as specified in https://encoding.spec.whatwg.org/ Covered by newly passing web platform tests. * features.json: * CMakeLists.txt: * DerivedSources.make: * WebCore.xcodeproj/project.pbxproj: * dom/TextDecoder.cpp: Added. (WebCore::isEncodingWhitespace): (WebCore::TextDecoder::create): (WebCore::TextDecoder::TextDecoder): (WebCore::TextDecoder::ignoreBOMIfNecessary): (WebCore::TextDecoder::prependBOMIfNecessary): (WebCore::codeUnitByteSize): (WebCore::TextDecoder::decode): (WebCore::TextDecoder::encoding): * dom/TextDecoder.h: Added. (WebCore::TextDecoder::fatal): (WebCore::TextDecoder::ignoreBOM): * dom/TextDecoder.idl: Added. * dom/TextEncoder.cpp: Added. (WebCore::TextEncoder::TextEncoder): (WebCore::TextEncoder::encoding): (WebCore::TextEncoder::encode): * dom/TextEncoder.h: Added. (WebCore::TextEncoder::create): * dom/TextEncoder.idl: Added. LayoutTests: * fast/encoding/utf-8-non-ascii-expected.txt: Added. * fast/encoding/utf-8-non-ascii.html: Added. * js/dom/global-constructors-attributes-dedicated-worker-expected.txt: * platform/efl/js/dom/global-constructors-attributes-expected.txt: * platform/gtk/js/dom/global-constructors-attributes-expected.txt: * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: * platform/mac/js/dom/global-constructors-attributes-expected.txt: * platform/win/js/dom/global-constructors-attributes-expected.txt: Canonical link: https://commits.webkit.org/182583@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-11-18 02:11:05 +00:00
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
[
JSGenerateToJSObject
] dictionary TextEncoderEncodeIntoResult {
unsigned long long read;
unsigned long long written;
};
Implement TextDecoder and TextEncoder https://bugs.webkit.org/show_bug.cgi?id=163771 Reviewed by Sam Weinig. LayoutTests/imported/w3c: * web-platform-tests/encoding/api-basics-expected.txt: * web-platform-tests/encoding/api-invalid-label-expected.txt: * web-platform-tests/encoding/api-replacement-encodings-expected.txt: * web-platform-tests/encoding/api-surrogates-utf8-expected.txt: * web-platform-tests/encoding/idlharness-expected.txt: * web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt: * web-platform-tests/encoding/single-byte-decoder-expected.txt: * web-platform-tests/encoding/textdecoder-byte-order-marks-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-ignorebom-expected.txt: * web-platform-tests/encoding/textdecoder-labels-expected.txt: * web-platform-tests/encoding/textdecoder-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-utf16-surrogates-expected.txt: * web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: * web-platform-tests/encoding/textencoder-utf16-surrogates-expected.txt: Source/WebCore: This API is already implemented by Chrome and Firefox as specified in https://encoding.spec.whatwg.org/ Covered by newly passing web platform tests. * features.json: * CMakeLists.txt: * DerivedSources.make: * WebCore.xcodeproj/project.pbxproj: * dom/TextDecoder.cpp: Added. (WebCore::isEncodingWhitespace): (WebCore::TextDecoder::create): (WebCore::TextDecoder::TextDecoder): (WebCore::TextDecoder::ignoreBOMIfNecessary): (WebCore::TextDecoder::prependBOMIfNecessary): (WebCore::codeUnitByteSize): (WebCore::TextDecoder::decode): (WebCore::TextDecoder::encoding): * dom/TextDecoder.h: Added. (WebCore::TextDecoder::fatal): (WebCore::TextDecoder::ignoreBOM): * dom/TextDecoder.idl: Added. * dom/TextEncoder.cpp: Added. (WebCore::TextEncoder::TextEncoder): (WebCore::TextEncoder::encoding): (WebCore::TextEncoder::encode): * dom/TextEncoder.h: Added. (WebCore::TextEncoder::create): * dom/TextEncoder.idl: Added. LayoutTests: * fast/encoding/utf-8-non-ascii-expected.txt: Added. * fast/encoding/utf-8-non-ascii.html: Added. * js/dom/global-constructors-attributes-dedicated-worker-expected.txt: * platform/efl/js/dom/global-constructors-attributes-expected.txt: * platform/gtk/js/dom/global-constructors-attributes-expected.txt: * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: * platform/mac/js/dom/global-constructors-attributes-expected.txt: * platform/win/js/dom/global-constructors-attributes-expected.txt: Canonical link: https://commits.webkit.org/182583@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-11-18 02:11:05 +00:00
[
Exposed=(Window,Worker),
ImplementationLacksVTable
] interface TextEncoder {
Use constructor operations in WebIDL https://bugs.webkit.org/show_bug.cgi?id=201397 Reviewed by Eric Carlson. Add support for constructor syntax in WebIDL (https://heycam.github.io/webidl/#idl-constructors) - [Constructor(...)] extended attributes become constructor(...) operations - [JSBuiltinConstructor] becomes [JSBuiltin] constructor(...) - [CustomConstructor] becomes [Custom] constructor(...) - [ConstructorMayThrowException] becomes [MayThrowException] constructor(...) and can now be unique per-overload - [ConstructorCallWith=Foo] becomes [CallWith=Foo] constructor(...) and can now also be unique per-overload This change leaves NamedConstructor as is, but a subsequent change will replace it with the specified LegacyFactoryFunction extended attribute. * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl: * Modules/applepay/ApplePayError.idl: * Modules/applepay/ApplePaySession.idl: * Modules/applepay/ApplePaySetup.idl: * Modules/async-clipboard/ClipboardItem.idl: * Modules/encryptedmedia/MediaKeyMessageEvent.idl: * Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl: * Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl: * Modules/encryptedmedia/legacy/WebKitMediaKeys.idl: * Modules/fetch/FetchHeaders.idl: * Modules/fetch/FetchRequest.idl: * Modules/fetch/FetchResponse.idl: * Modules/gamepad/GamepadEvent.idl: * Modules/highlight/HighlightMap.idl: * Modules/highlight/HighlightRangeGroup.idl: * Modules/indexeddb/IDBVersionChangeEvent.idl: * Modules/mediarecorder/BlobEvent.idl: * Modules/mediarecorder/MediaRecorder.idl: * Modules/mediarecorder/MediaRecorderErrorEvent.idl: * Modules/mediasession/MediaRemoteControls.idl: * Modules/mediasession/MediaSession.idl: * Modules/mediasource/MediaSource.idl: * Modules/mediastream/MediaStream.idl: * Modules/mediastream/MediaStreamTrackEvent.idl: * Modules/mediastream/OverconstrainedError.idl: * Modules/mediastream/OverconstrainedErrorEvent.idl: * Modules/mediastream/RTCDTMFToneChangeEvent.idl: * Modules/mediastream/RTCDataChannelEvent.idl: * Modules/mediastream/RTCIceCandidate.idl: * Modules/mediastream/RTCPeerConnection.idl: * Modules/mediastream/RTCPeerConnectionIceEvent.idl: * Modules/mediastream/RTCSessionDescription.idl: * Modules/mediastream/RTCTrackEvent.idl: * Modules/notifications/Notification.idl: * Modules/paymentrequest/MerchantValidationEvent.idl: * Modules/paymentrequest/PaymentMethodChangeEvent.idl: * Modules/paymentrequest/PaymentRequest.idl: * Modules/paymentrequest/PaymentRequestUpdateEvent.idl: * Modules/pictureinpicture/EnterPictureInPictureEvent.idl: * Modules/speech/SpeechSynthesisUtterance.idl: * Modules/streams/ByteLengthQueuingStrategy.idl: * Modules/streams/CountQueuingStrategy.idl: * Modules/streams/ReadableByteStreamController.idl: * Modules/streams/ReadableStream.idl: * Modules/streams/ReadableStreamBYOBReader.idl: * Modules/streams/ReadableStreamBYOBRequest.idl: * Modules/streams/ReadableStreamDefaultController.idl: * Modules/streams/ReadableStreamDefaultReader.idl: * Modules/streams/WritableStream.idl: * Modules/webaudio/AudioContext.idl: * Modules/webaudio/OfflineAudioContext.idl: * Modules/webgpu/GPUOutOfMemoryError.idl: * Modules/webgpu/GPUUncapturedErrorEvent.idl: * Modules/webgpu/GPUValidationError.idl: * Modules/websockets/CloseEvent.idl: * Modules/websockets/WebSocket.idl: * Modules/webxr/WebXRRigidTransform.idl: * Modules/webxr/WebXRWebGLLayer.idl: * Modules/webxr/XRInputSourceEvent.idl: * Modules/webxr/XRInputSourcesChangeEvent.idl: * Modules/webxr/XRReferenceSpaceEvent.idl: * Modules/webxr/XRSessionEvent.idl: * animation/AnimationPlaybackEvent.idl: * animation/DocumentTimeline.idl: * animation/KeyframeEffect.idl: * animation/WebAnimation.idl: * bindings/scripts/CodeGeneratorJS.pm: (ShouldGenerateToJSDeclaration): (GetFullyQualifiedImplementationCallName): (GenerateParametersCheck): (GetConstructorTemplateClassName): (GenerateConstructorDefinition): (GenerateConstructorHelperMethods): (HasCustomConstructor): (IsConstructable): (HasJSBuiltinConstructor): (AddJSBuiltinIncludesIfNeeded): (IsJSBuiltinConstructor): Deleted. * bindings/scripts/IDLAttributes.json: * bindings/scripts/IDLParser.pm: (assertExtendedAttributesValidForContext): (copyExtendedAttributes): (cloneOperation): (applyTypedefs): (parseInterfaceMember): (parseConstructor): (parseExtendedAttributeRest): (applyMemberList): (applyExtendedAttributeList): * bindings/scripts/test/JS/JSTestInterface.cpp: * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: (WebCore::JSTestNamedConstructorConstructor::initializeProperties): (WebCore::JSTestNamedConstructorNamedConstructor::construct): (WebCore::JSTestNamedConstructorNamedConstructor::initializeProperties): * bindings/scripts/test/TestClassWithJSBuiltinConstructor.idl: * bindings/scripts/test/TestEventConstructor.idl: * bindings/scripts/test/TestInterface.idl: * bindings/scripts/test/TestJSBuiltinConstructor.idl: * bindings/scripts/test/TestNamedConstructor.idl: * bindings/scripts/test/TestNode.idl: * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/TestOverloadedConstructors.idl: * bindings/scripts/test/TestOverloadedConstructorsWithSequence.idl: * bindings/scripts/test/TestPromiseRejectionEvent.idl: * bindings/scripts/test/TestTypedefs.idl: * css/DOMMatrix.idl: * css/DOMMatrixReadOnly.idl: * css/FontFace.idl: * css/FontFaceSet.idl: * css/MediaQueryListEvent.idl: * css/WebKitCSSMatrix.idl: * css/typedom/TypedOMCSSUnitValue.idl: * css/typedom/TypedOMCSSUnparsedValue.idl: * dom/AbortController.idl: * dom/AnimationEvent.idl: * dom/BeforeLoadEvent.idl: * dom/ClipboardEvent.idl: * dom/Comment.idl: * dom/CompositionEvent.idl: * dom/CustomEvent.idl: * dom/DOMException.idl: * dom/DOMPoint.idl: * dom/DOMPointReadOnly.idl: * dom/DOMQuad.idl: * dom/DOMRect.idl: * dom/DOMRectReadOnly.idl: * dom/Document.idl: * dom/DocumentFragment.idl: * dom/DragEvent.idl: * dom/ErrorEvent.idl: * dom/Event.idl: * dom/EventTarget.idl: * dom/FocusEvent.idl: * dom/HashChangeEvent.idl: * dom/InputEvent.idl: * dom/KeyboardEvent.idl: * dom/MessageChannel.idl: * dom/MessageEvent.idl: * dom/MouseEvent.idl: * dom/MutationObserver.idl: * dom/OverflowEvent.idl: * dom/PageTransitionEvent.idl: * dom/PointerEvent.idl: * dom/PopStateEvent.idl: * dom/ProgressEvent.idl: * dom/PromiseRejectionEvent.idl: * dom/Range.idl: * dom/SecurityPolicyViolationEvent.idl: * dom/StaticRange.idl: * dom/Text.idl: * dom/TextDecoder.idl: * dom/TextEncoder.idl: * dom/TransitionEvent.idl: * dom/UIEvent.idl: * dom/WebKitAnimationEvent.idl: * dom/WebKitTransitionEvent.idl: * dom/WheelEvent.idl: * fileapi/Blob.idl: * fileapi/File.idl: * fileapi/FileReader.idl: * fileapi/FileReaderSync.idl: * html/DOMFormData.idl: * html/DOMURL.idl: * html/HTMLElement.idl: * html/HTMLOptionElement.idl: * html/ImageData.idl: * html/MediaController.idl: * html/MediaEncryptedEvent.idl: * html/OffscreenCanvas.idl: * html/URLSearchParams.idl: * html/canvas/Path2D.idl: * html/canvas/WebGLContextEvent.idl: * html/track/DataCue.idl: * html/track/TextTrackCue.idl: * html/track/TrackEvent.idl: * html/track/VTTCue.idl: * html/track/VTTRegion.idl: * page/EventSource.idl: * page/IntersectionObserver.idl: * page/IntersectionObserverEntry.idl: * page/PerformanceObserver.idl: * page/ResizeObserver.idl: * page/UndoItem.idl: * page/WebKitPoint.idl: * storage/StorageEvent.idl: * workers/Worker.idl: * workers/service/ExtendableEvent.idl: * workers/service/ExtendableMessageEvent.idl: * workers/service/FetchEvent.idl: * xml/DOMParser.idl: * xml/XMLHttpRequest.idl: * xml/XMLSerializer.idl: * xml/XPathEvaluator.idl: * xml/XSLTProcessor.idl: Canonical link: https://commits.webkit.org/226091@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@263160 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-06-17 16:56:19 +00:00
constructor();
Implement TextDecoder and TextEncoder https://bugs.webkit.org/show_bug.cgi?id=163771 Reviewed by Sam Weinig. LayoutTests/imported/w3c: * web-platform-tests/encoding/api-basics-expected.txt: * web-platform-tests/encoding/api-invalid-label-expected.txt: * web-platform-tests/encoding/api-replacement-encodings-expected.txt: * web-platform-tests/encoding/api-surrogates-utf8-expected.txt: * web-platform-tests/encoding/idlharness-expected.txt: * web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt: * web-platform-tests/encoding/single-byte-decoder-expected.txt: * web-platform-tests/encoding/textdecoder-byte-order-marks-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-ignorebom-expected.txt: * web-platform-tests/encoding/textdecoder-labels-expected.txt: * web-platform-tests/encoding/textdecoder-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-utf16-surrogates-expected.txt: * web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: * web-platform-tests/encoding/textencoder-utf16-surrogates-expected.txt: Source/WebCore: This API is already implemented by Chrome and Firefox as specified in https://encoding.spec.whatwg.org/ Covered by newly passing web platform tests. * features.json: * CMakeLists.txt: * DerivedSources.make: * WebCore.xcodeproj/project.pbxproj: * dom/TextDecoder.cpp: Added. (WebCore::isEncodingWhitespace): (WebCore::TextDecoder::create): (WebCore::TextDecoder::TextDecoder): (WebCore::TextDecoder::ignoreBOMIfNecessary): (WebCore::TextDecoder::prependBOMIfNecessary): (WebCore::codeUnitByteSize): (WebCore::TextDecoder::decode): (WebCore::TextDecoder::encoding): * dom/TextDecoder.h: Added. (WebCore::TextDecoder::fatal): (WebCore::TextDecoder::ignoreBOM): * dom/TextDecoder.idl: Added. * dom/TextEncoder.cpp: Added. (WebCore::TextEncoder::TextEncoder): (WebCore::TextEncoder::encoding): (WebCore::TextEncoder::encode): * dom/TextEncoder.h: Added. (WebCore::TextEncoder::create): * dom/TextEncoder.idl: Added. LayoutTests: * fast/encoding/utf-8-non-ascii-expected.txt: Added. * fast/encoding/utf-8-non-ascii.html: Added. * js/dom/global-constructors-attributes-dedicated-worker-expected.txt: * platform/efl/js/dom/global-constructors-attributes-expected.txt: * platform/gtk/js/dom/global-constructors-attributes-expected.txt: * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: * platform/mac/js/dom/global-constructors-attributes-expected.txt: * platform/win/js/dom/global-constructors-attributes-expected.txt: Canonical link: https://commits.webkit.org/182583@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-11-18 02:11:05 +00:00
readonly attribute DOMString encoding;
[NewObject] Uint8Array encode(optional USVString input = "");
Unreviewed, relanding r269940 https://bugs.webkit.org/show_bug.cgi?id=219076 JSTests: * wasm/function-tests/trap-load-shared.js: Added. (wasmFrameCountFromError): * wasm/function-tests/trap-store-shared.js: Added. * wasm/js-api/test_memory.js: (binaryShouldNotParse): * wasm/stress/shared-memory-errors.js: Added. (assert.throws): * wasm/stress/shared-wasm-memory-buffer.js: Added. LayoutTests/imported/w3c: * web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-success.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any-expected.txt: * web-platform-tests/wasm/jsapi/memory/constructor-shared.tentative.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt: * web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt: * web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt: * web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt: Source/JavaScriptCore: ARM64E clang optimizer is broken and optimizing forever if Wasm::MemoryHandle::memory() is inlined. Putting NEVER_INLINE onto this function for now (unfortunate). * CMakeLists.txt: * JavaScriptCore.xcodeproj/project.pbxproj: * llint/LLIntPCRanges.h: (JSC::LLInt::isWasmLLIntPC): * llint/LowLevelInterpreter.asm: * llint/WebAssembly.asm: * runtime/JSArrayBuffer.h: (JSC::JSArrayBuffer::toWrappedAllowShared): * runtime/JSArrayBufferView.h: * runtime/JSArrayBufferViewInlines.h: (JSC::JSArrayBufferView::toWrappedAllowShared): * runtime/JSGenericTypedArrayView.h: (JSC::JSGenericTypedArrayView<Adaptor>::toWrappedAllowShared): * runtime/Options.cpp: (JSC::overrideDefaults): (JSC::Options::initialize): * wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::AirIRGenerator): (JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState): (JSC::Wasm::AirIRGenerator::addCurrentMemory): (JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer): (JSC::Wasm::AirIRGenerator::addCall): (JSC::Wasm::AirIRGenerator::addCallIndirect): * wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::B3IRGenerator): (JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState): (JSC::Wasm::B3IRGenerator::addCurrentMemory): (JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer): (JSC::Wasm::B3IRGenerator::addCall): (JSC::Wasm::B3IRGenerator::addCallIndirect): * wasm/WasmBinding.cpp: (JSC::Wasm::wasmToWasm): * wasm/WasmFaultSignalHandler.cpp: (JSC::Wasm::trapHandler): (JSC::Wasm::enableFastMemory): (JSC::Wasm::prepareFastMemory): * wasm/WasmInstance.h: (JSC::Wasm::Instance::cachedMemory const): (JSC::Wasm::Instance::cachedBoundsCheckingSize const): (JSC::Wasm::Instance::updateCachedMemory): (JSC::Wasm::Instance::offsetOfCachedBoundsCheckingSize): (JSC::Wasm::Instance::cachedMemorySize const): Deleted. (JSC::Wasm::Instance::offsetOfCachedMemorySize): Deleted. * wasm/WasmMemory.cpp: (JSC::Wasm::MemoryHandle::MemoryHandle): (JSC::Wasm::MemoryHandle::~MemoryHandle): (JSC::Wasm::MemoryHandle::memory const): (JSC::Wasm::Memory::Memory): (JSC::Wasm::Memory::create): (JSC::Wasm::Memory::tryCreate): (JSC::Wasm::Memory::addressIsInGrowableOrFastMemory): (JSC::Wasm::Memory::growShared): (JSC::Wasm::Memory::grow): (JSC::Wasm::Memory::dump const): (JSC::Wasm::Memory::~Memory): Deleted. (JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted. * wasm/WasmMemory.h: (JSC::Wasm::Memory::addressIsInGrowableOrFastMemory): (JSC::Wasm::Memory::operator bool const): Deleted. (JSC::Wasm::Memory::memory const): Deleted. (JSC::Wasm::Memory::size const): Deleted. (JSC::Wasm::Memory::sizeInPages const): Deleted. (JSC::Wasm::Memory::initial const): Deleted. (JSC::Wasm::Memory::maximum const): Deleted. (JSC::Wasm::Memory::mode const): Deleted. (JSC::Wasm::Memory::check): Deleted. (JSC::Wasm::Memory::offsetOfMemory): Deleted. (JSC::Wasm::Memory::offsetOfSize): Deleted. (JSC::Wasm::Memory::addressIsInActiveFastMemory): Deleted. * wasm/WasmMemoryInformation.cpp: (JSC::Wasm::PinnedRegisterInfo::get): (JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo): * wasm/WasmMemoryInformation.h: (JSC::Wasm::PinnedRegisterInfo::toSave const): * wasm/WasmMemoryMode.cpp: (JSC::Wasm::makeString): * wasm/WasmMemoryMode.h: * wasm/js/JSToWasm.cpp: (JSC::Wasm::createJSToWasmWrapper): * wasm/js/JSWebAssemblyInstance.cpp: (JSC::JSWebAssemblyInstance::tryCreate): * wasm/js/JSWebAssemblyMemory.cpp: (JSC::JSWebAssemblyMemory::buffer): (JSC::JSWebAssemblyMemory::growSuccessCallback): * wasm/js/JSWebAssemblyMemory.h: * wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::jsCallEntrypointSlow): * wasm/js/WebAssemblyMemoryConstructor.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): * wasm/js/WebAssemblyMemoryPrototype.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): * wasm/js/WebAssemblyModuleRecord.cpp: (JSC::WebAssemblyModuleRecord::evaluate): Source/WebCore: Tests: js/dom/webassembly-memory-normal-fail.html js/dom/webassembly-memory-shared-basic.html js/dom/webassembly-memory-shared-fail.html storage/indexeddb/shared-memory-structured-clone.html * Headers.cmake: * Modules/indexeddb/server/IDBSerializationContext.cpp: (WebCore::IDBServer::IDBSerializationContext::initializeVM): * WebCore.xcodeproj/project.pbxproj: * bindings/IDLTypes.h: * bindings/js/CommonVM.cpp: (WebCore::commonVMSlow): * bindings/js/JSDOMConvertBufferSource.h: (WebCore::Detail::BufferSourceConverter::convert): (WebCore::Converter<IDLArrayBuffer>::convert): (WebCore::Converter<IDLDataView>::convert): (WebCore::Converter<IDLInt8Array>::convert): (WebCore::Converter<IDLInt16Array>::convert): (WebCore::Converter<IDLInt32Array>::convert): (WebCore::Converter<IDLUint8Array>::convert): (WebCore::Converter<IDLUint16Array>::convert): (WebCore::Converter<IDLUint32Array>::convert): (WebCore::Converter<IDLUint8ClampedArray>::convert): (WebCore::Converter<IDLFloat32Array>::convert): (WebCore::Converter<IDLFloat64Array>::convert): (WebCore::Converter<IDLArrayBufferView>::convert): (WebCore::Converter<IDLAllowSharedAdaptor<T>>::convert): * bindings/js/JSDOMConvertUnion.h: * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::serialize): (WebCore::CloneSerializer::CloneSerializer): (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::deserialize): (WebCore::CloneDeserializer::CloneDeserializer): (WebCore::CloneDeserializer::readTerminal): (WebCore::SerializedScriptValue::SerializedScriptValue): (WebCore::SerializedScriptValue::computeMemoryCost const): (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::deserialize): * bindings/js/SerializedScriptValue.h: * bindings/js/WebCoreJSClientData.cpp: (WebCore::JSVMClientData::initNormalWorld): * bindings/js/WebCoreJSClientData.h: * bindings/js/WebCoreTypedArrayController.cpp: (WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController): (WebCore::WebCoreTypedArrayController::isAtomicsWaitAllowedOnCurrentThread): * bindings/js/WebCoreTypedArrayController.h: * bindings/scripts/CodeGeneratorJS.pm: (IsAnnotatedType): (GetAnnotatedIDLType): * bindings/scripts/IDLAttributes.json: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjDOMConstructor::construct): (WebCore::jsTestObjPrototypeFunction_encodeIntoBody): (WebCore::JSC_DEFINE_HOST_FUNCTION): * bindings/scripts/test/TestObj.idl: * dom/TextDecoder.idl: * dom/TextDecoderStreamDecoder.idl: * dom/TextEncoder.idl: * workers/DedicatedWorkerGlobalScope.cpp: (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope): * workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::WorkerGlobalScope): * workers/WorkerGlobalScope.h: * workers/WorkerOrWorkletGlobalScope.cpp: (WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope): * workers/WorkerOrWorkletGlobalScope.h: * workers/WorkerOrWorkletScriptController.cpp: (WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController): * workers/WorkerOrWorkletScriptController.h: * workers/WorkerThreadType.h: Added. * workers/service/ServiceWorkerGlobalScope.cpp: (WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope): * worklets/WorkletGlobalScope.cpp: (WebCore::WorkletGlobalScope::WorkletGlobalScope): Source/WTF: * wtf/PlatformEnable.h: LayoutTests: * js/dom/resources/webassembly-memory-normal-fail-worker.js: Added. * js/dom/resources/webassembly-memory-shared-worker.js: Added. (onmessage): * js/dom/webassembly-memory-normal-fail-expected.txt: Added. * js/dom/webassembly-memory-normal-fail.html: Added. * js/dom/webassembly-memory-shared-basic-expected.txt: Added. * js/dom/webassembly-memory-shared-basic.html: Added. * js/dom/webassembly-memory-shared-fail-expected.txt: Added. * js/dom/webassembly-memory-shared-fail.html: Added. * platform/win/TestExpectations: * storage/indexeddb/resources/shared-memory-structured-clone.js: Added. (prepareDatabase): (async startTests): (testSharedWebAssemblyMemory): * storage/indexeddb/shared-memory-structured-clone-expected.txt: Added. * storage/indexeddb/shared-memory-structured-clone.html: Added. Canonical link: https://commits.webkit.org/231721@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-11-18 20:22:16 +00:00
TextEncoderEncodeIntoResult encodeInto(USVString source, [AllowShared] Uint8Array destination);
Implement TextDecoder and TextEncoder https://bugs.webkit.org/show_bug.cgi?id=163771 Reviewed by Sam Weinig. LayoutTests/imported/w3c: * web-platform-tests/encoding/api-basics-expected.txt: * web-platform-tests/encoding/api-invalid-label-expected.txt: * web-platform-tests/encoding/api-replacement-encodings-expected.txt: * web-platform-tests/encoding/api-surrogates-utf8-expected.txt: * web-platform-tests/encoding/idlharness-expected.txt: * web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt: * web-platform-tests/encoding/single-byte-decoder-expected.txt: * web-platform-tests/encoding/textdecoder-byte-order-marks-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt: * web-platform-tests/encoding/textdecoder-fatal-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-ignorebom-expected.txt: * web-platform-tests/encoding/textdecoder-labels-expected.txt: * web-platform-tests/encoding/textdecoder-streaming-expected.txt: * web-platform-tests/encoding/textdecoder-utf16-surrogates-expected.txt: * web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: * web-platform-tests/encoding/textencoder-utf16-surrogates-expected.txt: Source/WebCore: This API is already implemented by Chrome and Firefox as specified in https://encoding.spec.whatwg.org/ Covered by newly passing web platform tests. * features.json: * CMakeLists.txt: * DerivedSources.make: * WebCore.xcodeproj/project.pbxproj: * dom/TextDecoder.cpp: Added. (WebCore::isEncodingWhitespace): (WebCore::TextDecoder::create): (WebCore::TextDecoder::TextDecoder): (WebCore::TextDecoder::ignoreBOMIfNecessary): (WebCore::TextDecoder::prependBOMIfNecessary): (WebCore::codeUnitByteSize): (WebCore::TextDecoder::decode): (WebCore::TextDecoder::encoding): * dom/TextDecoder.h: Added. (WebCore::TextDecoder::fatal): (WebCore::TextDecoder::ignoreBOM): * dom/TextDecoder.idl: Added. * dom/TextEncoder.cpp: Added. (WebCore::TextEncoder::TextEncoder): (WebCore::TextEncoder::encoding): (WebCore::TextEncoder::encode): * dom/TextEncoder.h: Added. (WebCore::TextEncoder::create): * dom/TextEncoder.idl: Added. LayoutTests: * fast/encoding/utf-8-non-ascii-expected.txt: Added. * fast/encoding/utf-8-non-ascii.html: Added. * js/dom/global-constructors-attributes-dedicated-worker-expected.txt: * platform/efl/js/dom/global-constructors-attributes-expected.txt: * platform/gtk/js/dom/global-constructors-attributes-expected.txt: * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: * platform/mac/js/dom/global-constructors-attributes-expected.txt: * platform/win/js/dom/global-constructors-attributes-expected.txt: Canonical link: https://commits.webkit.org/182583@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@208872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-11-18 02:11:05 +00:00
};