haikuwebkit/Source/JavaScriptCore/DerivedSources-input.xcfile...

210 lines
10 KiB
Plaintext
Raw Permalink Normal View History

# This file is generated by the generate-xcfilelists script.
$(PROJECT_DIR)/DerivedSources.make
$(PROJECT_DIR)/KeywordLookupGenerator.py
$(PROJECT_DIR)/Scripts/UpdateContents.py
$(PROJECT_DIR)/Scripts/generate-combined-inspector-json.py
$(PROJECT_DIR)/Scripts/generate-js-builtins.py
$(PROJECT_DIR)/Scripts/jsmin.py
$(PROJECT_DIR)/Scripts/lazywriter.py
$(PROJECT_DIR)/Scripts/wkbuiltins/__init__.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_combined_header.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_combined_implementation.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_separate_header.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_separate_implementation.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_wrapper_header.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generate_wrapper_implementation.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_generator.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_model.py
$(PROJECT_DIR)/Scripts/wkbuiltins/builtins_templates.py
$(PROJECT_DIR)/Scripts/wkbuiltins/wkbuiltins.py
$(PROJECT_DIR)/Scripts/xxd.pl
$(PROJECT_DIR)/b3/air/AirOpcode.opcodes
$(PROJECT_DIR)/b3/air/opcode_generator.rb
$(PROJECT_DIR)/builtins/ArrayConstructor.js
$(PROJECT_DIR)/builtins/ArrayIteratorPrototype.js
$(PROJECT_DIR)/builtins/ArrayPrototype.js
$(PROJECT_DIR)/builtins/AsyncFromSyncIteratorPrototype.js
$(PROJECT_DIR)/builtins/AsyncFunctionPrototype.js
$(PROJECT_DIR)/builtins/AsyncGeneratorPrototype.js
$(PROJECT_DIR)/builtins/AsyncIteratorPrototype.js
$(PROJECT_DIR)/builtins/DatePrototype.js
$(PROJECT_DIR)/builtins/FunctionPrototype.js
$(PROJECT_DIR)/builtins/GeneratorPrototype.js
$(PROJECT_DIR)/builtins/GlobalObject.js
$(PROJECT_DIR)/builtins/GlobalOperations.js
$(PROJECT_DIR)/builtins/InternalPromiseConstructor.js
$(PROJECT_DIR)/builtins/IteratorHelpers.js
$(PROJECT_DIR)/builtins/IteratorPrototype.js
$(PROJECT_DIR)/builtins/MapIteratorPrototype.js
$(PROJECT_DIR)/builtins/MapPrototype.js
$(PROJECT_DIR)/builtins/ModuleLoader.js
$(PROJECT_DIR)/builtins/NumberConstructor.js
$(PROJECT_DIR)/builtins/ObjectConstructor.js
$(PROJECT_DIR)/builtins/PromiseConstructor.js
$(PROJECT_DIR)/builtins/PromiseOperations.js
$(PROJECT_DIR)/builtins/PromisePrototype.js
$(PROJECT_DIR)/builtins/ReflectObject.js
$(PROJECT_DIR)/builtins/RegExpPrototype.js
[ESNExt] String.prototype.matchAll https://bugs.webkit.org/show_bug.cgi?id=186694 Patch by Alexey Shvayka <shvaikalesh@gmail.com> on 2019-06-18 Reviewed by Yusuke Suzuki. Implement String.prototype.matchAll. (https://tc39.es/ecma262/#sec-string.prototype.matchall) JSTests: * test262/config.yaml: Source/JavaScriptCore: Also rename @globalPrivate @constructor functions and C++ variables holding them. Shipping in Chrome since version 73. Shipping in Firefox since version 67. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Scripts/wkbuiltins/builtins_generate_combined_header.py: (get_var_name): (generate_section_for_global_private_code_name_macro): * Sources.txt: * builtins/ArrayPrototype.js: (globalPrivate.ArrayIterator): (values): (keys): (entries): (globalPrivate.createArrayIterator): Deleted. * builtins/AsyncFromSyncIteratorPrototype.js: (globalPrivate.createAsyncFromSyncIterator): (globalPrivate.AsyncFromSyncIterator): (globalPrivate.AsyncFromSyncIteratorConstructor): Deleted. * builtins/BuiltinNames.h: * builtins/MapPrototype.js: (globalPrivate.MapIterator): (values): (keys): (entries): (globalPrivate.createMapIterator): Deleted. * builtins/RegExpPrototype.js: (globalPrivate.RegExpStringIterator): (overriddenName.string_appeared_here.matchAll): * builtins/RegExpStringIteratorPrototype.js: Added. (next): * builtins/SetPrototype.js: (globalPrivate.SetIterator): (values): (entries): (globalPrivate.createSetIterator): Deleted. * builtins/StringPrototype.js: (matchAll): * builtins/TypedArrayPrototype.js: (values): (keys): (entries): * runtime/CommonIdentifiers.h: * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): * runtime/RegExpPrototype.cpp: (JSC::RegExpPrototype::finishCreation): * runtime/RegExpStringIteratorPrototype.cpp: Added. (JSC::RegExpStringIteratorPrototype::finishCreation): * runtime/RegExpStringIteratorPrototype.h: Added. * runtime/StringPrototype.cpp: LayoutTests: * js/Object-getOwnPropertyNames-expected.txt: * js/script-tests/Object-getOwnPropertyNames.js: Canonical link: https://commits.webkit.org/212959@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246567 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-06-18 21:21:48 +00:00
$(PROJECT_DIR)/builtins/RegExpStringIteratorPrototype.js
$(PROJECT_DIR)/builtins/SetIteratorPrototype.js
$(PROJECT_DIR)/builtins/SetPrototype.js
$(PROJECT_DIR)/builtins/StringConstructor.js
$(PROJECT_DIR)/builtins/StringIteratorPrototype.js
$(PROJECT_DIR)/builtins/StringPrototype.js
$(PROJECT_DIR)/builtins/TypedArrayConstructor.js
$(PROJECT_DIR)/builtins/TypedArrayPrototype.js
[JSC] Improve wasm wpt test results by fixing miscellaneous issues https://bugs.webkit.org/show_bug.cgi?id=199783 Reviewed by Mark Lam. JSTests: Fix our spec tests. * wasm/js-api/Module-compile.js: * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): * wasm/js-api/validate.js: * wasm/js-api/web-assembly-instantiate.js: * wasm/spec-tests/jsapi.js: (testJSAPI.get test): (testJSAPI.set test): LayoutTests/imported/w3c: Import web-platform-tests/wasm/jsapi. Some of tests are failing just because imported wpt tests are old. They are fixed in the upstream. When upgrading wpt tests, we can mark them PASS. * resources/import-expectations.json: * web-platform-tests/wasm/jsapi/assertions.js: Added. (assert_function_name): (assert_function_length): * web-platform-tests/wasm/jsapi/bad-imports.js: Added. (test_bad_imports): * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.html: Added. * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.js: Added. (test_bad_imports): * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html: Added. * web-platform-tests/wasm/jsapi/constructor/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/global/constructor.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/constructor.any.html: Added. * web-platform-tests/wasm/jsapi/global/constructor.any.js: Added. (assert_Global): (test): (test.get assert_array_equals): (string_appeared_here.test): (string_appeared_here.toString): (string_appeared_here.valueOf): (string_appeared_here.name.format_value): * web-platform-tests/wasm/jsapi/global/constructor.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/constructor.any.worker.html: Added. * web-platform-tests/wasm/jsapi/global/toString.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/toString.any.html: Added. * web-platform-tests/wasm/jsapi/global/toString.any.js: Added. (test): * web-platform-tests/wasm/jsapi/global/toString.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/toString.any.worker.html: Added. * web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/value-set.any.html: Added. * web-platform-tests/wasm/jsapi/global/value-set.any.js: Added. (test): (string_appeared_here.name.of.immutableOptions.test): (string_appeared_here.name.of.mutableOptions.test): * web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/value-set.any.worker.html: Added. * web-platform-tests/wasm/jsapi/global/valueOf.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/valueOf.any.html: Added. * web-platform-tests/wasm/jsapi/global/valueOf.any.js: Added. (test): * web-platform-tests/wasm/jsapi/global/valueOf.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/global/valueOf.any.worker.html: Added. * web-platform-tests/wasm/jsapi/global/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.html: Added. * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.js: Added. (test_bad_imports): * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker.html: Added. * web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/constructor.any.html: Added. * web-platform-tests/wasm/jsapi/instance/constructor.any.js: Added. (assert_exported_function): * web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/constructor.any.worker.html: Added. * web-platform-tests/wasm/jsapi/instance/exports.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/exports.any.html: Added. * web-platform-tests/wasm/jsapi/instance/exports.any.js: Added. (setup): (test): * web-platform-tests/wasm/jsapi/instance/exports.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/exports.any.worker.html: Added. * web-platform-tests/wasm/jsapi/instance/toString.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/toString.any.html: Added. * web-platform-tests/wasm/jsapi/instance/toString.any.js: Added. (test): * web-platform-tests/wasm/jsapi/instance/toString.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/instance/toString.any.worker.html: Added. * web-platform-tests/wasm/jsapi/instance/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/interface.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/interface.any.html: Added. * web-platform-tests/wasm/jsapi/interface.any.js: Added. (test_operations): (test): (const.name.of.interfaces.test): * web-platform-tests/wasm/jsapi/interface.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/interface.any.worker.html: Added. * web-platform-tests/wasm/jsapi/memory/buffer.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/buffer.any.html: Added. * web-platform-tests/wasm/jsapi/memory/buffer.any.js: Added. (test): * web-platform-tests/wasm/jsapi/memory/buffer.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/buffer.any.worker.html: Added. * web-platform-tests/wasm/jsapi/memory/constructor.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/constructor.any.html: Added. * web-platform-tests/wasm/jsapi/memory/constructor.any.js: Added. (assert_Memory): (test): (const.value.of.outOfRangeValues.test): (test.get new): (test.get assert_array_equals): * web-platform-tests/wasm/jsapi/memory/constructor.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/constructor.any.worker.html: Added. * web-platform-tests/wasm/jsapi/memory/grow.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/grow.any.html: Added. * web-platform-tests/wasm/jsapi/memory/grow.any.js: Added. (assert_ArrayBuffer): (test): (valueOf): (const.value.of.outOfRangeValues.test): * web-platform-tests/wasm/jsapi/memory/grow.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/grow.any.worker.html: Added. * web-platform-tests/wasm/jsapi/memory/toString.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/toString.any.html: Added. * web-platform-tests/wasm/jsapi/memory/toString.any.js: Added. (test): * web-platform-tests/wasm/jsapi/memory/toString.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/memory/toString.any.worker.html: Added. * web-platform-tests/wasm/jsapi/memory/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/module/constructor.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/constructor.any.html: Added. * web-platform-tests/wasm/jsapi/module/constructor.any.js: Added. (setup): (test): * web-platform-tests/wasm/jsapi/module/constructor.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/constructor.any.worker.html: Added. * web-platform-tests/wasm/jsapi/module/customSections.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/customSections.any.html: Added. * web-platform-tests/wasm/jsapi/module/customSections.any.js: Added. (assert_ArrayBuffer): (assert_sections): (setup): (test): * web-platform-tests/wasm/jsapi/module/customSections.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/customSections.any.worker.html: Added. * web-platform-tests/wasm/jsapi/module/exports.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/exports.any.html: Added. * web-platform-tests/wasm/jsapi/module/exports.any.js: Added. (setup): (assert_ModuleExportDescriptor): (assert_exports): (test): * web-platform-tests/wasm/jsapi/module/exports.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/exports.any.worker.html: Added. * web-platform-tests/wasm/jsapi/module/imports.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/imports.any.html: Added. * web-platform-tests/wasm/jsapi/module/imports.any.js: Added. (assert_ModuleImportDescriptor): (assert_imports): (setup): (test): * web-platform-tests/wasm/jsapi/module/imports.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/imports.any.worker.html: Added. * web-platform-tests/wasm/jsapi/module/toString.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/toString.any.html: Added. * web-platform-tests/wasm/jsapi/module/toString.any.js: Added. (test): * web-platform-tests/wasm/jsapi/module/toString.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/module/toString.any.worker.html: Added. * web-platform-tests/wasm/jsapi/module/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/table/assertions.js: Added. (assert_equal_to_array): * web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/constructor.any.html: Added. * web-platform-tests/wasm/jsapi/table/constructor.any.js: Added. (assert_Table): (test): (const.value.of.outOfRangeValues.test): (test.get const): * web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/constructor.any.worker.html: Added. * web-platform-tests/wasm/jsapi/table/get-set.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/get-set.any.html: Added. * web-platform-tests/wasm/jsapi/table/get-set.any.js: Added. (setup): (test): (test.set assert_equal_to_array): (test.const.fn): (valueOf): (const.value.of.outOfRangeValues.test): * web-platform-tests/wasm/jsapi/table/get-set.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/get-set.any.worker.html: Added. * web-platform-tests/wasm/jsapi/table/grow.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/grow.any.html: Added. * web-platform-tests/wasm/jsapi/table/grow.any.js: Added. (nulls): (test): (valueOf): (const.value.of.outOfRangeValues.test): * web-platform-tests/wasm/jsapi/table/grow.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/grow.any.worker.html: Added. * web-platform-tests/wasm/jsapi/table/length.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/length.any.html: Added. * web-platform-tests/wasm/jsapi/table/length.any.js: Added. (test): * web-platform-tests/wasm/jsapi/table/length.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/length.any.worker.html: Added. * web-platform-tests/wasm/jsapi/table/toString.any-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/toString.any.html: Added. * web-platform-tests/wasm/jsapi/table/toString.any.js: Added. (test): * web-platform-tests/wasm/jsapi/table/toString.any.worker-expected.txt: Added. * web-platform-tests/wasm/jsapi/table/toString.any.worker.html: Added. * web-platform-tests/wasm/jsapi/table/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/w3c-import.log: Added. * web-platform-tests/wasm/jsapi/wasm-constants.js: Added. (bytes): (bytesWithHeader): (makeSig): (makeSig_v_x): (makeSig_v_xx): (makeSig_r_v): (makeSig_r_x): (makeSig_r_xx): (assertTraps): (assertWasmThrows): * web-platform-tests/wasm/jsapi/wasm-module-builder.js: Added. (Binary.prototype.emit_u8): (Binary.prototype.emit_u16): (Binary.prototype.emit_u32): (Binary.prototype.emit_u32v): (Binary.prototype.emit_bytes): (Binary.prototype.emit_string): (Binary.prototype.emit_header): (Binary.prototype.emit_section): (Binary): (WasmFunctionBuilder): (WasmFunctionBuilder.prototype.exportAs): (WasmFunctionBuilder.prototype.exportFunc): (WasmFunctionBuilder.prototype.addBody): (WasmFunctionBuilder.prototype.addLocals): (WasmFunctionBuilder.prototype.end): (WasmGlobalBuilder): (WasmGlobalBuilder.prototype.exportAs): (WasmModuleBuilder): (WasmModuleBuilder.prototype.addStart): (WasmModuleBuilder.prototype.addMemory): (WasmModuleBuilder.prototype.addExplicitSection): (WasmModuleBuilder.prototype.addType): (WasmModuleBuilder.prototype.addGlobal): (WasmModuleBuilder.prototype.addFunction): (WasmModuleBuilder.prototype.addImport): (WasmModuleBuilder.prototype.addImportedGlobal): (WasmModuleBuilder.prototype.addImportedMemory): (WasmModuleBuilder.prototype.addImportedTable): (WasmModuleBuilder.prototype.addExport): (WasmModuleBuilder.prototype.addExportOfKind): (WasmModuleBuilder.prototype.addDataSegment): (WasmModuleBuilder.prototype.exportMemoryAs): (WasmModuleBuilder.prototype.addFunctionTableInit): (WasmModuleBuilder.prototype.appendToTable): (WasmModuleBuilder.prototype.setFunctionTableLength): (WasmModuleBuilder.prototype.toArray): (WasmModuleBuilder.prototype.toBuffer): (WasmModuleBuilder.prototype.instantiate): Source/JavaScriptCore: This patch fixes miscellaneous issues in our Wasm JS API implementation to improve WPT score. I picked trivial ones in this patch to make this easily reviewable. 1. Remove WebAssemblyPrototype. It does not exist in the spec. Merging WebAssemblyPrototype into JSWebAssembly. 2. Fix various attributes. It does not match to the usual JSC builtin's convention. But this change is correct because they are changed to be matched against WebIDL definition, and WebAssembly implementation follows WebIDL. In the future, we could move WebCore WebIDL things into WTF layer and even use (or leverage some of utility functions) in our WebAssembly JS API implementation. 3. Fix how we interpret "present" in WebAssembly spec. This does not mean [[HasProperty]] result. It follows to WebIDL spec, and it means that [[Get]] result is not undefined. 4. Add argument count check to Module.customSections, which is required because the method is defined in WebIDL. 5. Fix toNonWrappingUint32 to match it to WebIDL's conversion rule. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * builtins/WebAssembly.js: Renamed from Source/JavaScriptCore/builtins/WebAssemblyPrototype.js. * jit/Repatch.cpp: * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): * runtime/JSModuleLoader.cpp: (JSC::moduleLoaderParseModule): * wasm/js/JSWebAssembly.cpp: (JSC::JSWebAssembly::create): (JSC::JSWebAssembly::finishCreation): (JSC::reject): (JSC::webAssemblyModuleValidateAsyncInternal): (JSC::webAssemblyCompileFunc): (JSC::resolve): (JSC::JSWebAssembly::webAssemblyModuleValidateAsync): (JSC::instantiate): (JSC::compileAndInstantiate): (JSC::JSWebAssembly::instantiate): (JSC::webAssemblyModuleInstantinateAsyncInternal): (JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync): (JSC::webAssemblyInstantiateFunc): (JSC::webAssemblyValidateFunc): (JSC::webAssemblyCompileStreamingInternal): (JSC::webAssemblyInstantiateStreamingInternal): * wasm/js/JSWebAssembly.h: * wasm/js/JSWebAssemblyHelpers.h: (JSC::toNonWrappingUint32): * wasm/js/WebAssemblyCompileErrorConstructor.cpp: (JSC::WebAssemblyCompileErrorConstructor::finishCreation): * wasm/js/WebAssemblyInstanceConstructor.cpp: (JSC::WebAssemblyInstanceConstructor::finishCreation): * wasm/js/WebAssemblyInstancePrototype.cpp: * wasm/js/WebAssemblyLinkErrorConstructor.cpp: (JSC::WebAssemblyLinkErrorConstructor::finishCreation): * wasm/js/WebAssemblyMemoryConstructor.cpp: (JSC::constructJSWebAssemblyMemory): (JSC::WebAssemblyMemoryConstructor::finishCreation): * wasm/js/WebAssemblyMemoryPrototype.cpp: * wasm/js/WebAssemblyModuleConstructor.cpp: (JSC::webAssemblyModuleCustomSections): (JSC::WebAssemblyModuleConstructor::finishCreation): * wasm/js/WebAssemblyPrototype.cpp: Removed. * wasm/js/WebAssemblyPrototype.h: Removed. * wasm/js/WebAssemblyRuntimeErrorConstructor.cpp: (JSC::WebAssemblyRuntimeErrorConstructor::finishCreation): * wasm/js/WebAssemblyTableConstructor.cpp: (JSC::constructJSWebAssemblyTable): (JSC::WebAssemblyTableConstructor::finishCreation): * wasm/js/WebAssemblyTablePrototype.cpp: Source/WebCore: Remove WebAssemblyPrototype. Tests: imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.html imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/global/constructor.any.html imported/w3c/web-platform-tests/wasm/jsapi/global/constructor.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/global/toString.any.html imported/w3c/web-platform-tests/wasm/jsapi/global/toString.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.html imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/global/valueOf.any.html imported/w3c/web-platform-tests/wasm/jsapi/global/valueOf.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.html imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor.any.html imported/w3c/web-platform-tests/wasm/jsapi/instance/constructor.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/instance/exports.any.html imported/w3c/web-platform-tests/wasm/jsapi/instance/exports.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.html imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/interface.any.html imported/w3c/web-platform-tests/wasm/jsapi/interface.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/memory/buffer.any.html imported/w3c/web-platform-tests/wasm/jsapi/memory/buffer.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/memory/constructor.any.html imported/w3c/web-platform-tests/wasm/jsapi/memory/constructor.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/memory/grow.any.html imported/w3c/web-platform-tests/wasm/jsapi/memory/grow.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.html imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/module/constructor.any.html imported/w3c/web-platform-tests/wasm/jsapi/module/constructor.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/module/customSections.any.html imported/w3c/web-platform-tests/wasm/jsapi/module/customSections.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/module/exports.any.html imported/w3c/web-platform-tests/wasm/jsapi/module/exports.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/module/imports.any.html imported/w3c/web-platform-tests/wasm/jsapi/module/imports.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.html imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/table/constructor.any.html imported/w3c/web-platform-tests/wasm/jsapi/table/constructor.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/table/get-set.any.html imported/w3c/web-platform-tests/wasm/jsapi/table/get-set.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/table/grow.any.html imported/w3c/web-platform-tests/wasm/jsapi/table/grow.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/table/length.any.html imported/w3c/web-platform-tests/wasm/jsapi/table/length.any.worker.html imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.html imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.worker.html * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::compileStreaming): (WebCore::JSDOMWindowBase::instantiateStreaming): LayoutTests: * platform/ios-simulator/TestExpectations: * platform/win/TestExpectations: Canonical link: https://commits.webkit.org/213683@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-15 22:41:54 +00:00
$(PROJECT_DIR)/builtins/WebAssembly.js
$(PROJECT_DIR)/bytecode/BytecodeList.rb
$(PROJECT_DIR)/create_hash_table
$(PROJECT_DIR)/disassembler/udis86/optable.xml
$(PROJECT_DIR)/disassembler/udis86/ud_itab.py
$(PROJECT_DIR)/generator/Argument.rb
$(PROJECT_DIR)/generator/Assertion.rb
Reland bytecode checkpoints since bugs have been fixed https://bugs.webkit.org/show_bug.cgi?id=206361 Unreviewed, reland. The watch bugs have been fixed by https://trac.webkit.org/changeset/254674 JSTests: * stress/apply-osr-exit-should-get-length-once-exceptions-occasionally.js: Added. (expectedArgCount): (callee): (test): (let.array.get length): * stress/apply-osr-exit-should-get-length-once.js: Added. (expectedArgCount): (callee): (test): (let.array.get length): * stress/load-varargs-then-inlined-call-and-exit-strict.js: (checkEqual): * stress/recursive-tail-call-with-different-argument-count.js: * stress/rest-varargs-osr-exit-to-checkpoint.js: Added. (foo): (bar): Source/JavaScriptCore: * CMakeLists.txt: * DerivedSources-input.xcfilelist: * JavaScriptCore.xcodeproj/project.pbxproj: * assembler/MacroAssemblerCodeRef.h: * assembler/ProbeFrame.h: (JSC::Probe::Frame::operand): (JSC::Probe::Frame::setOperand): * b3/testb3.h: (populateWithInterestingValues): (floatingPointOperands): * bytecode/AccessCase.cpp: (JSC::AccessCase::generateImpl): * bytecode/AccessCaseSnippetParams.cpp: (JSC::SlowPathCallGeneratorWithArguments::generateImpl): * bytecode/BytecodeDumper.cpp: (JSC::BytecodeDumperBase::dumpValue): (JSC::BytecodeDumper<Block>::registerName const): (JSC::BytecodeDumper<Block>::constantName const): (JSC::Wasm::BytecodeDumper::constantName const): * bytecode/BytecodeDumper.h: * bytecode/BytecodeIndex.cpp: (JSC::BytecodeIndex::dump const): * bytecode/BytecodeIndex.h: (JSC::BytecodeIndex::BytecodeIndex): (JSC::BytecodeIndex::offset const): (JSC::BytecodeIndex::checkpoint const): (JSC::BytecodeIndex::asBits const): (JSC::BytecodeIndex::hash const): (JSC::BytecodeIndex::operator bool const): (JSC::BytecodeIndex::pack): (JSC::BytecodeIndex::fromBits): * bytecode/BytecodeList.rb: * bytecode/BytecodeLivenessAnalysis.cpp: (JSC::enumValuesEqualAsIntegral): (JSC::tmpLivenessForCheckpoint): * bytecode/BytecodeLivenessAnalysis.h: * bytecode/BytecodeLivenessAnalysisInlines.h: (JSC::virtualRegisterIsAlwaysLive): (JSC::virtualRegisterThatIsNotAlwaysLiveIsLive): (JSC::virtualRegisterIsLive): (JSC::operandIsAlwaysLive): Deleted. (JSC::operandThatIsNotAlwaysLiveIsLive): Deleted. (JSC::operandIsLive): Deleted. * bytecode/CodeBlock.cpp: (JSC::CodeBlock::finishCreation): (JSC::CodeBlock::bytecodeIndexForExit const): (JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow): (JSC::CodeBlock::updateAllValueProfilePredictionsAndCountLiveness): * bytecode/CodeBlock.h: (JSC::CodeBlock::numTmps const): (JSC::CodeBlock::isKnownNotImmediate): (JSC::CodeBlock::isTemporaryRegister): (JSC::CodeBlock::constantRegister): (JSC::CodeBlock::getConstant const): (JSC::CodeBlock::constantSourceCodeRepresentation const): (JSC::CodeBlock::replaceConstant): (JSC::CodeBlock::isTemporaryRegisterIndex): Deleted. (JSC::CodeBlock::isConstantRegisterIndex): Deleted. * bytecode/CodeOrigin.h: * bytecode/FullBytecodeLiveness.h: (JSC::FullBytecodeLiveness::virtualRegisterIsLive const): (JSC::FullBytecodeLiveness::operandIsLive const): Deleted. * bytecode/InlineCallFrame.h: (JSC::InlineCallFrame::InlineCallFrame): (JSC::InlineCallFrame::setTmpOffset): (JSC::CodeOrigin::walkUpInlineStack const): (JSC::CodeOrigin::inlineStackContainsActiveCheckpoint const): (JSC::remapOperand): (JSC::unmapOperand): (JSC::CodeOrigin::walkUpInlineStack): Deleted. * bytecode/LazyOperandValueProfile.h: (JSC::LazyOperandValueProfileKey::LazyOperandValueProfileKey): (JSC::LazyOperandValueProfileKey::hash const): (JSC::LazyOperandValueProfileKey::operand const): * bytecode/MethodOfGettingAValueProfile.cpp: (JSC::MethodOfGettingAValueProfile::fromLazyOperand): (JSC::MethodOfGettingAValueProfile::emitReportValue const): (JSC::MethodOfGettingAValueProfile::reportValue): * bytecode/MethodOfGettingAValueProfile.h: * bytecode/Operands.h: (JSC::Operand::Operand): (JSC::Operand::tmp): (JSC::Operand::kind const): (JSC::Operand::value const): (JSC::Operand::virtualRegister const): (JSC::Operand::asBits const): (JSC::Operand::isTmp const): (JSC::Operand::isArgument const): (JSC::Operand::isLocal const): (JSC::Operand::isHeader const): (JSC::Operand::isConstant const): (JSC::Operand::toArgument const): (JSC::Operand::toLocal const): (JSC::Operand::operator== const): (JSC::Operand::isValid const): (JSC::Operand::fromBits): (JSC::Operands::Operands): (JSC::Operands::numberOfLocals const): (JSC::Operands::numberOfTmps const): (JSC::Operands::tmpIndex const): (JSC::Operands::argumentIndex const): (JSC::Operands::localIndex const): (JSC::Operands::tmp): (JSC::Operands::tmp const): (JSC::Operands::argument): (JSC::Operands::argument const): (JSC::Operands::local): (JSC::Operands::local const): (JSC::Operands::sizeFor const): (JSC::Operands::atFor): (JSC::Operands::atFor const): (JSC::Operands::ensureLocals): (JSC::Operands::ensureTmps): (JSC::Operands::getForOperandIndex): (JSC::Operands::getForOperandIndex const): (JSC::Operands::operandIndex const): (JSC::Operands::operand): (JSC::Operands::operand const): (JSC::Operands::hasOperand const): (JSC::Operands::setOperand): (JSC::Operands::at const): (JSC::Operands::at): (JSC::Operands::operator[] const): (JSC::Operands::operator[]): (JSC::Operands::operandForIndex const): (JSC::Operands::operator== const): (JSC::Operands::isArgument const): Deleted. (JSC::Operands::isLocal const): Deleted. (JSC::Operands::virtualRegisterForIndex const): Deleted. (JSC::Operands::setOperandFirstTime): Deleted. * bytecode/OperandsInlines.h: (JSC::Operand::dump const): (JSC::Operands<T>::dumpInContext const): (JSC::Operands<T>::dump const): * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): * bytecode/UnlinkedCodeBlock.h: (JSC::UnlinkedCodeBlock::hasCheckpoints const): (JSC::UnlinkedCodeBlock::setHasCheckpoints): (JSC::UnlinkedCodeBlock::constantRegister const): (JSC::UnlinkedCodeBlock::getConstant const): (JSC::UnlinkedCodeBlock::isConstantRegisterIndex const): Deleted. * bytecode/ValueProfile.h: (JSC::ValueProfileAndVirtualRegisterBuffer::ValueProfileAndVirtualRegisterBuffer): (JSC::ValueProfileAndVirtualRegisterBuffer::~ValueProfileAndVirtualRegisterBuffer): (JSC::ValueProfileAndOperandBuffer::ValueProfileAndOperandBuffer): Deleted. (JSC::ValueProfileAndOperandBuffer::~ValueProfileAndOperandBuffer): Deleted. (JSC::ValueProfileAndOperandBuffer::forEach): Deleted. * bytecode/ValueRecovery.cpp: (JSC::ValueRecovery::recover const): * bytecode/ValueRecovery.h: * bytecode/VirtualRegister.h: (JSC::virtualRegisterIsLocal): (JSC::virtualRegisterIsArgument): (JSC::VirtualRegister::VirtualRegister): (JSC::VirtualRegister::isValid const): (JSC::VirtualRegister::isLocal const): (JSC::VirtualRegister::isArgument const): (JSC::VirtualRegister::isConstant const): (JSC::VirtualRegister::toConstantIndex const): (JSC::operandIsLocal): Deleted. (JSC::operandIsArgument): Deleted. * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::initializeNextParameter): (JSC::BytecodeGenerator::initializeParameters): (JSC::BytecodeGenerator::emitEqualityOpImpl): (JSC::BytecodeGenerator::emitCallVarargs): * bytecompiler/BytecodeGenerator.h: (JSC::BytecodeGenerator::setUsesCheckpoints): * bytecompiler/RegisterID.h: (JSC::RegisterID::setIndex): * dfg/DFGAbstractHeap.cpp: (JSC::DFG::AbstractHeap::Payload::dumpAsOperand const): (JSC::DFG::AbstractHeap::dump const): * dfg/DFGAbstractHeap.h: (JSC::DFG::AbstractHeap::Payload::Payload): (JSC::DFG::AbstractHeap::AbstractHeap): (JSC::DFG::AbstractHeap::operand const): * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): * dfg/DFGArgumentPosition.h: (JSC::DFG::ArgumentPosition::dump): * dfg/DFGArgumentsEliminationPhase.cpp: * dfg/DFGArgumentsUtilities.cpp: (JSC::DFG::argumentsInvolveStackSlot): (JSC::DFG::emitCodeToGetArgumentsArrayLength): * dfg/DFGArgumentsUtilities.h: * dfg/DFGAtTailAbstractState.h: (JSC::DFG::AtTailAbstractState::operand): * dfg/DFGAvailabilityMap.cpp: (JSC::DFG::AvailabilityMap::pruneByLiveness): * dfg/DFGAvailabilityMap.h: (JSC::DFG::AvailabilityMap::closeStartingWithLocal): * dfg/DFGBasicBlock.cpp: (JSC::DFG::BasicBlock::BasicBlock): (JSC::DFG::BasicBlock::ensureTmps): * dfg/DFGBasicBlock.h: * dfg/DFGBlockInsertionSet.cpp: (JSC::DFG::BlockInsertionSet::insert): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::ByteCodeParser): (JSC::DFG::ByteCodeParser::ensureTmps): (JSC::DFG::ByteCodeParser::progressToNextCheckpoint): (JSC::DFG::ByteCodeParser::newVariableAccessData): (JSC::DFG::ByteCodeParser::getDirect): (JSC::DFG::ByteCodeParser::get): (JSC::DFG::ByteCodeParser::setDirect): (JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation): (JSC::DFG::ByteCodeParser::getLocalOrTmp): (JSC::DFG::ByteCodeParser::setLocalOrTmp): (JSC::DFG::ByteCodeParser::setArgument): (JSC::DFG::ByteCodeParser::findArgumentPositionForLocal): (JSC::DFG::ByteCodeParser::findArgumentPosition): (JSC::DFG::ByteCodeParser::flushImpl): (JSC::DFG::ByteCodeParser::flushForTerminalImpl): (JSC::DFG::ByteCodeParser::flush): (JSC::DFG::ByteCodeParser::flushDirect): (JSC::DFG::ByteCodeParser::addFlushOrPhantomLocal): (JSC::DFG::ByteCodeParser::phantomLocalDirect): (JSC::DFG::ByteCodeParser::flushForTerminal): (JSC::DFG::ByteCodeParser::addToGraph): (JSC::DFG::ByteCodeParser::InlineStackEntry::remapOperand const): (JSC::DFG::ByteCodeParser::DelayedSetLocal::DelayedSetLocal): (JSC::DFG::ByteCodeParser::DelayedSetLocal::execute): (JSC::DFG::ByteCodeParser::allocateTargetableBlock): (JSC::DFG::ByteCodeParser::allocateUntargetableBlock): (JSC::DFG::ByteCodeParser::handleRecursiveTailCall): (JSC::DFG::ByteCodeParser::inlineCall): (JSC::DFG::ByteCodeParser::handleVarargsInlining): (JSC::DFG::ByteCodeParser::handleInlining): (JSC::DFG::ByteCodeParser::parseBlock): (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry): (JSC::DFG::ByteCodeParser::parse): (JSC::DFG::ByteCodeParser::getLocal): Deleted. (JSC::DFG::ByteCodeParser::setLocal): Deleted. * dfg/DFGCFAPhase.cpp: (JSC::DFG::CFAPhase::injectOSR): * dfg/DFGCPSRethreadingPhase.cpp: (JSC::DFG::CPSRethreadingPhase::run): (JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocal): (JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor): (JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocal): (JSC::DFG::CPSRethreadingPhase::canonicalizeSet): (JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock): (JSC::DFG::CPSRethreadingPhase::propagatePhis): (JSC::DFG::CPSRethreadingPhase::phiStackFor): * dfg/DFGCSEPhase.cpp: * dfg/DFGCapabilities.cpp: (JSC::DFG::capabilityLevel): * dfg/DFGClobberize.h: (JSC::DFG::clobberize): * dfg/DFGCombinedLiveness.cpp: (JSC::DFG::addBytecodeLiveness): * dfg/DFGCommonData.cpp: (JSC::DFG::CommonData::addCodeOrigin): (JSC::DFG::CommonData::addUniqueCallSiteIndex): (JSC::DFG::CommonData::lastCallSite const): * dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): * dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC): * dfg/DFGDriver.cpp: (JSC::DFG::compileImpl): * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): * dfg/DFGForAllKills.h: (JSC::DFG::forAllKilledOperands): (JSC::DFG::forAllKilledNodesAtNodeIndex): (JSC::DFG::forAllKillsInBlock): * dfg/DFGGraph.cpp: (JSC::DFG::Graph::dump): (JSC::DFG::Graph::dumpBlockHeader): (JSC::DFG::Graph::substituteGetLocal): (JSC::DFG::Graph::isLiveInBytecode): (JSC::DFG::Graph::localsAndTmpsLiveInBytecode): (JSC::DFG::Graph::methodOfGettingAValueProfileFor): (JSC::DFG::Graph::localsLiveInBytecode): Deleted. * dfg/DFGGraph.h: (JSC::DFG::Graph::forAllLocalsAndTmpsLiveInBytecode): (JSC::DFG::Graph::forAllLiveInBytecode): (JSC::DFG::Graph::forAllLocalsLiveInBytecode): Deleted. * dfg/DFGInPlaceAbstractState.cpp: (JSC::DFG::InPlaceAbstractState::InPlaceAbstractState): * dfg/DFGInPlaceAbstractState.h: (JSC::DFG::InPlaceAbstractState::operand): * dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::linkOSRExits): (JSC::DFG::JITCompiler::noticeOSREntry): * dfg/DFGJITCompiler.h: (JSC::DFG::JITCompiler::emitStoreCallSiteIndex): * dfg/DFGLiveCatchVariablePreservationPhase.cpp: (JSC::DFG::LiveCatchVariablePreservationPhase::isValidFlushLocation): (JSC::DFG::LiveCatchVariablePreservationPhase::handleBlockForTryCatch): (JSC::DFG::LiveCatchVariablePreservationPhase::newVariableAccessData): * dfg/DFGMovHintRemovalPhase.cpp: * dfg/DFGNode.h: (JSC::DFG::StackAccessData::StackAccessData): (JSC::DFG::Node::hasArgumentsChild): (JSC::DFG::Node::argumentsChild): (JSC::DFG::Node::operand): (JSC::DFG::Node::hasUnlinkedOperand): (JSC::DFG::Node::unlinkedOperand): (JSC::DFG::Node::hasLoadVarargsData): (JSC::DFG::Node::local): Deleted. (JSC::DFG::Node::hasUnlinkedLocal): Deleted. (JSC::DFG::Node::unlinkedLocal): Deleted. * dfg/DFGNodeType.h: * dfg/DFGOSRAvailabilityAnalysisPhase.cpp: (JSC::DFG::OSRAvailabilityAnalysisPhase::run): (JSC::DFG::LocalOSRAvailabilityCalculator::executeNode): * dfg/DFGOSREntry.cpp: (JSC::DFG::prepareOSREntry): (JSC::DFG::prepareCatchOSREntry): * dfg/DFGOSREntrypointCreationPhase.cpp: (JSC::DFG::OSREntrypointCreationPhase::run): * dfg/DFGOSRExit.cpp: (JSC::DFG::OSRExit::emitRestoreArguments): (JSC::DFG::OSRExit::compileExit): (JSC::DFG::jsValueFor): Deleted. (JSC::DFG::restoreCalleeSavesFor): Deleted. (JSC::DFG::saveCalleeSavesFor): Deleted. (JSC::DFG::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer): Deleted. (JSC::DFG::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer): Deleted. (JSC::DFG::saveOrCopyCalleeSavesFor): Deleted. (JSC::DFG::createDirectArgumentsDuringExit): Deleted. (JSC::DFG::createClonedArgumentsDuringExit): Deleted. (JSC::DFG::emitRestoreArguments): Deleted. (JSC::DFG::OSRExit::executeOSRExit): Deleted. (JSC::DFG::reifyInlinedCallFrames): Deleted. (JSC::DFG::adjustAndJumpToTarget): Deleted. (JSC::DFG::printOSRExit): Deleted. * dfg/DFGOSRExit.h: * dfg/DFGOSRExitBase.h: (JSC::DFG::OSRExitBase::isExitingToCheckpointHandler const): * dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::callerReturnPC): (JSC::DFG::reifyInlinedCallFrames): (JSC::DFG::adjustAndJumpToTarget): * dfg/DFGObjectAllocationSinkingPhase.cpp: * dfg/DFGOpInfo.h: (JSC::DFG::OpInfo::OpInfo): * dfg/DFGOperations.cpp: * dfg/DFGPhantomInsertionPhase.cpp: * dfg/DFGPreciseLocalClobberize.h: (JSC::DFG::PreciseLocalClobberizeAdaptor::read): (JSC::DFG::PreciseLocalClobberizeAdaptor::write): (JSC::DFG::PreciseLocalClobberizeAdaptor::def): (JSC::DFG::PreciseLocalClobberizeAdaptor::callIfAppropriate): * dfg/DFGPredictionInjectionPhase.cpp: (JSC::DFG::PredictionInjectionPhase::run): * dfg/DFGPredictionPropagationPhase.cpp: * dfg/DFGPutStackSinkingPhase.cpp: * dfg/DFGSSAConversionPhase.cpp: (JSC::DFG::SSAConversionPhase::run): * dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileMovHint): (JSC::DFG::SpeculativeJIT::compileCurrentBlock): (JSC::DFG::SpeculativeJIT::checkArgumentTypes): (JSC::DFG::SpeculativeJIT::compileVarargsLength): (JSC::DFG::SpeculativeJIT::compileLoadVarargs): (JSC::DFG::SpeculativeJIT::compileForwardVarargs): (JSC::DFG::SpeculativeJIT::compileCreateDirectArguments): (JSC::DFG::SpeculativeJIT::compileGetArgumentCountIncludingThis): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::recordSetLocal): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGStackLayoutPhase.cpp: (JSC::DFG::StackLayoutPhase::run): (JSC::DFG::StackLayoutPhase::assign): * dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode): * dfg/DFGThunks.cpp: (JSC::DFG::osrExitThunkGenerator): Deleted. * dfg/DFGThunks.h: * dfg/DFGTypeCheckHoistingPhase.cpp: (JSC::DFG::TypeCheckHoistingPhase::run): (JSC::DFG::TypeCheckHoistingPhase::disableHoistingAcrossOSREntries): * dfg/DFGValidate.cpp: * dfg/DFGVarargsForwardingPhase.cpp: * dfg/DFGVariableAccessData.cpp: (JSC::DFG::VariableAccessData::VariableAccessData): (JSC::DFG::VariableAccessData::shouldUseDoubleFormatAccordingToVote): (JSC::DFG::VariableAccessData::tallyVotesForShouldUseDoubleFormat): (JSC::DFG::VariableAccessData::couldRepresentInt52Impl): * dfg/DFGVariableAccessData.h: (JSC::DFG::VariableAccessData::operand): (JSC::DFG::VariableAccessData::local): Deleted. * dfg/DFGVariableEvent.cpp: (JSC::DFG::VariableEvent::dump const): * dfg/DFGVariableEvent.h: (JSC::DFG::VariableEvent::spill): (JSC::DFG::VariableEvent::setLocal): (JSC::DFG::VariableEvent::movHint): (JSC::DFG::VariableEvent::spillRegister const): (JSC::DFG::VariableEvent::operand const): (JSC::DFG::VariableEvent::bytecodeRegister const): Deleted. * dfg/DFGVariableEventStream.cpp: (JSC::DFG::VariableEventStream::logEvent): (JSC::DFG::VariableEventStream::reconstruct const): * dfg/DFGVariableEventStream.h: (JSC::DFG::VariableEventStream::appendAndLog): * ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile): * ftl/FTLForOSREntryJITCode.cpp: (JSC::FTL::ForOSREntryJITCode::ForOSREntryJITCode): * ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower): (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::compileExtractOSREntryLocal): (JSC::FTL::DFG::LowerDFGToB3::compileGetStack): (JSC::FTL::DFG::LowerDFGToB3::compileGetCallee): (JSC::FTL::DFG::LowerDFGToB3::compileSetCallee): (JSC::FTL::DFG::LowerDFGToB3::compileSetArgumentCountIncludingThis): (JSC::FTL::DFG::LowerDFGToB3::compileVarargsLength): (JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs): (JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs): (JSC::FTL::DFG::LowerDFGToB3::getSpreadLengthFromInlineCallFrame): (JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargsWithSpread): (JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue): (JSC::FTL::DFG::LowerDFGToB3::getArgumentsLength): (JSC::FTL::DFG::LowerDFGToB3::getCurrentCallee): (JSC::FTL::DFG::LowerDFGToB3::callPreflight): (JSC::FTL::DFG::LowerDFGToB3::appendOSRExitDescriptor): (JSC::FTL::DFG::LowerDFGToB3::buildExitArguments): (JSC::FTL::DFG::LowerDFGToB3::addressFor): (JSC::FTL::DFG::LowerDFGToB3::payloadFor): (JSC::FTL::DFG::LowerDFGToB3::tagFor): * ftl/FTLOSREntry.cpp: (JSC::FTL::prepareOSREntry): * ftl/FTLOSRExit.cpp: (JSC::FTL::OSRExitDescriptor::OSRExitDescriptor): * ftl/FTLOSRExit.h: * ftl/FTLOSRExitCompiler.cpp: (JSC::FTL::compileStub): * ftl/FTLOperations.cpp: (JSC::FTL::operationMaterializeObjectInOSR): * ftl/FTLOutput.cpp: (JSC::FTL::Output::select): * ftl/FTLOutput.h: * ftl/FTLSelectPredictability.h: Copied from Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp. * ftl/FTLSlowPathCall.h: (JSC::FTL::callOperation): * generator/Checkpoints.rb: Added. * generator/Opcode.rb: * generator/Section.rb: * heap/Heap.cpp: (JSC::Heap::gatherScratchBufferRoots): * interpreter/CallFrame.cpp: (JSC::CallFrame::callSiteAsRawBits const): (JSC::CallFrame::unsafeCallSiteAsRawBits const): (JSC::CallFrame::callSiteIndex const): (JSC::CallFrame::unsafeCallSiteIndex const): (JSC::CallFrame::setCurrentVPC): (JSC::CallFrame::bytecodeIndex): (JSC::CallFrame::codeOrigin): * interpreter/CallFrame.h: (JSC::CallSiteIndex::CallSiteIndex): (JSC::CallSiteIndex::operator bool const): (JSC::CallSiteIndex::operator== const): (JSC::CallSiteIndex::bits const): (JSC::CallSiteIndex::fromBits): (JSC::CallSiteIndex::bytecodeIndex const): (JSC::DisposableCallSiteIndex::DisposableCallSiteIndex): (JSC::CallFrame::callee const): (JSC::CallFrame::unsafeCallee const): (JSC::CallFrame::addressOfCodeBlock const): (JSC::CallFrame::argumentCountIncludingThis const): (JSC::CallFrame::offsetFor): (JSC::CallFrame::setArgumentCountIncludingThis): (JSC::CallFrame::setReturnPC): * interpreter/CallFrameInlines.h: (JSC::CallFrame::r): (JSC::CallFrame::uncheckedR): (JSC::CallFrame::guaranteedJSValueCallee const): (JSC::CallFrame::jsCallee const): (JSC::CallFrame::codeBlock const): (JSC::CallFrame::unsafeCodeBlock const): (JSC::CallFrame::setCallee): (JSC::CallFrame::setCodeBlock): * interpreter/CheckpointOSRExitSideState.h: Copied from Source/JavaScriptCore/dfg/DFGThunks.h. * interpreter/Interpreter.cpp: (JSC::eval): (JSC::sizeOfVarargs): (JSC::loadVarargs): (JSC::setupVarargsFrame): (JSC::UnwindFunctor::operator() const): (JSC::Interpreter::executeCall): (JSC::Interpreter::executeConstruct): * interpreter/Interpreter.h: * interpreter/StackVisitor.cpp: (JSC::StackVisitor::readInlinedFrame): * jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr): (JSC::AssemblyHelpers::emitGetFromCallFrameHeader32): (JSC::AssemblyHelpers::emitGetFromCallFrameHeader64): (JSC::AssemblyHelpers::emitPutToCallFrameHeader): (JSC::AssemblyHelpers::emitPutToCallFrameHeaderBeforePrologue): (JSC::AssemblyHelpers::emitPutPayloadToCallFrameHeaderBeforePrologue): (JSC::AssemblyHelpers::emitPutTagToCallFrameHeaderBeforePrologue): (JSC::AssemblyHelpers::addressFor): (JSC::AssemblyHelpers::tagFor): (JSC::AssemblyHelpers::payloadFor): (JSC::AssemblyHelpers::calleeFrameSlot): (JSC::AssemblyHelpers::calleeArgumentSlot): (JSC::AssemblyHelpers::calleeFrameTagSlot): (JSC::AssemblyHelpers::calleeFramePayloadSlot): (JSC::AssemblyHelpers::calleeFrameCallerFrame): (JSC::AssemblyHelpers::argumentCount): * jit/CallFrameShuffler.cpp: (JSC::CallFrameShuffler::CallFrameShuffler): * jit/CallFrameShuffler.h: (JSC::CallFrameShuffler::setCalleeJSValueRegs): (JSC::CallFrameShuffler::assumeCalleeIsCell): * jit/JIT.h: * jit/JITArithmetic.cpp: (JSC::JIT::emit_op_unsigned): (JSC::JIT::emit_compareAndJump): (JSC::JIT::emit_compareAndJumpImpl): (JSC::JIT::emit_compareUnsignedAndJump): (JSC::JIT::emit_compareUnsignedAndJumpImpl): (JSC::JIT::emit_compareUnsigned): (JSC::JIT::emit_compareUnsignedImpl): (JSC::JIT::emit_compareAndJumpSlow): (JSC::JIT::emit_compareAndJumpSlowImpl): (JSC::JIT::emit_op_inc): (JSC::JIT::emit_op_dec): (JSC::JIT::emit_op_mod): (JSC::JIT::emitBitBinaryOpFastPath): (JSC::JIT::emit_op_bitnot): (JSC::JIT::emitRightShiftFastPath): (JSC::JIT::emitMathICFast): (JSC::JIT::emitMathICSlow): (JSC::JIT::emit_op_div): * jit/JITCall.cpp: (JSC::JIT::emitPutCallResult): (JSC::JIT::compileSetupFrame): (JSC::JIT::compileOpCall): * jit/JITExceptions.cpp: (JSC::genericUnwind): * jit/JITInlines.h: (JSC::JIT::isOperandConstantDouble): (JSC::JIT::getConstantOperand): (JSC::JIT::emitPutIntToCallFrameHeader): (JSC::JIT::appendCallWithExceptionCheckSetJSValueResult): (JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile): (JSC::JIT::linkSlowCaseIfNotJSCell): (JSC::JIT::isOperandConstantChar): (JSC::JIT::getOperandConstantInt): (JSC::JIT::getOperandConstantDouble): (JSC::JIT::emitInitRegister): (JSC::JIT::emitLoadTag): (JSC::JIT::emitLoadPayload): (JSC::JIT::emitGet): (JSC::JIT::emitPutVirtualRegister): (JSC::JIT::emitLoad): (JSC::JIT::emitLoad2): (JSC::JIT::emitLoadDouble): (JSC::JIT::emitLoadInt32ToDouble): (JSC::JIT::emitStore): (JSC::JIT::emitStoreInt32): (JSC::JIT::emitStoreCell): (JSC::JIT::emitStoreBool): (JSC::JIT::emitStoreDouble): (JSC::JIT::emitJumpSlowCaseIfNotJSCell): (JSC::JIT::isOperandConstantInt): (JSC::JIT::emitGetVirtualRegister): (JSC::JIT::emitGetVirtualRegisters): * jit/JITOpcodes.cpp: (JSC::JIT::emit_op_mov): (JSC::JIT::emit_op_end): (JSC::JIT::emit_op_new_object): (JSC::JIT::emitSlow_op_new_object): (JSC::JIT::emit_op_overrides_has_instance): (JSC::JIT::emit_op_instanceof): (JSC::JIT::emitSlow_op_instanceof): (JSC::JIT::emit_op_is_empty): (JSC::JIT::emit_op_is_undefined): (JSC::JIT::emit_op_is_undefined_or_null): (JSC::JIT::emit_op_is_boolean): (JSC::JIT::emit_op_is_number): (JSC::JIT::emit_op_is_cell_with_type): (JSC::JIT::emit_op_is_object): (JSC::JIT::emit_op_ret): (JSC::JIT::emit_op_to_primitive): (JSC::JIT::emit_op_set_function_name): (JSC::JIT::emit_op_not): (JSC::JIT::emit_op_jfalse): (JSC::JIT::emit_op_jeq_null): (JSC::JIT::emit_op_jneq_null): (JSC::JIT::emit_op_jundefined_or_null): (JSC::JIT::emit_op_jnundefined_or_null): (JSC::JIT::emit_op_jneq_ptr): (JSC::JIT::emit_op_eq): (JSC::JIT::emit_op_jeq): (JSC::JIT::emit_op_jtrue): (JSC::JIT::emit_op_neq): (JSC::JIT::emit_op_jneq): (JSC::JIT::emit_op_throw): (JSC::JIT::compileOpStrictEq): (JSC::JIT::compileOpStrictEqJump): (JSC::JIT::emit_op_to_number): (JSC::JIT::emit_op_to_numeric): (JSC::JIT::emit_op_to_string): (JSC::JIT::emit_op_to_object): (JSC::JIT::emit_op_catch): (JSC::JIT::emit_op_get_parent_scope): (JSC::JIT::emit_op_switch_imm): (JSC::JIT::emit_op_switch_char): (JSC::JIT::emit_op_switch_string): (JSC::JIT::emit_op_eq_null): (JSC::JIT::emit_op_neq_null): (JSC::JIT::emit_op_enter): (JSC::JIT::emit_op_get_scope): (JSC::JIT::emit_op_to_this): (JSC::JIT::emit_op_create_this): (JSC::JIT::emit_op_check_tdz): (JSC::JIT::emitSlow_op_eq): (JSC::JIT::emitSlow_op_neq): (JSC::JIT::emitSlow_op_instanceof_custom): (JSC::JIT::emit_op_new_regexp): (JSC::JIT::emitNewFuncCommon): (JSC::JIT::emitNewFuncExprCommon): (JSC::JIT::emit_op_new_array): (JSC::JIT::emit_op_new_array_with_size): (JSC::JIT::emit_op_has_structure_property): (JSC::JIT::emit_op_has_indexed_property): (JSC::JIT::emitSlow_op_has_indexed_property): (JSC::JIT::emit_op_get_direct_pname): (JSC::JIT::emit_op_enumerator_structure_pname): (JSC::JIT::emit_op_enumerator_generic_pname): (JSC::JIT::emit_op_profile_type): (JSC::JIT::emit_op_log_shadow_chicken_prologue): (JSC::JIT::emit_op_log_shadow_chicken_tail): (JSC::JIT::emit_op_argument_count): (JSC::JIT::emit_op_get_rest_length): (JSC::JIT::emit_op_get_argument): * jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_catch): * jit/JITOperations.cpp: * jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emitSlow_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emitGenericContiguousPutByVal): (JSC::JIT::emitArrayStoragePutByVal): (JSC::JIT::emitPutByValWithCachedId): (JSC::JIT::emitSlow_op_put_by_val): (JSC::JIT::emit_op_put_getter_by_id): (JSC::JIT::emit_op_put_setter_by_id): (JSC::JIT::emit_op_put_getter_setter_by_id): (JSC::JIT::emit_op_put_getter_by_val): (JSC::JIT::emit_op_put_setter_by_val): (JSC::JIT::emit_op_del_by_id): (JSC::JIT::emit_op_del_by_val): (JSC::JIT::emit_op_try_get_by_id): (JSC::JIT::emitSlow_op_try_get_by_id): (JSC::JIT::emit_op_get_by_id_direct): (JSC::JIT::emitSlow_op_get_by_id_direct): (JSC::JIT::emit_op_get_by_id): (JSC::JIT::emit_op_get_by_id_with_this): (JSC::JIT::emitSlow_op_get_by_id): (JSC::JIT::emitSlow_op_get_by_id_with_this): (JSC::JIT::emit_op_put_by_id): (JSC::JIT::emit_op_in_by_id): (JSC::JIT::emitSlow_op_in_by_id): (JSC::JIT::emitResolveClosure): (JSC::JIT::emit_op_resolve_scope): (JSC::JIT::emitLoadWithStructureCheck): (JSC::JIT::emitGetClosureVar): (JSC::JIT::emit_op_get_from_scope): (JSC::JIT::emitSlow_op_get_from_scope): (JSC::JIT::emitPutGlobalVariable): (JSC::JIT::emitPutGlobalVariableIndirect): (JSC::JIT::emitPutClosureVar): (JSC::JIT::emit_op_put_to_scope): (JSC::JIT::emit_op_get_from_arguments): (JSC::JIT::emit_op_put_to_arguments): (JSC::JIT::emitWriteBarrier): (JSC::JIT::emit_op_get_internal_field): (JSC::JIT::emit_op_put_internal_field): (JSC::JIT::emitIntTypedArrayPutByVal): (JSC::JIT::emitFloatTypedArrayPutByVal): * jit/JSInterfaceJIT.h: (JSC::JSInterfaceJIT::emitLoadJSCell): (JSC::JSInterfaceJIT::emitJumpIfNotJSCell): (JSC::JSInterfaceJIT::emitLoadInt32): (JSC::JSInterfaceJIT::emitLoadDouble): (JSC::JSInterfaceJIT::emitGetFromCallFrameHeaderPtr): (JSC::JSInterfaceJIT::emitPutToCallFrameHeader): (JSC::JSInterfaceJIT::emitPutCellToCallFrameHeader): * jit/SetupVarargsFrame.cpp: (JSC::emitSetupVarargsFrameFastCase): * jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadDoubleArgument): (JSC::SpecializedThunkJIT::loadCellArgument): (JSC::SpecializedThunkJIT::loadInt32Argument): * jit/ThunkGenerators.cpp: (JSC::absThunkGenerator): * llint/LLIntSlowPaths.cpp: (JSC::LLInt::getNonConstantOperand): (JSC::LLInt::getOperand): (JSC::LLInt::genericCall): (JSC::LLInt::varargsSetup): (JSC::LLInt::commonCallEval): (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::handleVarargsCheckpoint): (JSC::LLInt::dispatchToNextInstruction): (JSC::LLInt::slow_path_checkpoint_osr_exit_from_inlined_call): (JSC::LLInt::slow_path_checkpoint_osr_exit): (JSC::LLInt::llint_throw_stack_overflow_error): * llint/LLIntSlowPaths.h: * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * runtime/ArgList.h: (JSC::MarkedArgumentBuffer::fill): * runtime/CachedTypes.cpp: (JSC::CachedCodeBlock::hasCheckpoints const): (JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): (JSC::CachedCodeBlock<CodeBlockType>::encode): * runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL): * runtime/ConstructData.cpp: (JSC::construct): * runtime/ConstructData.h: * runtime/DirectArguments.cpp: (JSC::DirectArguments::copyToArguments): * runtime/DirectArguments.h: * runtime/GenericArguments.h: * runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::copyToArguments): * runtime/JSArray.cpp: (JSC::JSArray::copyToArguments): * runtime/JSArray.h: * runtime/JSImmutableButterfly.cpp: (JSC::JSImmutableButterfly::copyToArguments): * runtime/JSImmutableButterfly.h: * runtime/JSLock.cpp: (JSC::JSLock::willReleaseLock): * runtime/ModuleProgramExecutable.cpp: (JSC::ModuleProgramExecutable::create): * runtime/Options.cpp: (JSC::recomputeDependentOptions): * runtime/ScopedArguments.cpp: (JSC::ScopedArguments::copyToArguments): * runtime/ScopedArguments.h: * runtime/VM.cpp: (JSC::VM::scanSideState const): (JSC::VM::addCheckpointOSRSideState): (JSC::VM::findCheckpointOSRSideState): * runtime/VM.h: (JSC::VM::hasCheckpointOSRSideState const): * tools/VMInspector.cpp: (JSC::VMInspector::dumpRegisters): * wasm/WasmFunctionCodeBlock.h: (JSC::Wasm::FunctionCodeBlock::getConstant const): (JSC::Wasm::FunctionCodeBlock::getConstantType const): * wasm/WasmLLIntGenerator.cpp: (JSC::Wasm::LLIntGenerator::setUsesCheckpoints const): * wasm/WasmOperations.cpp: (JSC::Wasm::operationWasmToJSException): * wasm/WasmSlowPaths.cpp: Source/WTF: * WTF.xcodeproj/project.pbxproj: * wtf/Bitmap.h: (WTF::WordType>::invert): (WTF::WordType>::operator): (WTF::WordType>::operator const const): * wtf/CMakeLists.txt: * wtf/EnumClassOperatorOverloads.h: Added. * wtf/FastBitVector.h: (WTF::FastBitReference::operator bool const): (WTF::FastBitReference::operator|=): (WTF::FastBitReference::operator&=): (WTF::FastBitVector::fill): (WTF::FastBitVector::grow): * wtf/UnalignedAccess.h: (WTF::unalignedLoad): (WTF::unalignedStore): Tools: * Scripts/run-jsc-stress-tests: Canonical link: https://commits.webkit.org/219481@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254735 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-01-17 04:09:32 +00:00
$(PROJECT_DIR)/generator/Checkpoints.rb
$(PROJECT_DIR)/generator/DSL.rb
$(PROJECT_DIR)/generator/Fits.rb
$(PROJECT_DIR)/generator/GeneratedFile.rb
$(PROJECT_DIR)/generator/Metadata.rb
$(PROJECT_DIR)/generator/Opcode.rb
$(PROJECT_DIR)/generator/OpcodeGroup.rb
$(PROJECT_DIR)/generator/Options.rb
$(PROJECT_DIR)/generator/Section.rb
$(PROJECT_DIR)/generator/Template.rb
$(PROJECT_DIR)/generator/Type.rb
[WebAssembly] Create a Wasm interpreter https://bugs.webkit.org/show_bug.cgi?id=194257 <rdar://problem/44186794> Reviewed by Saam Barati. Source/JavaScriptCore: Add an interpreter tier to WebAssembly which reuses the LLInt infrastructure. The interpreter currently tiers up straight to OMG and can OSR enter at the prologue and from loops. The initial implementation of the interpreter is very naive, but despite the lack of optimizations it still shows a 2x improvement on the WebAssembly subtests in JetStream2 and 2x improvement on the PSPDFKit benchmark. It reduces "compilation" times by ~3x and it's neutral on throughput. The interpreter follows the same calling conventions as the BBQ/OMG, this means that: - We have to allocate locals for all argument registers and write all arguments registers to the stack in the prologue. - Calls have to allocate space for at least as many arguments as the number of argument registers. Before each call, all argument registers must be loaded from the stack, and after we return from the call, all registers must be stored back to the stack, in case they contain return values. We carefully layout the stack so that the arguments that would already have to be passed in the stack end up in the right place. The stack layout for calls is: [ gprs ][ fprs ][ optional stack arguments ][ callee frame ] ^ sp - The return opcode has to load all registers from the stack, since they might need to contain results of the function. - The calling convention requires that the callee should store itself in the callee slot of the call frame, which is impossible in the interpreter, since the code we execute is the same for all callees. In order to work around that, we generate an entry thunk to the wasm interpreter for each function. All this thunk does is store the callee in the call frame and tail call the interpreter. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * bytecode/BytecodeDumper.cpp: (JSC::BytecodeDumper<Block>::constantName const): (JSC::BytecodeDumper<Block>::dumpValue): (JSC::BytecodeDumper<Block>::dumpBytecode): (JSC::CodeBlockBytecodeDumper<Block>::vm const): (JSC::CodeBlockBytecodeDumper<Block>::identifier const): (JSC::CodeBlockBytecodeDumper<Block>::dumpIdentifiers): (JSC::CodeBlockBytecodeDumper<Block>::dumpConstants): (JSC::CodeBlockBytecodeDumper<Block>::dumpExceptionHandlers): (JSC::CodeBlockBytecodeDumper<Block>::dumpSwitchJumpTables): (JSC::CodeBlockBytecodeDumper<Block>::dumpStringSwitchJumpTables): (JSC::CodeBlockBytecodeDumper<Block>::dumpBlock): * bytecode/BytecodeDumper.h: (JSC::BytecodeDumper::dumpValue): (JSC::BytecodeDumper::BytecodeDumper): * bytecode/BytecodeGeneratorification.cpp: (JSC::performGeneratorification): * bytecode/BytecodeList.rb: * bytecode/CodeBlock.cpp: (JSC::CodeBlock::dumpBytecode): * bytecode/Fits.h: * bytecode/Instruction.h: (JSC::BaseInstruction::BaseInstruction): (JSC::BaseInstruction::Impl::opcodeID const): (JSC::BaseInstruction::opcodeID const): (JSC::BaseInstruction::name const): (JSC::BaseInstruction::isWide16 const): (JSC::BaseInstruction::isWide32 const): (JSC::BaseInstruction::hasMetadata const): (JSC::BaseInstruction::sizeShiftAmount const): (JSC::BaseInstruction::size const): (JSC::BaseInstruction::is const): (JSC::BaseInstruction::as const): (JSC::BaseInstruction::cast): (JSC::BaseInstruction::cast const): (JSC::BaseInstruction::wide16 const): (JSC::BaseInstruction::wide32 const): * bytecode/InstructionStream.h: (JSC::InstructionStream::iterator::operator+=): (JSC::InstructionStream::iterator::operator++): (JSC::InstructionStreamWriter::iterator::operator+=): (JSC::InstructionStreamWriter::iterator::operator++): * bytecode/Opcode.cpp: * bytecode/Opcode.h: * bytecode/PreciseJumpTargetsInlines.h: * bytecode/UnlinkedCodeBlock.h: * bytecode/VirtualRegister.cpp: (JSC::VirtualRegister::VirtualRegister): * bytecode/VirtualRegister.h: * bytecompiler/BytecodeGenerator.cpp: (JSC::GenericLabel<JSGeneratorTraits>::setLocation): (JSC::BytecodeGenerator::BytecodeGenerator): * bytecompiler/BytecodeGenerator.h: * bytecompiler/BytecodeGeneratorBase.h: Added. * bytecompiler/BytecodeGeneratorBaseInlines.h: Added. (JSC::shrinkToFit): (JSC::BytecodeGeneratorBase<Traits>::BytecodeGeneratorBase): (JSC::BytecodeGeneratorBase<Traits>::newLabel): (JSC::BytecodeGeneratorBase<Traits>::newEmittedLabel): (JSC::BytecodeGeneratorBase<Traits>::reclaimFreeRegisters): (JSC::BytecodeGeneratorBase<Traits>::emitLabel): (JSC::BytecodeGeneratorBase<Traits>::recordOpcode): (JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode16): (JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32): (JSC::BytecodeGeneratorBase<Traits>::write): (JSC::BytecodeGeneratorBase<Traits>::newRegister): (JSC::BytecodeGeneratorBase<Traits>::newTemporary): (JSC::BytecodeGeneratorBase<Traits>::addVar): (JSC::BytecodeGeneratorBase<Traits>::allocateCalleeSaveSpace): * bytecompiler/Label.h: (JSC::GenericBoundLabel::GenericBoundLabel): (JSC::GenericBoundLabel::target): (JSC::GenericBoundLabel::saveTarget): (JSC::GenericBoundLabel::commitTarget): * dfg/DFGByteCodeParser.cpp: * dfg/DFGCapabilities.cpp: (JSC::DFG::capabilityLevel): * dfg/DFGOperations.cpp: * generator/Argument.rb: * generator/DSL.rb: * generator/GeneratedFile.rb: * generator/Opcode.rb: * generator/Options.rb: * generator/Section.rb: * generator/Wasm.rb: Added. * interpreter/Register.h: * interpreter/RegisterInlines.h: (JSC::Register::operator=): * jit/JITArithmetic.cpp: * jit/JITOpcodes.cpp: * llint/LLIntData.cpp: (JSC::LLInt::initialize): * llint/LLIntData.h: (JSC::LLInt::wasmExceptionInstructions): * llint/LLIntOfflineAsmConfig.h: * llint/LLIntOffsetsExtractor.cpp: * llint/LLIntSlowPaths.cpp: * llint/LLIntThunks.cpp: (JSC::LLInt::generateThunkWithJumpTo): (JSC::LLInt::wasmFunctionEntryThunk): * llint/LLIntThunks.h: * llint/LowLevelInterpreter.asm: * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * llint/WebAssembly.asm: Added. * offlineasm/arm64.rb: * offlineasm/instructions.rb: * offlineasm/parser.rb: * offlineasm/registers.rb: * offlineasm/transform.rb: * offlineasm/x86.rb: * parser/Nodes.h: * runtime/Error.cpp: (JSC::FindFirstCallerFrameWithCodeblockFunctor::operator() const): * runtime/ErrorInstance.cpp: (JSC::ErrorInstance::finishCreation): * runtime/Options.cpp: (JSC::overrideDefaults): * runtime/OptionsList.h: * runtime/SamplingProfiler.cpp: (JSC::FrameWalker::recordJITFrame): (JSC::FrameWalker::resetAtMachineFrame): * wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::isControlTypeIf): (JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck): * wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::isControlTypeIf): * wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::prepareImpl): (JSC::Wasm::BBQPlan::work): (JSC::Wasm::BBQPlan::compileFunction): (JSC::Wasm::BBQPlan::didCompleteCompilation): (JSC::Wasm::BBQPlan::initializeCallees): * wasm/WasmBBQPlan.h: * wasm/WasmBBQPlanInlines.h: Removed. * wasm/WasmCallee.cpp: (JSC::Wasm::Callee::Callee): (JSC::Wasm::Callee::dump const): (JSC::Wasm::JITCallee::JITCallee): (JSC::Wasm::LLIntCallee::setEntrypoint): (JSC::Wasm::LLIntCallee::entrypoint const): (JSC::Wasm::LLIntCallee::calleeSaveRegisters): (JSC::Wasm:: const): * wasm/WasmCallee.h: (JSC::Wasm::Callee::setOSREntryCallee): (JSC::Wasm::JITCallee::wasmToWasmCallsites): (JSC::Wasm::JITCallee:: const): * wasm/WasmCallingConvention.h: * wasm/WasmCodeBlock.cpp: (JSC::Wasm::CodeBlock::CodeBlock): * wasm/WasmCodeBlock.h: (JSC::Wasm::CodeBlock::wasmEntrypointCalleeFromFunctionIndexSpace): (JSC::Wasm::CodeBlock::wasmBBQCalleeFromFunctionIndexSpace): (JSC::Wasm::CodeBlock::wasmToWasmExitStub): * wasm/WasmCompilationMode.cpp: (JSC::Wasm::makeString): * wasm/WasmCompilationMode.h: * wasm/WasmEmbedder.h: * wasm/WasmEntryPlan.cpp: Added. (JSC::Wasm::EntryPlan::EntryPlan): (JSC::Wasm::EntryPlan::stateString): (JSC::Wasm::EntryPlan::moveToState): (JSC::Wasm::EntryPlan::didReceiveFunctionData): (JSC::Wasm::EntryPlan::parseAndValidateModule): (JSC::Wasm::EntryPlan::prepare): (JSC::Wasm::EntryPlan::ThreadCountHolder::ThreadCountHolder): (JSC::Wasm::EntryPlan::ThreadCountHolder::~ThreadCountHolder): (JSC::Wasm::EntryPlan::complete): (JSC::Wasm::EntryPlan::compileFunctions): (JSC::Wasm::EntryPlan::work): * wasm/WasmEntryPlan.h: Copied from Source/JavaScriptCore/wasm/WasmBBQPlan.h. (JSC::Wasm::EntryPlan::parseAndValidateModule): (JSC::Wasm::EntryPlan::exports const): (JSC::Wasm::EntryPlan::internalFunctionCount const): (JSC::Wasm::EntryPlan::takeModuleInformation): (JSC::Wasm::EntryPlan::takeWasmToWasmExitStubs): (JSC::Wasm::EntryPlan::takeWasmToWasmCallsites): (JSC::Wasm::EntryPlan::hasBeenPrepared const): (JSC::Wasm::EntryPlan::tryReserveCapacity): * wasm/WasmFunctionCodeBlock.cpp: Added. (JSC::Wasm::FunctionCodeBlock::setInstructions): (JSC::Wasm::FunctionCodeBlock::dumpBytecode): (JSC::Wasm::FunctionCodeBlock::addOutOfLineJumpTarget): (JSC::Wasm::FunctionCodeBlock::outOfLineJumpOffset): (JSC::Wasm::FunctionCodeBlock::outOfLineJumpTarget): (JSC::Wasm::FunctionCodeBlock::addSignature): (JSC::Wasm::FunctionCodeBlock::signature const): (JSC::Wasm::FunctionCodeBlock::addJumpTable): (JSC::Wasm::FunctionCodeBlock::jumpTable const const): (JSC::Wasm::FunctionCodeBlock::numberOfJumpTables const): * wasm/WasmFunctionCodeBlock.h: Added. (JSC::Wasm::FunctionCodeBlock::FunctionCodeBlock): (JSC::Wasm::FunctionCodeBlock::getConstant const): (JSC::Wasm::FunctionCodeBlock::functionIndex const): (JSC::Wasm::FunctionCodeBlock::addJumpTarget): (JSC::Wasm::FunctionCodeBlock::numberOfJumpTargets): (JSC::Wasm::FunctionCodeBlock::lastJumpTarget): (JSC::Wasm::FunctionCodeBlock::outOfLineJumpOffset): (JSC::Wasm::FunctionCodeBlock::bytecodeOffset): (JSC::Wasm::FunctionCodeBlock::tierUpCounter): * wasm/WasmFunctionParser.h: (JSC::Wasm::FunctionParser<Context>::parseExpression): (JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression): * wasm/WasmInstance.h: * wasm/WasmLLIntGenerator.cpp: Added. (JSC::Wasm::LLIntGenerator::ControlType::ControlType): (JSC::Wasm::LLIntGenerator::ControlType::loop): (JSC::Wasm::LLIntGenerator::ControlType::topLevel): (JSC::Wasm::LLIntGenerator::ControlType::block): (JSC::Wasm::LLIntGenerator::ControlType::if_): (JSC::Wasm::LLIntGenerator::ControlType::targetLabelForBranch const): (JSC::Wasm::LLIntGenerator::fail const): (JSC::Wasm::LLIntGenerator::unifyValuesWithBlock): (JSC::Wasm::LLIntGenerator::emptyExpression): (JSC::Wasm::LLIntGenerator::createStack): (JSC::Wasm::LLIntGenerator::isControlTypeIf): (JSC::Wasm::LLIntGenerator::addEndToUnreachable): (JSC::Wasm::LLIntGenerator::setParser): (JSC::Wasm::LLIntGenerator::dump): (JSC::Wasm::LLIntGenerator::virtualRegisterForLocal): (JSC::Wasm::LLIntGenerator::tmpsForSignature): (JSC::Wasm::LLIntGenerator::jsNullConstant): (JSC::Wasm::LLIntGenerator::isConstant): (JSC::Wasm::parseAndCompileBytecode): (JSC::Wasm::LLIntGenerator::LLIntGenerator): (JSC::Wasm::LLIntGenerator::finalize): (JSC::Wasm::LLIntGenerator::callInformationFor): (JSC::Wasm::LLIntGenerator::addArguments): (JSC::Wasm::LLIntGenerator::addLocal): (JSC::Wasm::LLIntGenerator::addConstant): (JSC::Wasm::LLIntGenerator::getLocal): (JSC::Wasm::LLIntGenerator::setLocal): (JSC::Wasm::LLIntGenerator::getGlobal): (JSC::Wasm::LLIntGenerator::setGlobal): (JSC::Wasm::LLIntGenerator::addLoop): (JSC::Wasm::LLIntGenerator::addTopLevel): (JSC::Wasm::LLIntGenerator::addBlock): (JSC::Wasm::LLIntGenerator::addIf): (JSC::Wasm::LLIntGenerator::addElse): (JSC::Wasm::LLIntGenerator::addElseToUnreachable): (JSC::Wasm::LLIntGenerator::addReturn): (JSC::Wasm::LLIntGenerator::addBranch): (JSC::Wasm::LLIntGenerator::addSwitch): (JSC::Wasm::LLIntGenerator::endBlock): (JSC::Wasm::LLIntGenerator::addCall): (JSC::Wasm::LLIntGenerator::addCallIndirect): (JSC::Wasm::LLIntGenerator::addRefIsNull): (JSC::Wasm::LLIntGenerator::addRefFunc): (JSC::Wasm::LLIntGenerator::addTableGet): (JSC::Wasm::LLIntGenerator::addTableSet): (JSC::Wasm::LLIntGenerator::addTableSize): (JSC::Wasm::LLIntGenerator::addTableGrow): (JSC::Wasm::LLIntGenerator::addTableFill): (JSC::Wasm::LLIntGenerator::addUnreachable): (JSC::Wasm::LLIntGenerator::addCurrentMemory): (JSC::Wasm::LLIntGenerator::addGrowMemory): (JSC::Wasm::LLIntGenerator::addSelect): (JSC::Wasm::LLIntGenerator::load): (JSC::Wasm::LLIntGenerator::store): (JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation): * wasm/WasmLLIntGenerator.h: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.h. * wasm/WasmLLIntPlan.cpp: Added. (JSC::Wasm::LLIntPlan::prepareImpl): (JSC::Wasm::LLIntPlan::compileFunction): (JSC::Wasm::LLIntPlan::didCompleteCompilation): (JSC::Wasm::LLIntPlan::initializeCallees): * wasm/WasmLLIntPlan.h: Copied from Source/JavaScriptCore/wasm/WasmOMGForOSREntryPlan.h. * wasm/WasmLLIntTierUpCounter.cpp: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.cpp. (JSC::Wasm::LLIntTierUpCounter::addOSREntryDataForLoop): (JSC::Wasm::LLIntTierUpCounter::osrEntryDataForLoop const const): * wasm/WasmLLIntTierUpCounter.h: Copied from Source/JavaScriptCore/wasm/WasmOMGForOSREntryPlan.h. (JSC::Wasm::LLIntTierUpCounter::LLIntTierUpCounter): (JSC::Wasm::LLIntTierUpCounter::optimizeAfterWarmUp): (JSC::Wasm::LLIntTierUpCounter::checkIfOptimizationThresholdReached): (JSC::Wasm::LLIntTierUpCounter::optimizeSoon): * wasm/WasmMemoryInformation.cpp: (JSC::Wasm::PinnedRegisterInfo::get): * wasm/WasmModule.cpp: (JSC::Wasm::makeValidationResult): (JSC::Wasm::makeValidationCallback): (JSC::Wasm::Module::validateSync): (JSC::Wasm::Module::validateAsync): * wasm/WasmOMGForOSREntryPlan.cpp: (JSC::Wasm::OMGForOSREntryPlan::OMGForOSREntryPlan): (JSC::Wasm::OMGForOSREntryPlan::work): * wasm/WasmOMGForOSREntryPlan.h: * wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work): * wasm/WasmSlowPaths.cpp: Added. (JSC::LLInt::jitCompileAndSetHeuristics): (JSC::LLInt::WASM_SLOW_PATH_DECL): (JSC::LLInt::doWasmCall): (JSC::LLInt::doWasmCallIndirect): (JSC::LLInt::slow_path_wasm_throw_exception): (JSC::LLInt::slow_path_wasm_popcount): (JSC::LLInt::slow_path_wasm_popcountll): * wasm/WasmSlowPaths.h: Added. * wasm/WasmTable.cpp: (JSC::Wasm::FuncRefTable::function const): (JSC::Wasm::FuncRefTable::instance const): * wasm/WasmTable.h: * wasm/WasmTierUpCount.h: * wasm/WasmValidate.cpp: (JSC::Wasm::Validate::isControlTypeIf): * wasm/js/JSToWasm.cpp: (JSC::Wasm::createJSToWasmWrapper): * wasm/js/JSToWasm.h: * wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::calleeSaves const): Tools: Add a mode that runs WebAssembly tests without the LLInt (i.e. only Air) and update the no-air mode to also disable the LLInt tier. * Scripts/run-jsc-stress-tests: Canonical link: https://commits.webkit.org/217068@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251886 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-10-31 22:32:52 +00:00
$(PROJECT_DIR)/generator/Wasm.rb
$(PROJECT_DIR)/generator/main.rb
$(PROJECT_DIR)/inspector/InjectedScriptSource.js
Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition https://bugs.webkit.org/show_bug.cgi?id=203651 <rdar://problem/56128726> Reviewed by Brian Burg. Source/JavaScriptCore: Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions are created, started, delayed, iterated, canceled, or finished. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources.make: * inspector/protocol/Animation.json: Added. * inspector/protocol/Timeline.json: Add an Animation domain for handling the tracking of CSS Web Animations. Source/WebCore: Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions are created, started, delayed, iterated, canceled, or finished. Test: inspector/animation/tracking.html * animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::apply): * animation/WebAnimation.h: * animation/WebAnimation.cpp: (WebCore::WebAnimation::~WebAnimation): (WebCore::WebAnimation::contextDestroyed): Added. (WebCore::WebAnimation::setEffectInternal): * inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willApplyKeyframeEffect): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffect): Added. (WebCore::InspectorInstrumentation::willDestroyWebAnimation): Added. * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl): Added. (WebCore::InspectorInstrumentation::didChangeWebAnimationEffectImpl): Added. (WebCore::InspectorInstrumentation::willDestroyWebAnimationImpl): Added. Add instrumentation points for CSS animations/transitions. * inspector/agents/InspectorAnimationAgent.h: Added. * inspector/agents/InspectorAnimationAgent.cpp: Added. (WebCore::InspectorAnimationAgent::InspectorAnimationAgent): (WebCore::InspectorAnimationAgent::didCreateFrontendAndBackend): (WebCore::InspectorAnimationAgent::willDestroyFrontendAndBackend): (WebCore::InspectorAnimationAgent::startTracking): (WebCore::InspectorAnimationAgent::stopTracking): (WebCore::isDelayed): (WebCore::InspectorAnimationAgent::willApplyKeyframeEffect): (WebCore::InspectorAnimationAgent::didChangeWebAnimationEffect): (WebCore::InspectorAnimationAgent::willDestroyWebAnimation): (WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation): * inspector/InstrumentingAgents.h: (WebCore::InstrumentingAgents::persistentInspectorAnimationAgent const): Added. (WebCore::InstrumentingAgents::setPersistentInspectorAnimationAgent): Added. (WebCore::InstrumentingAgents::trackingInspectorAnimationAgent const): Added. (WebCore::InstrumentingAgents::setTrackingInspectorAnimationAgent): Added. * inspector/InstrumentingAgents.cpp: (WebCore::InstrumentingAgents::reset): * inspector/InspectorController.cpp: (WebCore::InspectorController::createLazyAgents): Add an Animation domain for handling the tracking of CSS Web Animations. * inspector/agents/InspectorTimelineAgent.h: * inspector/agents/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::toggleInstruments): (WebCore::InspectorTimelineAgent::toggleAnimationInstrument): Added. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: Source/WebInspectorUI: Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions are created, started, delayed, iterated, canceled, or finished. * UserInterface/Protocol/AnimationObserver.js: Added. (WI.AnimationObserver.prototype.trackingStart): (WI.AnimationObserver.prototype.trackingUpdate): (WI.AnimationObserver.prototype.trackingComplete): * UserInterface/Protocol/Target.js: (WI.Target.prototype.get AnimationAgent): Added. * UserInterface/Main.html: * UserInterface/Base/Main.js: (WI.loaded): * UserInterface/Test.html: * UserInterface/Test/Test.js: (WI.loaded): Add an Animation domain for handling the tracking of CSS Web Animations. * UserInterface/Models/MediaInstrument.js: (WI.MediaInstrument.prototype.startInstrumentation): (WI.MediaInstrument.prototype.stopInstrumentation): (WI.MediaInstrument): * UserInterface/Models/MediaTimeline.js: Added. (WI.MediaTimeline.prototype.recordForTrackingAnimationId): (WI.MediaTimeline.prototype.recordForMediaElementEvents): (WI.MediaTimeline.prototype.reset): (WI.MediaTimeline.prototype.addRecord): * UserInterface/Models/MediaTimelineRecord.js: (WI.MediaTimelineRecord): (WI.MediaTimelineRecord.async fromJSON): (WI.MediaTimelineRecord.prototype.toJSON): (WI.MediaTimelineRecord.prototype.get trackingAnimationId): Added. (WI.MediaTimelineRecord.prototype.get timestamps): Added. (WI.MediaTimelineRecord.prototype.get activeStartTime): Added. (WI.MediaTimelineRecord.prototype.get updatesDynamically): Added. (WI.MediaTimelineRecord.prototype.get usesActiveStartTime): Added. (WI.MediaTimelineRecord.prototype.get displayName): (WI.MediaTimelineRecord.prototype.get subtitle): Added. (WI.MediaTimelineRecord.prototype.saveIdentityToCookie): (WI.MediaTimelineRecord.prototype.updateProgress): Added. (WI.MediaTimelineRecord.prototype.addDOMEvent): Added. (WI.MediaTimelineRecord.prototype.powerEfficientPlaybackStateChanged): Added. (WI.MediaTimelineRecord.prototype._updateTimes): Added. (WI.MediaTimelineRecord.fromJSON): Deleted. (WI.MediaTimelineRecord.prototype.get domEvent): Deleted. (WI.MediaTimelineRecord.prototype.get isPowerEfficient): Deleted. * UserInterface/Models/Timeline.js: (WI.Timeline.create): * UserInterface/Controllers/TimelineManager.js: (WI.TimelineManager): (WI.TimelineManager.prototype.async processJSON): (WI.TimelineManager.prototype.animationTrackingStarted): Added. (WI.TimelineManager.prototype.animationTrackingUpdated): Added. (WI.TimelineManager.prototype.animationTrackingCompleted): Added. (WI.TimelineManager.prototype._updateAutoCaptureInstruments): (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): (WI.TimelineManager.prototype._handleDOMNodePowerEfficientPlaybackStateChanged): Start/Stop tracking animations based on whether the Media & Animations timeline is enabled. * UserInterface/Views/MediaTimelineOverviewGraph.js: (WI.MediaTimelineOverviewGraph): (WI.MediaTimelineOverviewGraph.get maximumRowCount): Added. (WI.MediaTimelineOverviewGraph.prototype.reset): (WI.MediaTimelineOverviewGraph.prototype.layout): (WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord): (WI.MediaTimelineOverviewGraph.prototype._processRecord): Added. (WI.MediaTimelineOverviewGraph.prototype._processRecord.compareByStartTime): Added. (WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded): (WI.MediaTimelineOverviewGraph.prototype._handleTimesUpdated): Added. (WI.MediaTimelineOverviewGraph.prototype.shown): Deleted. (WI.MediaTimelineOverviewGraph.prototype.hidden): Deleted. * UserInterface/Views/MediaTimelineOverviewGraph.css: (.timeline-overview-graph.media): Added. (.timeline-overview-graph.media > .graph-row): Added. (.timeline-overview-graph.media > .graph-row > .timeline-record-bar): Added. (.timeline-overview-graph.media > .graph-row > .timeline-record-bar:not(.unfinished) > .segment:not(.inactive)): Added. (.timeline-overview-graph.media:nth-child(even) > .graph-row > .timeline-record-bar:not(.unfinished) > .segment:not(.inactive)): Added. (.timeline-overview-graph.media > .timeline-record-bar): Deleted. (.timeline-overview-graph.media > .timeline-record-bar > .segment): Deleted. * UserInterface/Views/MediaTimelineView.js: (WI.MediaTimelineView): (WI.MediaTimelineView.prototype.shown): Added. (WI.MediaTimelineView.prototype.hidden): Added. (WI.MediaTimelineView.prototype.closed): (WI.MediaTimelineView.prototype.reset): (WI.MediaTimelineView.prototype.dataGridSortComparator): (WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes): (WI.MediaTimelineView.prototype._processPendingRecords): * UserInterface/Views/MediaTimelineDataGridNode.js: (WI.MediaTimelineDataGridNode): (WI.MediaTimelineDataGridNode.prototype.get data): (WI.MediaTimelineDataGridNode.prototype.createCellContent): (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren): Added. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addReadySegment): ADded. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addDelaySegment): ADded. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addActiveSegment): ADded. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addFullScreenSegment): ADded. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPowerEfficientPlaybackSegment): ADded. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPausedSegment): ADded. (WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPlayingSegment): ADded. (WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn): (WI.MediaTimelineDataGridNode.prototype._createNameCellDocumentFragment): Added. (WI.MediaTimelineDataGridNode.prototype.iconClassNames): Deleted. * UserInterface/Views/TimelineRecordBar.js: (WI.TimelineRecordBar): (WI.TimelineRecordBar.prototype.refresh): (WI.TimelineRecordBar.prototype._handleClick): * UserInterface/Views/TimelineRecordBar.css: (.timeline-record-bar): (.timeline-record-bar > :matches(img, .segment)): (.timeline-record-bar > img): (.timeline-record-bar > .segment): (body[dir=ltr] .timeline-record-bar > .segment): (body[dir=ltr] .timeline-record-bar > .segment:first-of-type): (body[dir=ltr] .timeline-record-bar > .segment:last-of-type): (body[dir=rtl] .timeline-record-bar > .segment): (body[dir=rtl] .timeline-record-bar > .segment:first-of-type): (body[dir=rtl] .timeline-record-bar > .segment:last-of-type): (.timeline-record-bar > .segment:not(:last-of-type)): (.timeline-record-bar.selected > .segment): (.timeline-record-bar > .segment.inactive,): (.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): (:focus .selected .timeline-record-bar:not(.has-custom-children) > .segment): (:focus .selected .timeline-record-bar:not(.has-custom-children) > .segment.inactive): (:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): (.timeline-record-bar.timeline-record-type-network > .segment): (.timeline-record-bar.timeline-record-type-network > .segment.inactive): (.timeline-record-bar.timeline-record-type-layout > .segment): (.timeline-record-bar.timeline-record-type-layout.paint > .segment,): (.timeline-record-bar.timeline-record-type-script > .segment): (.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment,): (.timeline-record-bar.timeline-record-type-media > .segment): (.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment): (.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment.css-animation-ready): (.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment:matches(.css-animation-delay, .media-element-paused)): (.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment): (.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment.media-element-full-screen): (.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment.media-element-power-efficient-playback): (body[dir=ltr] .timeline-record-bar > .segment.inactive,): Deleted. (body[dir=ltr] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive),): Deleted. (:focus .selected .timeline-record-bar > .segment): Deleted. (:focus .selected .timeline-record-bar > .segment.inactive): Deleted. (body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted. (body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted. Allow timeline record bars to be customized through a delegate callback. If provided, it will be used instead of any default content. It is expected to return an array of objects, each having a `startTime` number, `classNames` array, and `title` string. It can also have a `endTime` number and an `image` string. If `endTime` is `NaN`, the record is unfinished. If `image` is provided, an `<img>` will be used instead of a segment, allowing for markers. * UserInterface/Views/TimelineDataGridNode.js: (WI.TimelineDataGridNode.prototype.createCellContent): Add a default fallback for `WI.DOMNode` values. * UserInterface/Views/TimelineTabContentView.js: (WI.TimelineTabContentView.displayNameForTimelineType): (WI.TimelineTabContentView.iconClassNameForRecord): (WI.TimelineTabContentView.displayNameForRecord): * UserInterface/Views/TimelineRecordTreeElement.js: * UserInterface/Views/TimelineIcons.css: (.animation-frame-record .icon): (.css-animation-record .icon): Added. (.css-transition-record .icon): Added. (.media-element-record .icon): Added. (.animation-record .icon): Deleted. (.dom-event-record .icon): Deleted. (.dom-event-record.fullscreen .icon): Deleted. (.power-efficient-playback-state-changed-record .icon): Deleted. * UserInterface/Images/DOMEventFullscreen.svg: Removed. * UserInterface/Images/EventCancel.svg: Added. * UserInterface/Images/EventIteration.svg: Added. * UserInterface/Images/EventPause.svg: * UserInterface/Images/EventPlay.svg: * UserInterface/Images/EventProcessing.svg: * UserInterface/Images/EventStop.svg: * UserInterface/Images/PowerEfficientPlaybackStateChanged.svg: Removed. * UserInterface/Images/TimelineRecordAnimationFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/TimelineRecordAnimation.svg. * UserInterface/Images/TimelineRecordCSSAnimation.svg: Added. * UserInterface/Images/TimelineRecordCSSTransition.svg: Added. * UserInterface/Images/TimelineRecordMediaElement.svg: Added. Add new media icons. * UserInterface/Models/TimelineRecording.js: (WI.TimelineRecording.async import): Added. (WI.TimelineRecording.import): Deleted. * UserInterface/Models/TimelineRecord.js: * UserInterface/Models/CPUTimelineRecord.js: * UserInterface/Models/HeapAllocationsTimelineRecord.js: (WI.HeapAllocationsTimelineRecord.async fromJSON): Added. (WI.HeapAllocationsTimelineRecord.fromJSON): Deleted. * UserInterface/Models/LayoutTimelineRecord.js: * UserInterface/Models/MemoryTimelineRecord.js: * UserInterface/Models/RenderingFrameTimelineRecord.js: * UserInterface/Models/ResourceTimelineRecord.js: * UserInterface/Models/ScriptTimelineRecord.js: Make the importing of timeline records `async` so we can attempt to rehydrate the DOM nodes of any media records (as well as wait for heap snapshots). * UserInterface/Models/DOMNode.js: (WI.DOMNode): (WI.DOMNode.prototype.isMediaElement): Added. (WI.DOMNode.prototype._shouldListenForEventListeners): Deleted. * Localizations/en.lproj/localizedStrings.js: Source/WTF: * wtf/Markable.h: (WTF::operator==): (WTF::operator!=): Add extra utility operators. Tools: * TestWebKitAPI/Tests/WTF/Markable.cpp: (TestWebKitAPI::TEST): Add tests for extra utility operators. LayoutTests: * inspector/animation/tracking.html: Added. * inspector/animation/tracking-expected.txt: Added. Canonical link: https://commits.webkit.org/217127@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-11-02 00:45:35 +00:00
$(PROJECT_DIR)/inspector/protocol/Animation.json
$(PROJECT_DIR)/inspector/protocol/ApplicationCache.json
Web Inspector: Audit: create new IDL type for exposing special functionality in test context https://bugs.webkit.org/show_bug.cgi?id=193149 <rdar://problem/46801218> Reviewed by Joseph Pecoraro. Source/JavaScriptCore: Create a new `AuditAgent` (and various subclasses for different inspection targets) * inspector/protocol/Audit.json: Added. Add a `run` command that is a simpler version of `Runtime.evaluate`, except that it expects a function string instead of an arbitrary JavaScript expression. Add `setup` and `teardown` commands that create a JavaScript object that will be passed in to the test as an argument. Keep this object alive so that tests can add to the object and have later tests use what was added. * inspector/agents/InspectorAuditAgent.h: Added. * inspector/agents/InspectorAuditAgent.cpp: Added. (Inspector::InspectorAuditAgent::InspectorAuditAgent): (Inspector::InspectorAuditAgent::didCreateFrontendAndBackend): (Inspector::InspectorAuditAgent::willDestroyFrontendAndBackend): (Inspector::InspectorAuditAgent::setup): (Inspector::InspectorAuditAgent::run): (Inspector::InspectorAuditAgent::teardown): (Inspector::InspectorAuditAgent::hasActiveAudit): (Inspector::InspectorAuditAgent::populateAuditObject): * inspector/agents/JSGlobalObjectAuditAgent.h: Added. * inspector/agents/JSGlobalObjectAuditAgent.cpp: Added. (Inspector::JSGlobalObjectAuditAgent::JSGlobalObjectAuditAgent): (Inspector::JSGlobalObjectAuditAgent::injectedScriptForEval): * inspector/JSGlobalObjectInspectorController.h: * inspector/JSGlobalObjectInspectorController.cpp: (Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController): (Inspector::JSGlobalObjectInspectorController::connectFrontend): (Inspector::JSGlobalObjectInspectorController::jsAgentContext): Added. (Inspector::JSGlobalObjectInspectorController::createLazyAgents): Added. * inspector/InjectedScript.h: * inspector/InjectedScript.cpp: (Inspector::InjectedScript::execute): Added. (Inspector::InjectedScript::arrayFromVector): Added. Create a version of `evaluate` that accepts a list of values to be passed in as arguments to the function that was created by the `eval` of the given `functionString`. * inspector/InjectedScriptSource.js: (InjectedScript.prototype.execute): Added. (InjectedScript.prototype.evaluate): (InjectedScript.prototype.evaluateOnCallFrame): (InjectedScript.prototype._evaluateAndWrap): (InjectedScript.prototype._wrapAndSaveCall): Added. (InjectedScript.prototype._wrapCall): Added. (InjectedScript.prototype._evaluateOn): Refactor the `eval` and `saveResult` logic to allow for more flexibility for other callers. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * UnifiedSources-input.xcfilelist: Source/WebCore: Tests: inspector/audit/run.html inspector/audit/setup.html inspector/audit/teardown.html Create a new `AuditAgent` (and various subclasses for different inspection targets), as well as `InspectorAuditAccessibilityObject` and `InspectorAuditDOMObject` objects that will be injected into the test function to allow for more advanced testing. * inspector/InspectorAuditAccessibilityObject.idl: Added. * inspector/InspectorAuditAccessibilityObject.h: Added. (WebCore::InspectorAuditAccessibilityObject::create): * inspector/InspectorAuditAccessibilityObject.cpp: Added. (WebCore::InspectorAuditAccessibilityObject::InspectorAuditAccessibilityObject): * inspector/InspectorAuditDOMObject.idl: Added. * inspector/InspectorAuditDOMObject.h: Added. (WebCore::InspectorAuditDOMObject::create): * inspector/InspectorAuditDOMObject.cpp: Added. (WebCore::InspectorAuditDOMObject::InspectorAuditDOMObject): * inspector/agents/page/PageAuditAgent.h: Added. * inspector/agents/page/PageAuditAgent.cpp: Added. (WebCore::PageAuditAgent::PageAuditAgent): (WebCore::PageAuditAgent::injectedScriptForEval): (WebCore::PageAuditAgent::populateAuditObject): (WebCore::PageAuditAgent::muteConsole): (WebCore::PageAuditAgent::unmuteConsole): * inspector/agents/worker/WorkerAuditAgent.h: Added. * inspector/agents/worker/WorkerAuditAgent.cpp: Added. (WebCore::WorkerAuditAgent::WorkerAuditAgent): (WebCore::WorkerAuditAgent::injectedScriptForEval): * inspector/InspectorController.cpp: (WebCore::InspectorController::createLazyAgents): * inspector/WorkerInspectorController.cpp: (WebCore::WorkerInspectorController::createLazyAgents): * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * Sources.txt: * UnifiedSources-input.xcfilelist: * WebCore.xcodeproj/project.pbxproj: Source/WebInspectorUI: Add `AuditAgent` getters and plumbing. * UserInterface/Protocol/Target.js: (WI.Target.prototype.get AuditAgent): Added. * UserInterface/Models/AuditTestCase.js: (WI.AuditTestCase.prototype.async run): * UserInterface/Controllers/AuditManager.js: (WI.AuditManager.prototype.async start): * .eslintrc: LayoutTests: * inspector/audit/resources/audit-utilities.js: (TestPage.registerInitializer.InspectorTest.Audit.setupAudit): Added. (TestPage.registerInitializer.InspectorTest.Audit.teardownAudit): Added. * inspector/audit/run.html: Added. * inspector/audit/run-expected.txt: Added. * inspector/audit/setup.html: Added. * inspector/audit/setup-expected.txt: Added. * inspector/audit/teardown.html: Added. * inspector/audit/teardown-expected.txt: Added. * inspector/canvas/create-context-2d-expected.txt: * inspector/canvas/create-context-bitmaprenderer-expected.txt: * inspector/canvas/create-context-webgl-expected.txt: * inspector/canvas/create-context-webgl2-expected.txt: * inspector/canvas/create-context-webmetal-expected.txt: * inspector/canvas/recording-2d-expected.txt: * inspector/canvas/recording-webgl-expected.txt: * inspector/canvas/recording-webgl-snapshots-expected.txt: * inspector/model/remote-object-expected.txt: * inspector/model/stack-trace-expected.txt: Canonical link: https://commits.webkit.org/207945@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239976 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-15 08:25:33 +00:00
$(PROJECT_DIR)/inspector/protocol/Audit.json
Web Inspector: replace `featureGuard` and `availability` with a combined `condition` that accepts any macro https://bugs.webkit.org/show_bug.cgi?id=210014 Reviewed by Brian Burg. Previously, the generated InspectorBackendCommands.js would include code for things that the backend doesn't actually support. By using actual macros and preprocessing that file, we can ensure that the frontend doesn't incorrectly think that something is supported by the page being inspected: - the `Canvas` commands and events related to shader programs/pipelines should only exist when the corresponding context type exists, namely `ENABLE(WEBGL)` and `ENABLE(WEBGPU)`. - iOS doesn't support showing rulers, so create a variant of `DOM.setInspectModeEnabled` that only exists for `PLATFORM(IOS_FAMILY)` that doesn't have the `showRulers` optional parameter, as well as removing `Page.setShowRulers` entirely. - setting the forced appearance should only be possible if dark mode is supported. - web archives only exist if CF is used. Source/JavaScriptCore: * inspector/protocol/CPUProfiler.json: * inspector/protocol/Canvas.json: * inspector/protocol/DOM.json: * inspector/protocol/IndexedDB.json: * inspector/protocol/Inspector.json: * inspector/protocol/Memory.json: * inspector/protocol/Page.json: * inspector/protocol/ServiceWorker.json: * Scripts/generate-derived-sources.sh: Set `CC` if it hasn't already been set. * DerivedSources.make: * DerivedSources-input.xcfilelist: Preprocess `InspectorBackendCommands.js.in` to get an accurate `InspectorBackendCommands.js` that follows the logic/description above. * CMakeLists.txt: Create a new `InspectorBackendCommands` target now that `InspectorBackendCommands.js` is generated seprately from the rest of the protocol files. * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * inspector/scripts/generate-inspector-protocol-bindings.py: (generate_from_specification): (generate_from_specification.load_specification): * inspector/scripts/codegen/generator.py: (Generator.__init__): (Generator.model): (Generator.set_generator_setting): (Generator.type_declarations_for_domain): (Generator.commands_for_domain): (Generator.events_for_domain): (Generator.wrap_with_guard_for_condition): Added. (Generator.platform): Deleted. (Generator.can_generate_platform): Deleted. (Generator.wrap_with_guard_for_domain): Deleted. (Generator.wrap_with_guard): Deleted. * inspector/scripts/codegen/models.py: (Frameworks): (Protocol.parse_domain): (Protocol.parse_type_declaration): (Protocol.parse_command): (Protocol.parse_event): (Domain.__init__): (TypeDeclaration.__init__): (Command.__init__): (Event.__init__): (Platform): Deleted. (Platform.__init__): Deleted. (Platform.fromString): Deleted. (Platforms): Deleted. (Platforms.__metaclass__): Deleted. (Platforms.__metaclass__.__iter__): Deleted. * inspector/scripts/codegen/generator_templates.py: Remove `platform` as it is handled by `condition`. * inspector/scripts/codegen/preprocess.pl: Copied from Source/WebCore/bindings/scripts/preprocessor.pm. * inspector/scripts/codegen/generate_js_backend_commands.py: (JSBackendCommandsGenerator.output_filename): (JSBackendCommandsGenerator.generate_domain): Output to `InspectorBackendCommands.js.in` that includes `#if` for preprocessing. * inspector/scripts/codegen/cpp_generator_templates.py: * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py: (CppAlternateBackendDispatcherHeaderGenerator.generate_output): (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain): (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: (CppBackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.Alternate): (CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain): (CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain): (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator.generate_output): (CppBackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain): (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain): (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_event): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain): (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (CppProtocolTypesHeaderGenerator._generate_versions): * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body): (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain): (CppProtocolTypesImplementationGenerator._generate_open_field_names): (CppProtocolTypesImplementationGenerator._generate_builders_for_domain): * inspector/scripts/codegen/objc_generator_templates.py: * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py: (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain): (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declaration_for_command): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain): (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_command): * inspector/scripts/codegen/generate_objc_header.py: (add_newline): (ObjCHeaderGenerator.generate_output): (ObjCHeaderGenerator._generate_forward_declarations): (ObjCHeaderGenerator._generate_enums): (ObjCHeaderGenerator._generate_types): (ObjCHeaderGenerator._generate_type_interface): (ObjCHeaderGenerator._generate_command_protocols): (ObjCHeaderGenerator._generate_single_command_protocol): (ObjCHeaderGenerator._generate_event_interfaces): (ObjCHeaderGenerator._generate_single_event_interface): (ObjCHeaderGenerator._generate_enum_for_platforms): Deleted. * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py: (add_newline): (ObjCProtocolTypeConversionsHeaderGenerator.generate_output): (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions): (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_for_platforms): Deleted. * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py: (add_newline): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_declaration): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation): * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: (add_newline): (ObjCProtocolTypesImplementationGenerator.generate_type_implementations): (ObjCProtocolTypesImplementationGenerator.generate_type_implementation): Wrap each domain, type, command, and event with the associated `condition` (if it exists). * inspector/scripts/tests/command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/command-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/commands-with-async-attribute.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json. * inspector/scripts/tests/commands-with-optional-call-return-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json. * inspector/scripts/tests/definitions-with-mac-platform.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json. * inspector/scripts/tests/domain-debuggableTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-debuggableTypes.json. * inspector/scripts/tests/domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/domain-targetTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetTypes.json. * inspector/scripts/tests/domains-with-varying-command-sizes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json. * inspector/scripts/tests/enum-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json. * inspector/scripts/tests/event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/event-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/events-with-optional-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json. * inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/command-targetType-matching-domain-debuggableType.json-result. * inspector/scripts/tests/expected/commands-with-async-attribute.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result. * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result. * inspector/scripts/tests/expected/definitions-with-mac-platform.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result. * inspector/scripts/tests/expected/domain-debuggableTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-debuggableTypes.json-result. * inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetType-matching-domain-debuggableType.json-result. * inspector/scripts/tests/expected/domain-targetTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetTypes.json-result. * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result. * inspector/scripts/tests/expected/enum-values.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result. * inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/event-targetType-matching-domain-debuggableType.json-result. * inspector/scripts/tests/expected/events-with-optional-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result. * inspector/scripts/tests/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error. * inspector/scripts/tests/expected/fail-on-command-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-command-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error. * inspector/scripts/tests/expected/fail-on-domain-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-domain-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-type-declarations.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error. * inspector/scripts/tests/expected/fail-on-enum-with-no-values.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error. * inspector/scripts/tests/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error. * inspector/scripts/tests/expected/fail-on-event-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-event-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-number-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error. * inspector/scripts/tests/expected/fail-on-number-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error. * inspector/scripts/tests/expected/fail-on-string-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error. * inspector/scripts/tests/expected/fail-on-string-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error. * inspector/scripts/tests/expected/fail-on-type-declaration-using-type-reference.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error. * inspector/scripts/tests/expected/fail-on-type-reference-as-primitive-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error. * inspector/scripts/tests/expected/fail-on-type-with-lowercase-name.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error. * inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-declaration.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error. * inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error. * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result. * inspector/scripts/tests/expected/same-type-id-different-domain.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result. * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result. * inspector/scripts/tests/expected/should-strip-comments.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/should-strip-comments.json-result. * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result. * inspector/scripts/tests/expected/type-declaration-array-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result. * inspector/scripts/tests/expected/type-declaration-enum-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result. * inspector/scripts/tests/expected/type-declaration-object-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result. * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result. * inspector/scripts/tests/expected/type-with-open-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result. * inspector/scripts/tests/expected/version.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/version.json-result. * inspector/scripts/tests/fail-on-command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/fail-on-command-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-type.json. * inspector/scripts/tests/fail-on-command-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-value.json. * inspector/scripts/tests/fail-on-domain-debuggableTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-type.json. * inspector/scripts/tests/fail-on-domain-debuggableTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-value.json. * inspector/scripts/tests/fail-on-domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/fail-on-domain-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-type.json. * inspector/scripts/tests/fail-on-domain-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-value.json. * inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json. * inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json. * inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json. * inspector/scripts/tests/fail-on-duplicate-type-declarations.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json. * inspector/scripts/tests/fail-on-duplicate-type-member-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json. * inspector/scripts/tests/fail-on-enum-with-no-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json. * inspector/scripts/tests/fail-on-event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/fail-on-event-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-type.json. * inspector/scripts/tests/fail-on-event-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-value.json. * inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json. * inspector/scripts/tests/fail-on-number-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json. * inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json. * inspector/scripts/tests/fail-on-string-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json. * inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json. * inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json. * inspector/scripts/tests/fail-on-type-with-lowercase-name.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json. * inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json. * inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json. * inspector/scripts/tests/generate-domains-with-feature-guards.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json. * inspector/scripts/tests/same-type-id-different-domain.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json. * inspector/scripts/tests/shadowed-optional-type-setters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json. * inspector/scripts/tests/should-strip-comments.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/should-strip-comments.json. * inspector/scripts/tests/type-declaration-aliased-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json. * inspector/scripts/tests/type-declaration-array-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json. * inspector/scripts/tests/type-declaration-enum-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json. * inspector/scripts/tests/type-declaration-object-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json. * inspector/scripts/tests/type-requiring-runtime-casts.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json. * inspector/scripts/tests/type-with-open-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-with-open-parameters.json. * inspector/scripts/tests/version.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/version.json. * inspector/scripts/tests/generic/definitions-with-mac-platform.json: Removed. * inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Removed. * inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Removed. * inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Removed. * inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Removed. * inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Removed. * inspector/scripts/tests/ios/definitions-with-mac-platform.json: Removed. * inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Removed. * inspector/scripts/tests/all/definitions-with-mac-platform.json: Removed. * inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Removed. Don't separate the inspector generator tests by platform. Source/WebCore: * inspector/InspectorInstrumentation.h: * inspector/InspectorInstrumentation.cpp: * inspector/agents/InspectorCanvasAgent.h: * inspector/agents/InspectorCanvasAgent.cpp: (WebCore::InspectorCanvasAgent::InspectorCanvasAgent): (WebCore::InspectorCanvasAgent::enable): (WebCore::InspectorCanvasAgent::startRecording): (WebCore::InspectorCanvasAgent::reset): (WebCore::InspectorCanvasAgent::unbindCanvas): * inspector/InspectorShaderProgram.h: * inspector/InspectorShaderProgram.cpp: (WebCore::InspectorShaderProgram::requestShaderSource): (WebCore::InspectorShaderProgram::updateShader): * inspector/agents/InspectorDOMAgent.h: * inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::setInspectModeEnabled): * inspector/agents/InspectorPageAgent.h: * inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::enable): (WebCore::InspectorPageAgent::disable): (WebCore::InspectorPageAgent::setForcedAppearance): (WebCore::InspectorPageAgent::archive): * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * inspector/InspectorFrontendHost.idl: Drive-by: replace the `#if` with the IDL `[Conditional=]`. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. Source/WebInspectorUI: * CMakeLists.txt: Add a dependency on the new `InspectorBackendCommands` target. * UserInterface/Base/Main.js: (WI._updateDownloadTabBarButton): Source/WebKit: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * DerivedSources.make: * PlatformMac.cmake: Remove `platform` as it is handled by `condition`. * UIProcess/Automation/Automation.json: Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. Tools: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * Scripts/webkitpy/inspector/main.py: (InspectorGeneratorTests.generate_from_json): (InspectorGeneratorTests.run_tests): (InspectorGeneratorTests.main): Canonical link: https://commits.webkit.org/225263@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262203 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-05-27 18:09:46 +00:00
$(PROJECT_DIR)/inspector/protocol/Browser.json
Web Inspector: CPU Usage Timeline https://bugs.webkit.org/show_bug.cgi?id=193730 <rdar://problem/46797201> Patch by Joseph Pecoraro <pecoraro@apple.com> on 2019-01-24 Reviewed by Devin Rousso. Source/JavaScriptCore: * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources.make: New files. * inspector/protocol/CPUProfiler.json: Added. New domain that follows the pattern of Memory/ScriptProfiler. * inspector/protocol/Timeline.json: New enum to auto-start a CPU instrument in the backend. Source/WebCore: Test: inspector/cpu-profiler/tracking.html * Sources.txt: * UnifiedSources-input.xcfilelist: * WebCore.xcodeproj/project.pbxproj: New files. * inspector/InspectorController.cpp: (WebCore::InspectorController::createLazyAgents): * inspector/InstrumentingAgents.cpp: (WebCore::InstrumentingAgents::reset): * inspector/InstrumentingAgents.h: (WebCore::InstrumentingAgents::inspectorCPUProfilerAgent const): (WebCore::InstrumentingAgents::setInspectorCPUProfilerAgent): Create and track the CPUProfilerAgent. * inspector/agents/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::toggleInstruments): (WebCore::InspectorTimelineAgent::toggleCPUInstrument): Handle backend auto-start of the CPU instrument / timeline. * inspector/agents/InspectorCPUProfilerAgent.h: * inspector/agents/InspectorCPUProfilerAgent.cpp: Added. (WebCore::InspectorCPUProfilerAgent::InspectorCPUProfilerAgent): (WebCore::InspectorCPUProfilerAgent::didCreateFrontendAndBackend): (WebCore::InspectorCPUProfilerAgent::willDestroyFrontendAndBackend): (WebCore::InspectorCPUProfilerAgent::startTracking): (WebCore::InspectorCPUProfilerAgent::stopTracking): (WebCore::InspectorCPUProfilerAgent::collectSample): CPUProfilerAgent uses the ResourceUsageThread to get CPU data. * inspector/agents/InspectorTimelineAgent.h: * inspector/agents/InspectorMemoryAgent.cpp: (WebCore::InspectorMemoryAgent::startTracking): (WebCore::InspectorMemoryAgent::collectSample): Update the MemoryAgent to collect only Memory data and use a more accurate sample timestamp. * page/ResourceUsageData.h: * page/ResourceUsageThread.cpp: (WebCore::ResourceUsageThread::addObserver): (WebCore::ResourceUsageThread::removeObserver): (WebCore::ResourceUsageThread::notifyObservers): (WebCore::ResourceUsageThread::recomputeCollectionMode): (WebCore::ResourceUsageThread::threadBody): * page/ResourceUsageThread.h: * page/cocoa/ResourceUsageOverlayCocoa.mm: (WebCore::ResourceUsageOverlay::platformInitialize): * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::ResourceUsageThread::platformCollectCPUData): (WebCore::ResourceUsageThread::platformCollectMemoryData): (WebCore::ResourceUsageThread::platformThreadBody): Deleted. * page/linux/ResourceUsageOverlayLinux.cpp: (WebCore::ResourceUsageOverlay::platformInitialize): * page/linux/ResourceUsageThreadLinux.cpp: (WebCore::ResourceUsageThread::platformCollectCPUData): (WebCore::ResourceUsageThread::platformCollectMemoryData): (WebCore::ResourceUsageThread::platformThreadBody): Give each observer their own collection mode. The ResourceUsageThread will then collect data that is the union of all of the active observers. This allows collecting CPU and Memory data separately, reducing the cost of each when gathered individually. Source/WebInspectorUI: CPU Usage is gathered in the backend twice a second, the frequency of the ResourceUsageThread in WebCore. The frontend displays cpu usage in a few ways in the Timeline. We use a column chart in the timeline overview to display the frequency and relative distance of samples. This helps show if the samples were close together or far apart, which indicates how meaningful they will be at a particular scale. We use a line chart in the timeline detail view which will be easier to see the changes over a particular time range selection. * Localizations/en.lproj/localizedStrings.js: New strings. * UserInterface/Main.html: * UserInterface/Base/Main.js: (WI.loaded): * UserInterface/Test.html: * UserInterface/Test/Test.js: (WI.loaded): * UserInterface/Protocol/CPUProfilerObserver.js: (WI.CPUProfilerObserver.prototype.trackingStart): (WI.CPUProfilerObserver.prototype.trackingUpdate): (WI.CPUProfilerObserver.prototype.trackingComplete): (WI.CPUProfilerObserver): New files and default registration. * UserInterface/Protocol/Target.js: (WI.Target.prototype.get CPUProfilerAgent): New Agent. * UserInterface/Controllers/TimelineManager.js: (WI.TimelineManager.availableTimelineTypes): (WI.TimelineManager.prototype.cpuProfilerTrackingStarted): (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated): (WI.TimelineManager.prototype.cpuProfilerTrackingCompleted): (WI.TimelineManager.prototype._updateAutoCaptureInstruments): (WI.TimelineManager.prototype.memoryTrackingStart): Renamed. (WI.TimelineManager.prototype.memoryTrackingUpdate): Renamed. (WI.TimelineManager.prototype.memoryTrackingComplete): Renamed. * UserInterface/Models/CPUInstrument.js: (WI.CPUInstrument): (WI.CPUInstrument.supported): (WI.CPUInstrument.prototype.get timelineRecordType): (WI.CPUInstrument.prototype.startInstrumentation): (WI.CPUInstrument.prototype.stopInstrumentation): * UserInterface/Models/CPUTimelineRecord.js: (WI.CPUTimelineRecord): (WI.CPUTimelineRecord.prototype.get timestamp): (WI.CPUTimelineRecord.prototype.get usage): * UserInterface/Models/Instrument.js: (WI.Instrument.createForTimelineType): * UserInterface/Models/TimelineRecord.js: * UserInterface/Models/TimelineRecording.js: (WI.TimelineRecording.prototype.addRecord): Expose a new CPU instrument and timeline. * UserInterface/Views/ColumnChart.js: Added. (WI.ColumnChart): (WI.ColumnChart.prototype.get element): (WI.ColumnChart.prototype.get bars): (WI.ColumnChart.prototype.get size): (WI.ColumnChart.prototype.set size): (WI.ColumnChart.prototype.addBar): (WI.ColumnChart.prototype.clear): (WI.ColumnChart.prototype.needsLayout): (WI.ColumnChart.prototype.updateLayout): View that will draw vertical bars with independent widths. This is meant to be used similiar to WI.LineChart. * UserInterface/Images/CPUInstrument.svg: Added. * UserInterface/Views/Variables.css: (:root): CPU timeline colors and icon. * UserInterface/Views/CPUTimelineOverviewGraph.css: (body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,): (.timeline-overview-graph.cpu): (.timeline-overview-graph.cpu > .legend): (body[dir=ltr] .timeline-overview-graph.cpu > .legend): (body[dir=rtl] .timeline-overview-graph.cpu > .legend): (.timeline-overview-graph:nth-child(even) > .legend): (body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart): (.timeline-overview-graph.cpu > .bar-chart > svg > g > rect): * UserInterface/Views/CPUTimelineOverviewGraph.js: Added. (WI.CPUTimelineOverviewGraph): (WI.CPUTimelineOverviewGraph.prototype.get height): (WI.CPUTimelineOverviewGraph.prototype.reset): (WI.CPUTimelineOverviewGraph.prototype.layout.xScale): (WI.CPUTimelineOverviewGraph.prototype.layout.yScale): (WI.CPUTimelineOverviewGraph.prototype.layout.yScaleForRecord): (WI.CPUTimelineOverviewGraph.prototype.layout): (WI.CPUTimelineOverviewGraph.prototype._updateLegend): (WI.CPUTimelineOverviewGraph.prototype._cpuTimelineRecordAdded): * UserInterface/Views/CPUTimelineView.css: (.timeline-view.cpu): (.timeline-view.cpu > .content): (.timeline-view.cpu > .content .subtitle): (.timeline-view.cpu > .content > .details): (.timeline-view.cpu > .content > .details > .timeline-ruler): (body[dir=ltr] .timeline-view.cpu > .content > .details > .timeline-ruler): (body[dir=rtl] .timeline-view.cpu > .content > .details > .timeline-ruler): (.timeline-view.cpu > .content > .details > .subtitle): (.cpu-usage-view .line-chart > svg > path): (.timeline-view.cpu .legend > .row > .swatch.current): * UserInterface/Views/CPUTimelineView.js: Added. (WI.CPUTimelineView): (WI.CPUTimelineView.prototype.shown): (WI.CPUTimelineView.prototype.hidden): (WI.CPUTimelineView.prototype.closed): (WI.CPUTimelineView.prototype.reset): (WI.CPUTimelineView.prototype.get scrollableElements): (WI.CPUTimelineView.prototype.get showsFilterBar): (WI.CPUTimelineView.prototype.layout.layoutView): (WI.CPUTimelineView.prototype.layout.xScale): (WI.CPUTimelineView.prototype.layout.yScale): (WI.CPUTimelineView.prototype.layout): (WI.CPUTimelineView.prototype._cpuTimelineRecordAdded): * UserInterface/Views/CPUUsageView.css: (.cpu-usage-view): (.cpu-usage-view > .details): (body[dir=ltr] .cpu-usage-view > .details): (body[dir=rtl] .cpu-usage-view > .details): (.cpu-usage-view > .graph): (body[dir=rtl] .cpu-usage-view > .graph): * UserInterface/Views/CPUUsageView.js: (WI.CPUUsageView): (WI.CPUUsageView.prototype.get element): (WI.CPUUsageView.prototype.clear): (WI.CPUUsageView.prototype.layoutWithDataPoints): (WI.CPUUsageView.prototype._updateDetails): * UserInterface/Views/ContentView.js: (WI.ContentView.createFromRepresentedObject): * UserInterface/Views/TimelineIcons.css: (.cpu-icon .icon): * UserInterface/Views/TimelineOverviewGraph.js: (WI.TimelineOverviewGraph.createForTimeline): * UserInterface/Views/TimelineTabContentView.js: (WI.TimelineTabContentView.displayNameForTimelineType): (WI.TimelineTabContentView.iconClassNameForTimelineType): (WI.TimelineTabContentView.genericClassNameForTimelineType): (WI.TimelineTabContentView.iconClassNameForRecord): (WI.TimelineTabContentView.displayNameForRecord): Timeline views for CPU usage. * UserInterface/Views/MemoryCategoryView.js: (WI.MemoryCategoryView): * UserInterface/Views/MemoryTimelineView.js: (WI.MemoryTimelineView.createChartContainer): (WI.MemoryTimelineView): (WI.MemoryTimelineView.prototype._clearMaxComparisonLegend): Minor updates to style and comments. LayoutTests: * inspector/cpu-profiler/tracking-expected.txt: Added. * inspector/cpu-profiler/tracking.html: Added. Test the CPUProfiler domain emits events. * inspector/heap/tracking-expected.txt: * inspector/heap/tracking.html: * inspector/memory/tracking-expected.txt: * inspector/memory/tracking.html: * inspector/script-profiler/tracking-expected.txt: * inspector/script-profiler/tracking.html: Update test naming. * platform/win/TestExpectations: Skip on platforms without RESOURCE_USAGE. Canonical link: https://commits.webkit.org/208301@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-01-25 01:06:17 +00:00
$(PROJECT_DIR)/inspector/protocol/CPUProfiler.json
$(PROJECT_DIR)/inspector/protocol/CSS.json
$(PROJECT_DIR)/inspector/protocol/Canvas.json
$(PROJECT_DIR)/inspector/protocol/Console.json
$(PROJECT_DIR)/inspector/protocol/DOM.json
$(PROJECT_DIR)/inspector/protocol/DOMDebugger.json
$(PROJECT_DIR)/inspector/protocol/DOMStorage.json
$(PROJECT_DIR)/inspector/protocol/Database.json
$(PROJECT_DIR)/inspector/protocol/Debugger.json
$(PROJECT_DIR)/inspector/protocol/GenericTypes.json
$(PROJECT_DIR)/inspector/protocol/Heap.json
$(PROJECT_DIR)/inspector/protocol/IndexedDB.json
$(PROJECT_DIR)/inspector/protocol/Inspector.json
$(PROJECT_DIR)/inspector/protocol/LayerTree.json
$(PROJECT_DIR)/inspector/protocol/Memory.json
$(PROJECT_DIR)/inspector/protocol/Network.json
$(PROJECT_DIR)/inspector/protocol/Page.json
$(PROJECT_DIR)/inspector/protocol/Recording.json
$(PROJECT_DIR)/inspector/protocol/Runtime.json
$(PROJECT_DIR)/inspector/protocol/ScriptProfiler.json
$(PROJECT_DIR)/inspector/protocol/Security.json
$(PROJECT_DIR)/inspector/protocol/ServiceWorker.json
$(PROJECT_DIR)/inspector/protocol/Target.json
$(PROJECT_DIR)/inspector/protocol/Timeline.json
$(PROJECT_DIR)/inspector/protocol/Worker.json
$(PROJECT_DIR)/inspector/scripts/codegen/__init__.py
$(PROJECT_DIR)/inspector/scripts/codegen/cpp_generator.py
$(PROJECT_DIR)/inspector/scripts/codegen/cpp_generator_templates.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_cpp_protocol_types_header.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py
$(PROJECT_DIR)/inspector/scripts/codegen/generate_js_backend_commands.py
$(PROJECT_DIR)/inspector/scripts/codegen/generator.py
$(PROJECT_DIR)/inspector/scripts/codegen/generator_templates.py
$(PROJECT_DIR)/inspector/scripts/codegen/models.py
Web Inspector: replace `featureGuard` and `availability` with a combined `condition` that accepts any macro https://bugs.webkit.org/show_bug.cgi?id=210014 Reviewed by Brian Burg. Previously, the generated InspectorBackendCommands.js would include code for things that the backend doesn't actually support. By using actual macros and preprocessing that file, we can ensure that the frontend doesn't incorrectly think that something is supported by the page being inspected: - the `Canvas` commands and events related to shader programs/pipelines should only exist when the corresponding context type exists, namely `ENABLE(WEBGL)` and `ENABLE(WEBGPU)`. - iOS doesn't support showing rulers, so create a variant of `DOM.setInspectModeEnabled` that only exists for `PLATFORM(IOS_FAMILY)` that doesn't have the `showRulers` optional parameter, as well as removing `Page.setShowRulers` entirely. - setting the forced appearance should only be possible if dark mode is supported. - web archives only exist if CF is used. Source/JavaScriptCore: * inspector/protocol/CPUProfiler.json: * inspector/protocol/Canvas.json: * inspector/protocol/DOM.json: * inspector/protocol/IndexedDB.json: * inspector/protocol/Inspector.json: * inspector/protocol/Memory.json: * inspector/protocol/Page.json: * inspector/protocol/ServiceWorker.json: * Scripts/generate-derived-sources.sh: Set `CC` if it hasn't already been set. * DerivedSources.make: * DerivedSources-input.xcfilelist: Preprocess `InspectorBackendCommands.js.in` to get an accurate `InspectorBackendCommands.js` that follows the logic/description above. * CMakeLists.txt: Create a new `InspectorBackendCommands` target now that `InspectorBackendCommands.js` is generated seprately from the rest of the protocol files. * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * inspector/scripts/generate-inspector-protocol-bindings.py: (generate_from_specification): (generate_from_specification.load_specification): * inspector/scripts/codegen/generator.py: (Generator.__init__): (Generator.model): (Generator.set_generator_setting): (Generator.type_declarations_for_domain): (Generator.commands_for_domain): (Generator.events_for_domain): (Generator.wrap_with_guard_for_condition): Added. (Generator.platform): Deleted. (Generator.can_generate_platform): Deleted. (Generator.wrap_with_guard_for_domain): Deleted. (Generator.wrap_with_guard): Deleted. * inspector/scripts/codegen/models.py: (Frameworks): (Protocol.parse_domain): (Protocol.parse_type_declaration): (Protocol.parse_command): (Protocol.parse_event): (Domain.__init__): (TypeDeclaration.__init__): (Command.__init__): (Event.__init__): (Platform): Deleted. (Platform.__init__): Deleted. (Platform.fromString): Deleted. (Platforms): Deleted. (Platforms.__metaclass__): Deleted. (Platforms.__metaclass__.__iter__): Deleted. * inspector/scripts/codegen/generator_templates.py: Remove `platform` as it is handled by `condition`. * inspector/scripts/codegen/preprocess.pl: Copied from Source/WebCore/bindings/scripts/preprocessor.pm. * inspector/scripts/codegen/generate_js_backend_commands.py: (JSBackendCommandsGenerator.output_filename): (JSBackendCommandsGenerator.generate_domain): Output to `InspectorBackendCommands.js.in` that includes `#if` for preprocessing. * inspector/scripts/codegen/cpp_generator_templates.py: * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py: (CppAlternateBackendDispatcherHeaderGenerator.generate_output): (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain): (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py: (CppBackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.Alternate): (CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain): (CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command): (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain): (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command): * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py: (CppBackendDispatcherImplementationGenerator.generate_output): (CppBackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain): (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain): (CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain): (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py: (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain): (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_event): * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py: (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain): (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event): * inspector/scripts/codegen/generate_cpp_protocol_types_header.py: (CppProtocolTypesHeaderGenerator._generate_versions): * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py: (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body): (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain): (CppProtocolTypesImplementationGenerator._generate_open_field_names): (CppProtocolTypesImplementationGenerator._generate_builders_for_domain): * inspector/scripts/codegen/objc_generator_templates.py: * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py: (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain): (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declaration_for_command): * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py: (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain): (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_command): * inspector/scripts/codegen/generate_objc_header.py: (add_newline): (ObjCHeaderGenerator.generate_output): (ObjCHeaderGenerator._generate_forward_declarations): (ObjCHeaderGenerator._generate_enums): (ObjCHeaderGenerator._generate_types): (ObjCHeaderGenerator._generate_type_interface): (ObjCHeaderGenerator._generate_command_protocols): (ObjCHeaderGenerator._generate_single_command_protocol): (ObjCHeaderGenerator._generate_event_interfaces): (ObjCHeaderGenerator._generate_single_event_interface): (ObjCHeaderGenerator._generate_enum_for_platforms): Deleted. * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py: (add_newline): (ObjCProtocolTypeConversionsHeaderGenerator.generate_output): (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions): (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_for_platforms): Deleted. * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py: (add_newline): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_declaration): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation): (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation): * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py: (add_newline): (ObjCProtocolTypesImplementationGenerator.generate_type_implementations): (ObjCProtocolTypesImplementationGenerator.generate_type_implementation): Wrap each domain, type, command, and event with the associated `condition` (if it exists). * inspector/scripts/tests/command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/command-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/commands-with-async-attribute.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json. * inspector/scripts/tests/commands-with-optional-call-return-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json. * inspector/scripts/tests/definitions-with-mac-platform.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json. * inspector/scripts/tests/domain-debuggableTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-debuggableTypes.json. * inspector/scripts/tests/domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/domain-targetTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetTypes.json. * inspector/scripts/tests/domains-with-varying-command-sizes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json. * inspector/scripts/tests/enum-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json. * inspector/scripts/tests/event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/event-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/events-with-optional-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json. * inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/command-targetType-matching-domain-debuggableType.json-result. * inspector/scripts/tests/expected/commands-with-async-attribute.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result. * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result. * inspector/scripts/tests/expected/definitions-with-mac-platform.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result. * inspector/scripts/tests/expected/domain-debuggableTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-debuggableTypes.json-result. * inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetType-matching-domain-debuggableType.json-result. * inspector/scripts/tests/expected/domain-targetTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetTypes.json-result. * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result. * inspector/scripts/tests/expected/enum-values.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result. * inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/event-targetType-matching-domain-debuggableType.json-result. * inspector/scripts/tests/expected/events-with-optional-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result. * inspector/scripts/tests/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error. * inspector/scripts/tests/expected/fail-on-command-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-command-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error. * inspector/scripts/tests/expected/fail-on-domain-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-domain-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-type-declarations.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error. * inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error. * inspector/scripts/tests/expected/fail-on-enum-with-no-values.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error. * inspector/scripts/tests/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error. * inspector/scripts/tests/expected/fail-on-event-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-type.json-error. * inspector/scripts/tests/expected/fail-on-event-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-value.json-error. * inspector/scripts/tests/expected/fail-on-number-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error. * inspector/scripts/tests/expected/fail-on-number-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error. * inspector/scripts/tests/expected/fail-on-string-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error. * inspector/scripts/tests/expected/fail-on-string-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error. * inspector/scripts/tests/expected/fail-on-type-declaration-using-type-reference.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error. * inspector/scripts/tests/expected/fail-on-type-reference-as-primitive-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error. * inspector/scripts/tests/expected/fail-on-type-with-lowercase-name.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error. * inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-declaration.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error. * inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error. * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result. * inspector/scripts/tests/expected/same-type-id-different-domain.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result. * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result. * inspector/scripts/tests/expected/should-strip-comments.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/should-strip-comments.json-result. * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result. * inspector/scripts/tests/expected/type-declaration-array-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result. * inspector/scripts/tests/expected/type-declaration-enum-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result. * inspector/scripts/tests/expected/type-declaration-object-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result. * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result. * inspector/scripts/tests/expected/type-with-open-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result. * inspector/scripts/tests/expected/version.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/version.json-result. * inspector/scripts/tests/fail-on-command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/fail-on-command-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-type.json. * inspector/scripts/tests/fail-on-command-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-value.json. * inspector/scripts/tests/fail-on-domain-debuggableTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-type.json. * inspector/scripts/tests/fail-on-domain-debuggableTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-value.json. * inspector/scripts/tests/fail-on-domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/fail-on-domain-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-type.json. * inspector/scripts/tests/fail-on-domain-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-value.json. * inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json. * inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json. * inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json. * inspector/scripts/tests/fail-on-duplicate-type-declarations.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json. * inspector/scripts/tests/fail-on-duplicate-type-member-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json. * inspector/scripts/tests/fail-on-enum-with-no-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json. * inspector/scripts/tests/fail-on-event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetType-matching-domain-debuggableType.json. * inspector/scripts/tests/fail-on-event-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-type.json. * inspector/scripts/tests/fail-on-event-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-value.json. * inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json. * inspector/scripts/tests/fail-on-number-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json. * inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json. * inspector/scripts/tests/fail-on-string-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json. * inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json. * inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json. * inspector/scripts/tests/fail-on-type-with-lowercase-name.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json. * inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json. * inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json. * inspector/scripts/tests/generate-domains-with-feature-guards.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json. * inspector/scripts/tests/same-type-id-different-domain.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json. * inspector/scripts/tests/shadowed-optional-type-setters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json. * inspector/scripts/tests/should-strip-comments.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/should-strip-comments.json. * inspector/scripts/tests/type-declaration-aliased-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json. * inspector/scripts/tests/type-declaration-array-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json. * inspector/scripts/tests/type-declaration-enum-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json. * inspector/scripts/tests/type-declaration-object-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json. * inspector/scripts/tests/type-requiring-runtime-casts.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json. * inspector/scripts/tests/type-with-open-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-with-open-parameters.json. * inspector/scripts/tests/version.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/version.json. * inspector/scripts/tests/generic/definitions-with-mac-platform.json: Removed. * inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Removed. * inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Removed. * inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Removed. * inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Removed. * inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Removed. * inspector/scripts/tests/ios/definitions-with-mac-platform.json: Removed. * inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Removed. * inspector/scripts/tests/all/definitions-with-mac-platform.json: Removed. * inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Removed. Don't separate the inspector generator tests by platform. Source/WebCore: * inspector/InspectorInstrumentation.h: * inspector/InspectorInstrumentation.cpp: * inspector/agents/InspectorCanvasAgent.h: * inspector/agents/InspectorCanvasAgent.cpp: (WebCore::InspectorCanvasAgent::InspectorCanvasAgent): (WebCore::InspectorCanvasAgent::enable): (WebCore::InspectorCanvasAgent::startRecording): (WebCore::InspectorCanvasAgent::reset): (WebCore::InspectorCanvasAgent::unbindCanvas): * inspector/InspectorShaderProgram.h: * inspector/InspectorShaderProgram.cpp: (WebCore::InspectorShaderProgram::requestShaderSource): (WebCore::InspectorShaderProgram::updateShader): * inspector/agents/InspectorDOMAgent.h: * inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::setInspectModeEnabled): * inspector/agents/InspectorPageAgent.h: * inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::enable): (WebCore::InspectorPageAgent::disable): (WebCore::InspectorPageAgent::setForcedAppearance): (WebCore::InspectorPageAgent::archive): * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * inspector/InspectorFrontendHost.idl: Drive-by: replace the `#if` with the IDL `[Conditional=]`. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. Source/WebInspectorUI: * CMakeLists.txt: Add a dependency on the new `InspectorBackendCommands` target. * UserInterface/Base/Main.js: (WI._updateDownloadTabBarButton): Source/WebKit: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * DerivedSources.make: * PlatformMac.cmake: Remove `platform` as it is handled by `condition`. * UIProcess/Automation/Automation.json: Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. Tools: * Configurations/FeatureDefines.xcconfig: Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h. * Scripts/webkitpy/inspector/main.py: (InspectorGeneratorTests.generate_from_json): (InspectorGeneratorTests.run_tests): (InspectorGeneratorTests.main): Canonical link: https://commits.webkit.org/225263@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262203 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-05-27 18:09:46 +00:00
$(PROJECT_DIR)/inspector/scripts/codegen/preprocess.pl
$(PROJECT_DIR)/inspector/scripts/generate-inspector-protocol-bindings.py
$(PROJECT_DIR)/parser/Keywords.table
$(PROJECT_DIR)/runtime/ArrayConstructor.cpp
$(PROJECT_DIR)/runtime/AsyncFromSyncIteratorPrototype.cpp
$(PROJECT_DIR)/runtime/AsyncGeneratorPrototype.cpp
$(PROJECT_DIR)/runtime/BigIntConstructor.cpp
$(PROJECT_DIR)/runtime/BigIntPrototype.cpp
$(PROJECT_DIR)/runtime/BooleanPrototype.cpp
$(PROJECT_DIR)/runtime/DateConstructor.cpp
$(PROJECT_DIR)/runtime/DatePrototype.cpp
$(PROJECT_DIR)/runtime/ErrorPrototype.cpp
$(PROJECT_DIR)/runtime/GeneratorPrototype.cpp
$(PROJECT_DIR)/runtime/IntlCollatorConstructor.cpp
$(PROJECT_DIR)/runtime/IntlCollatorPrototype.cpp
$(PROJECT_DIR)/runtime/IntlDateTimeFormatConstructor.cpp
$(PROJECT_DIR)/runtime/IntlDateTimeFormatPrototype.cpp
[ECMA-402] Implement Intl.DisplayNames https://bugs.webkit.org/show_bug.cgi?id=209779 Reviewed by Ross Kirsling. JSTests: * stress/intl-displaynames.js: Added. (shouldBe): (shouldThrow): (vm.icuVersion): * stress/intl-parse-unicode-subtags.js: Added. (shouldBe): (shouldThrow): (vm.icuVersion): * test262/config.yaml: Source/JavaScriptCore: This patch implements Intl.DisplayNames behind useIntlDisplayNames=1 flag. Intl.DisplayNames can offer readable "display-name" for ICU language, script, region, currency codes. For example, it can offer "United States" string for "US" region code. We use ICU ULocaleDisplayNames to implement it, except for currency since ULocaleDisplayNames is not supporting currency correctly: it ignores "long", "short", and "narrow" style configurations. We need to call ucurr_getName directly. This patch appropriately adds unicode-language-id parsing in IntlLocale.cpp so that we can validate language id when it is passed to `Intl.DisplayNames#of` as defined in the spec. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * runtime/CommonIdentifiers.h: * runtime/IntlDisplayNames.cpp: Added. (JSC::IntlDisplayNames::create): (JSC::IntlDisplayNames::createStructure): (JSC::IntlDisplayNames::IntlDisplayNames): (JSC::IntlDisplayNames::finishCreation): (JSC::IntlDisplayNames::initializeDisplayNames): (JSC::IntlDisplayNames::of const): (JSC::IntlDisplayNames::resolvedOptions const): (JSC::IntlDisplayNames::styleString): (JSC::IntlDisplayNames::typeString): (JSC::IntlDisplayNames::fallbackString): * runtime/IntlDisplayNames.h: Copied from Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.h. * runtime/IntlDisplayNamesConstructor.cpp: Added. (JSC::IntlDisplayNamesConstructor::create): (JSC::IntlDisplayNamesConstructor::createStructure): (JSC::IntlDisplayNamesConstructor::IntlDisplayNamesConstructor): (JSC::IntlDisplayNamesConstructor::finishCreation): (JSC::constructIntlDisplayNames): (JSC::callIntlDisplayNames): (JSC::IntlDisplayNamesConstructorSupportedLocalesOf): * runtime/IntlDisplayNamesConstructor.h: Added. * runtime/IntlDisplayNamesPrototype.cpp: Added. (JSC::IntlDisplayNamesPrototype::create): (JSC::IntlDisplayNamesPrototype::createStructure): (JSC::IntlDisplayNamesPrototype::IntlDisplayNamesPrototype): (JSC::IntlDisplayNamesPrototype::finishCreation): (JSC::IntlDisplayNamesPrototypeFuncOf): (JSC::IntlDisplayNamesPrototypeFuncResolvedOptions): * runtime/IntlDisplayNamesPrototype.h: Added. * runtime/IntlLocale.cpp: (JSC::isUnicodeLanguageSubtag): Deleted. (JSC::isUnicodeScriptSubtag): Deleted. (JSC::isUnicodeRegionSubtag): Deleted. * runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::initializeNumberFormat): * runtime/IntlObject.cpp: (JSC::createDisplayNamesConstructor): (JSC::IntlObject::finishCreation): (JSC::isUnicodeLanguageSubtag): (JSC::isUnicodeScriptSubtag): (JSC::isUnicodeRegionSubtag): (JSC::isUnicodeVariantSubtag): (JSC::isUnicodeLanguageId): (JSC::isWellFormedCurrencyCode): * runtime/IntlObject.h: (JSC::intlDisplayNamesAvailableLocales): * runtime/IntlRelativeTimeFormat.h: * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::displayNamesStructure): * runtime/OptionsList.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: Source/WTF: * wtf/text/StringView.h: Canonical link: https://commits.webkit.org/227385@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@264639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-07-21 00:04:06 +00:00
$(PROJECT_DIR)/runtime/IntlDisplayNamesConstructor.cpp
$(PROJECT_DIR)/runtime/IntlDisplayNamesPrototype.cpp
[ECMA-402] Implement Intl.ListFormat https://bugs.webkit.org/show_bug.cgi?id=209775 Reviewed by Ross Kirsling. JSTests: * stress/intl-listformat.js: Added. (shouldBe): (shouldNotThrow): (shouldThrow): (test.DerivedListFormat): (test.get shouldThrow): (test): Source/JavaScriptCore: This patch implements Intl.ListFormat. Intl.ListFormat requires ulistfmt_openForType. But it is available after ICU 67, and it is draft (unstable) API in ICU 67. But now, this function is stable in ICU 68 without signature change and no major change happened to this API. Thus, we can assume that this API signature won't be changed. We specially undef U_HIDE_DRAFT_API for unicode/ulistformatter.h to use this draft (but stable) APIs. While macOS / iOS shipping ICU (AppleICU) is ICU 66, AppleICU has ulistfmt_openForType and related APIs even in ICU 66. We use these APIs in AppleICU 66 to implement Intl.ListFormat. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * runtime/CommonIdentifiers.h: * runtime/IntlDisplayNames.cpp: (JSC::IntlDisplayNames::initializeDisplayNames): * runtime/IntlListFormat.cpp: Added. (JSC::UListFormatterDeleter::operator()): (JSC::IntlListFormat::create): (JSC::IntlListFormat::createStructure): (JSC::IntlListFormat::IntlListFormat): (JSC::IntlListFormat::finishCreation): (JSC::IntlListFormat::initializeListFormat): (JSC::stringListFromIterable): (JSC::ListFormatInput::ListFormatInput): (JSC::ListFormatInput::size const): (JSC::ListFormatInput::stringPointers const): (JSC::ListFormatInput::stringLengths const): (JSC::IntlListFormat::format const): (JSC::IntlListFormat::formatToParts const): (JSC::IntlListFormat::resolvedOptions const): (JSC::IntlListFormat::styleString): (JSC::IntlListFormat::typeString): * runtime/IntlListFormat.h: Added. * runtime/IntlListFormatConstructor.cpp: Added. (JSC::IntlListFormatConstructor::create): (JSC::IntlListFormatConstructor::createStructure): (JSC::IntlListFormatConstructor::IntlListFormatConstructor): (JSC::IntlListFormatConstructor::finishCreation): (JSC::JSC_DEFINE_HOST_FUNCTION): * runtime/IntlListFormatConstructor.h: Added. * runtime/IntlListFormatPrototype.cpp: Added. (JSC::IntlListFormatPrototype::create): (JSC::IntlListFormatPrototype::createStructure): (JSC::IntlListFormatPrototype::IntlListFormatPrototype): (JSC::IntlListFormatPrototype::finishCreation): (JSC::JSC_DEFINE_HOST_FUNCTION): * runtime/IntlListFormatPrototype.h: Added. * runtime/IntlObject.cpp: (JSC::createListFormatConstructor): (JSC::IntlObject::finishCreation): * runtime/IntlObject.h: (JSC::intlListFormatAvailableLocales): * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::listFormatStructure): * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: Canonical link: https://commits.webkit.org/230860@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-25 06:20:47 +00:00
$(PROJECT_DIR)/runtime/IntlListFormatConstructor.cpp
$(PROJECT_DIR)/runtime/IntlListFormatPrototype.cpp
[ECMA-402] Implement Intl.Locale https://bugs.webkit.org/show_bug.cgi?id=209772 Reviewed by Darin Adler and Saam Barati. JSTests: * stress/intl-locale.js: Added. * stress/intl-locale-as-intl-param.js: Added. * test262/config.yaml: Enable Intl.Locale feature with flag. * test262/expectations.yaml: Mark known failures. None of these should be specific to Intl.Locale. Source/JavaScriptCore: This patch implements the recent ECMA-402 feature Intl.Locale. This is effectively a wrapper class for all the pieces of uloc.h that ECMA-402 cares about. (If we used the C++ API, there's a LocaleBuilder that would make this much easier, but in sticking to the C API, it's basically an object that has an ICU localeID as data and uloc_* functions as methods / getters. Furthermore, there's no way to modify said data, so every method / getter can be lazy and cache its result.) Usage example: >>> locale = new Intl.Locale('ja', { region: 'JP', calendar: 'japanese', numeric: false }) "ja-JP-u-ca-japanese-kn-false" >>> locale.baseName "ja-JP" Intl.Locale can be used anywhere that Intl APIs accept locale strings as input parameters, and is moreover hoped to be the class by which future Web APIs will handle the current locale. This feature is runtime-guarded by the `useIntlLocale` option. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * runtime/CommonIdentifiers.h: * runtime/IntlLocale.cpp: Added. * runtime/IntlLocale.h: Added. * runtime/IntlLocaleConstructor.cpp: Added. * runtime/IntlLocaleConstructor.h: Added. * runtime/IntlLocalePrototype.cpp: Added. * runtime/IntlLocalePrototype.h: Added. * runtime/IntlObject.cpp: (JSC::IntlObject::finishCreation): (JSC::localeIDBufferForLanguageTag): Added. (JSC::languageTagForLocaleID): Renamed from JSC::convertICULocaleToBCP47LanguageTag. (JSC::intlAvailableLocales): (JSC::intlCollatorAvailableLocales): (JSC::canonicalizeLanguageTag): (JSC::canonicalizeLocaleList): (JSC::defaultLocale): * runtime/IntlObject.h: * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::collatorStructure): (JSC::JSGlobalObject::numberFormatStructure): (JSC::JSGlobalObject::localeStructure): * runtime/OptionsList.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: Tools: * Scripts/run-jsc-stress-tests: Add runIntlLocaleEnabled. Canonical link: https://commits.webkit.org/224388@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@261215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-05-06 06:01:07 +00:00
$(PROJECT_DIR)/runtime/IntlLocalePrototype.cpp
$(PROJECT_DIR)/runtime/IntlNumberFormatConstructor.cpp
$(PROJECT_DIR)/runtime/IntlNumberFormatPrototype.cpp
$(PROJECT_DIR)/runtime/IntlObject.cpp
$(PROJECT_DIR)/runtime/IntlPluralRulesConstructor.cpp
$(PROJECT_DIR)/runtime/IntlPluralRulesPrototype.cpp
[ECMA-402] Intl.RelativeTimeFormat missing in WebKit https://bugs.webkit.org/show_bug.cgi?id=209770 Reviewed by Darin Adler. JSTests: * stress/intl-relativetimeformat.js: Added. * test262/config.yaml: Enable Intl.RelativeTimeFormat feature with flag. * test262/expectations.yaml: Mark known failures. Test for locale validation is not specific to RelativeTimeFormat and should be investigated separately. Tests for Polish appear to be wrong and should be corrected in test262. Source/JavaScriptCore: This patch implements the recent ECMA-402 feature Intl.RelativeTimeFormat. RelativeTimeFormat has format / formatToParts functions like NumberFormat / DateTimeFormat and is used to turn a number and unit into a formatted relative time string, e.g.: new Intl.RelativeTimeFormat('en').format(10, 'day') > 'in 10 days' new Intl.RelativeTimeFormat('en', { numeric: 'auto' }).format(0, 'day') > 'today' Implementation of RelativeTimeFormat#formatToParts makes direct use of NumberFormat#formatToParts, as the relative time string consists of at most one formatted number with optional literal text on either side. This feature is runtime-guarded by the `useIntlRelativeTimeFormat` option. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * runtime/CommonIdentifiers.h: * runtime/IntlRelativeTimeFormat.cpp: Added. * runtime/IntlRelativeTimeFormat.h: Added. * runtime/IntlRelativeTimeFormatConstructor.cpp: Added. * runtime/IntlRelativeTimeFormatConstructor.h: Added. * runtime/IntlRelativeTimeFormatPrototype.cpp: Added. * runtime/IntlRelativeTimeFormatPrototype.h: Added. * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::relativeTimeFormatStructure): * runtime/OptionsList.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: Add feature and runtime option. * runtime/IntlDateTimeFormat.cpp: (JSC::IntlDateTimeFormat::formatToParts): * runtime/IntlPluralRules.cpp: (JSC::IntlPluralRules::initializePluralRules): (JSC::IntlPluralRules::resolvedOptions): Make "type" a property name. * runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::initializeNumberFormat): (JSC::IntlNumberFormat::resolvedOptions): (JSC::IntlNumberFormat::formatToPartsInternal): (JSC::IntlNumberFormat::formatToParts): * runtime/IntlNumberFormat.h: Factor out formatToPartsInternal so that RelativeTimeFormat can use it with its own UNumberFormat. (This logic is too complicated to duplicate; it's because ICU won't split, e.g., "10,000" into parts for us.) * runtime/IntlObject.cpp: (JSC::IntlObject::IntlObject): (JSC::IntlObject::create): (JSC::IntlObject::finishCreation): (JSC::intlAvailableLocales): (JSC::intlCollatorAvailableLocales): (JSC::isUnicodeLocaleIdentifierType): (JSC::supportedLocales): (JSC::intlDateTimeFormatAvailableLocales): Deleted. (JSC::intlNumberFormatAvailableLocales): Deleted. * runtime/IntlObject.h: (JSC::intlDateTimeFormatAvailableLocales): (JSC::intlNumberFormatAvailableLocales): (JSC::intlPluralRulesAvailableLocales): (JSC::intlRelativeTimeFormatAvailableLocales): Perform three corrections for Intl classes: 1. Collator should be the only class with unique "available locales". [unum|udat]_getAvailable exist but they've deferred to uloc_getAvailable for 20 years. 2. isUnicodeLocaleIdentifierType isn't just `alphanum{3,8}` but rather `alphanum{3,8} (sep alphanum{3,8})*`. This is my own mistake from r239941. 3. supportedLocalesOf entries should not be frozen. Changed in https://github.com/tc39/ecma402/pull/278. * tools/JSDollarVM.cpp: (JSC::functionICUVersion): (JSC::JSDollarVM::finishCreation): Add $vm.icuVersion so that we can add per-line skips to stress tests. Tools: * Scripts/run-jsc-stress-tests: Add runIntlRelativeTimeFormatEnabled. Canonical link: https://commits.webkit.org/223609@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-04-20 05:15:35 +00:00
$(PROJECT_DIR)/runtime/IntlRelativeTimeFormatConstructor.cpp
$(PROJECT_DIR)/runtime/IntlRelativeTimeFormatPrototype.cpp
[JSC] Add Intl.Segmenter https://bugs.webkit.org/show_bug.cgi?id=213638 Reviewed by Ross Kirsling. JSTests: * stress/intl-segmenter.js: Added. (shouldBe): (shouldNotThrow): (func): * test262/config.yaml: * test262/expectations.yaml: Source/JavaScriptCore: This patch implements Intl.Segmenter[1]. Intl.Segmenter offers access to ICU break iterator feature, which can break strings into grapheme cluster / words / sentences. [1]: https://github.com/tc39/proposal-intl-segmenter * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * runtime/CommonIdentifiers.h: * runtime/IntlObject.cpp: (JSC::createSegmenterConstructor): (JSC::IntlObject::finishCreation): (JSC::intlSegmenterAvailableLocales): * runtime/IntlObject.h: * runtime/IntlSegmentIterator.cpp: Added. (JSC::IntlSegmentIterator::create): (JSC::IntlSegmentIterator::createStructure): (JSC::IntlSegmentIterator::IntlSegmentIterator): (JSC::IntlSegmentIterator::finishCreation): (JSC::IntlSegmentIterator::visitChildren): (JSC::IntlSegmentIterator::next): * runtime/IntlSegmentIterator.h: Added. * runtime/IntlSegmentIteratorPrototype.cpp: Added. (JSC::IntlSegmentIteratorPrototype::create): (JSC::IntlSegmentIteratorPrototype::createStructure): (JSC::IntlSegmentIteratorPrototype::IntlSegmentIteratorPrototype): (JSC::IntlSegmentIteratorPrototype::finishCreation): (JSC::IntlSegmentIteratorPrototypeFuncNext): * runtime/IntlSegmentIteratorPrototype.h: Added. * runtime/IntlSegmenter.cpp: Added. (JSC::IntlSegmenter::create): (JSC::IntlSegmenter::createStructure): (JSC::IntlSegmenter::IntlSegmenter): (JSC::IntlSegmenter::finishCreation): (JSC::IntlSegmenter::initializeSegmenter): (JSC::IntlSegmenter::segment const): (JSC::IntlSegmenter::resolvedOptions const): (JSC::IntlSegmenter::granularityString): (JSC::IntlSegmenter::createSegmentDataObject): * runtime/IntlSegmenter.h: Added. * runtime/IntlSegmenterConstructor.cpp: Added. (JSC::IntlSegmenterConstructor::create): (JSC::IntlSegmenterConstructor::createStructure): (JSC::IntlSegmenterConstructor::IntlSegmenterConstructor): (JSC::IntlSegmenterConstructor::finishCreation): (JSC::constructIntlSegmenter): (JSC::callIntlSegmenter): (JSC::IntlSegmenterConstructorSupportedLocalesOf): * runtime/IntlSegmenterConstructor.h: Added. * runtime/IntlSegmenterPrototype.cpp: Added. (JSC::IntlSegmenterPrototype::create): (JSC::IntlSegmenterPrototype::createStructure): (JSC::IntlSegmenterPrototype::IntlSegmenterPrototype): (JSC::IntlSegmenterPrototype::finishCreation): (JSC::IntlSegmenterPrototypeFuncSegment): (JSC::IntlSegmenterPrototypeFuncResolvedOptions): * runtime/IntlSegmenterPrototype.h: Added. * runtime/IntlSegments.cpp: Added. (JSC::IntlSegments::create): (JSC::IntlSegments::createStructure): (JSC::IntlSegments::IntlSegments): (JSC::IntlSegments::finishCreation): (JSC::IntlSegments::containing): (JSC::IntlSegments::createSegmentIterator): (JSC::IntlSegments::visitChildren): * runtime/IntlSegments.h: Added. * runtime/IntlSegmentsPrototype.cpp: Added. (JSC::IntlSegmentsPrototype::create): (JSC::IntlSegmentsPrototype::createStructure): (JSC::IntlSegmentsPrototype::IntlSegmentsPrototype): (JSC::IntlSegmentsPrototype::finishCreation): (JSC::IntlSegmentsPrototypeFuncContaining): (JSC::IntlSegmentsPrototypeFuncIterator): * runtime/IntlSegmentsPrototype.h: Added. * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::segmentIteratorStructure): (JSC::JSGlobalObject::segmenterStructure): (JSC::JSGlobalObject::segmentsStructure): * runtime/OptionsList.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: Source/WTF: * wtf/text/WTFString.cpp: (WTF::String::charactersWithoutNullTermination const): (WTF::String::charactersWithNullTermination const): * wtf/text/WTFString.h: Canonical link: https://commits.webkit.org/228509@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-08-22 19:22:24 +00:00
$(PROJECT_DIR)/runtime/IntlSegmentIteratorPrototype.cpp
$(PROJECT_DIR)/runtime/IntlSegmenterConstructor.cpp
$(PROJECT_DIR)/runtime/IntlSegmenterPrototype.cpp
$(PROJECT_DIR)/runtime/IntlSegmentsPrototype.cpp
$(PROJECT_DIR)/runtime/JSDataViewPrototype.cpp
$(PROJECT_DIR)/runtime/JSGlobalObject.cpp
$(PROJECT_DIR)/runtime/JSInternalPromiseConstructor.cpp
$(PROJECT_DIR)/runtime/JSModuleLoader.cpp
$(PROJECT_DIR)/runtime/JSONObject.cpp
$(PROJECT_DIR)/runtime/JSPromiseConstructor.cpp
$(PROJECT_DIR)/runtime/JSPromisePrototype.cpp
$(PROJECT_DIR)/runtime/MapPrototype.cpp
$(PROJECT_DIR)/runtime/NumberConstructor.cpp
$(PROJECT_DIR)/runtime/NumberPrototype.cpp
$(PROJECT_DIR)/runtime/ObjectConstructor.cpp
$(PROJECT_DIR)/runtime/ReflectObject.cpp
$(PROJECT_DIR)/runtime/RegExpConstructor.cpp
$(PROJECT_DIR)/runtime/SetPrototype.cpp
$(PROJECT_DIR)/runtime/StringConstructor.cpp
$(PROJECT_DIR)/runtime/StringPrototype.cpp
$(PROJECT_DIR)/runtime/SymbolConstructor.cpp
$(PROJECT_DIR)/runtime/SymbolPrototype.cpp
$(PROJECT_DIR)/runtime/TemporalObject.cpp
$(PROJECT_DIR)/ucd/CaseFolding.txt
$(PROJECT_DIR)/ucd/DerivedBinaryProperties.txt
$(PROJECT_DIR)/ucd/DerivedCoreProperties.txt
$(PROJECT_DIR)/ucd/DerivedNormalizationProps.txt
$(PROJECT_DIR)/ucd/PropList.txt
$(PROJECT_DIR)/ucd/PropertyAliases.txt
$(PROJECT_DIR)/ucd/PropertyValueAliases.txt
$(PROJECT_DIR)/ucd/ScriptExtensions.txt
$(PROJECT_DIR)/ucd/Scripts.txt
$(PROJECT_DIR)/ucd/UnicodeData.txt
$(PROJECT_DIR)/ucd/emoji-data.txt
$(PROJECT_DIR)/ucd/language-subtag-registry.txt
$(PROJECT_DIR)/wasm/generateWasm.py
$(PROJECT_DIR)/wasm/generateWasmB3IRGeneratorInlinesHeader.py
$(PROJECT_DIR)/wasm/generateWasmOpsHeader.py
$(PROJECT_DIR)/wasm/js/JSWebAssembly.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyCompileErrorConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyCompileErrorPrototype.cpp
Adopt the new WebAssembly.Global system https://bugs.webkit.org/show_bug.cgi?id=186552 Reviewed by Keith Miller. JSTests: 1. Update spec-harness to accept newer tests. And we update several tests that does not work with the old harness. 2. Add WebAssembly.Global tests. * wasm/js-api/global-error.js: (assert.throws.new.WebAssembly.Module.bin): (new.WebAssembly.Module): (assert.throws): * wasm/js-api/global-external-init-from-import.js: * wasm/js-api/globals-export.js: * wasm/modules/js-wasm-global-namespace.js: (assert.throws): * wasm/modules/js-wasm-global.js: (assert.throws): * wasm/modules/wasm-import-wasm-export-i64-error.js: * wasm/references/anyref_globals.js: * wasm/references/func_ref.js: (assert.eq.instance.exports.fix): * wasm/spec-harness.js: (getGlobal): (let.console.log): * wasm/spec-harness/sync_index.js: Renamed from JSTests/wasm/spec-harness/index.js. (reinitializeRegistry.let.handler.get return): (module): * wasm/spec-tests/call.wast.js: * wasm/spec-tests/exports.wast.js: * wasm/spec-tests/globals.wast.js: * wasm/spec-tests/if.wast.js: * wasm/spec-tests/imports.wast.js: * wasm/spec-tests/linking.wast.js: * wasm/spec-tests/memory.wast.js: * wasm/stress/immutable-globals.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq.instance.exports.getI32): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq): * wasm/stress/mutable-globals-cross.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.instance1): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.instance2): * wasm/stress/mutable-globals.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.instance.exports.setI32AsI64): LayoutTests/imported/w3c: * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any-expected.txt: * web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/global/constructor.any-expected.txt: * web-platform-tests/wasm/jsapi/global/constructor.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/global/toString.any-expected.txt: * web-platform-tests/wasm/jsapi/global/toString.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt: * web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/global/valueOf.any-expected.txt: * web-platform-tests/wasm/jsapi/global/valueOf.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any-expected.txt: * web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt: * web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/interface.any-expected.txt: * web-platform-tests/wasm/jsapi/interface.any.worker-expected.txt: * web-platform-tests/wasm/jsapi/module/exports.any-expected.txt: * web-platform-tests/wasm/jsapi/module/exports.any.worker-expected.txt: Source/JavaScriptCore: This patch adds WebAssembly.Global implementation. It is already included in the Wasm spec (this means, it is not in staging right now: it was stage-4, and included in the spec). WebAssembly.Global is a wrapper object around "global" binding. This object can hold "immutable" and "mutable" global binding, and we can access Wasm globals through this object. Furthermore, we can share mutable global binding through this object across WebAssembly modules. To implement it efficiently, this patch introduces BindingMode to Wasm globals. If the mode is EmbeddedInInstance, we continue using the current existing mechanism. If the mode is Portable, we store a pointer to actual value in Wasm globals array in Wasm::Instance, so that we can access it through one additional dereference. And we mark all immutable globals as EmbeddedInInstance. If the binding is immutable, internally we do not need to have one binding. We can just continue using the current mechanism since users cannot observe whether immutable bindings' storage is shared or not. If the global is mutable, and it is exported outside of the module, we use Portable mode. So, all the previously used wasm global bindings are EmbeddedInInstance. Only newly added "mutable" "exported" bindings are Portable and requires one additional dereference. To access portable bindings efficiently, we add new Wasm bytecodes, `get_global_portable_binding`, `set_global_portable_binding`, and `set_global_ref_portable_binding`. This patch improves WPT wasm coverage significantly. * CMakeLists.txt: * DerivedSources-input.xcfilelist: * DerivedSources-output.xcfilelist: * DerivedSources.make: * JavaScriptCore.xcodeproj/project.pbxproj: * Sources.txt: * bytecode/BytecodeList.rb: * heap/HeapCell.cpp: (JSC::keepAlive): (JSC::HeapCell::use const): Deleted. * heap/HeapCell.h: (JSC::keepAlive): (JSC::HeapCell::use const): * llint/WebAssembly.asm: * runtime/JSGlobalObject.cpp: * runtime/JSGlobalObject.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: * wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::getGlobal): (JSC::Wasm::AirIRGenerator::setGlobal): * wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::getGlobal): (JSC::Wasm::B3IRGenerator::setGlobal): * wasm/WasmFormat.h: * wasm/WasmGlobal.cpp: Added. (JSC::Wasm::Global::get const): (JSC::Wasm::Global::set): (JSC::Wasm::Global::visitAggregate): * wasm/WasmGlobal.h: Added. * wasm/WasmInstance.cpp: (JSC::Wasm::Instance::Instance): (JSC::Wasm::Instance::setGlobal): (JSC::Wasm::Instance::linkGlobal): * wasm/WasmInstance.h: (JSC::Wasm::Instance::loadI32Global const): (JSC::Wasm::Instance::loadI64Global const): (JSC::Wasm::Instance::setGlobal): (JSC::Wasm::Instance::globalsToBinding): (JSC::Wasm::Instance::getGlobalBinding): * wasm/WasmLLIntGenerator.cpp: (JSC::Wasm::LLIntGenerator::getGlobal): (JSC::Wasm::LLIntGenerator::setGlobal): * wasm/WasmModuleInformation.h: * wasm/WasmOperations.cpp: (JSC::Wasm::operationWasmWriteBarrierSlowPath): * wasm/WasmOperations.h: * wasm/WasmSectionParser.cpp: (JSC::Wasm::SectionParser::parseImport): (JSC::Wasm::SectionParser::parseGlobal): (JSC::Wasm::SectionParser::parseExport): (JSC::Wasm::SectionParser::parseInitExpr): (JSC::Wasm::SectionParser::parseGlobalType): * wasm/WasmSectionParser.h: * wasm/WasmSlowPaths.cpp: (JSC::LLInt::WASM_SLOW_PATH_DECL): * wasm/WasmSlowPaths.h: * wasm/WasmValidate.cpp: (JSC::Wasm::Validate::setGlobal): * wasm/js/JSWebAssembly.cpp: * wasm/js/JSWebAssemblyGlobal.cpp: Added. (JSC::JSWebAssemblyGlobal::create): (JSC::JSWebAssemblyGlobal::createStructure): (JSC::JSWebAssemblyGlobal::JSWebAssemblyGlobal): (JSC::JSWebAssemblyGlobal::finishCreation): (JSC::JSWebAssemblyGlobal::destroy): (JSC::JSWebAssemblyGlobal::visitChildren): * wasm/js/JSWebAssemblyGlobal.h: Copied from Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h. * wasm/js/JSWebAssemblyInstance.cpp: (JSC::JSWebAssemblyInstance::visitChildren): * wasm/js/JSWebAssemblyInstance.h: * wasm/js/JSWebAssemblyMemory.cpp: (JSC::JSWebAssemblyMemory::destroy): * wasm/js/JSWebAssemblyMemory.h: * wasm/js/JSWebAssemblyModule.h: * wasm/js/JSWebAssemblyTable.h: * wasm/js/WebAssemblyGlobalConstructor.cpp: Added. (JSC::constructJSWebAssemblyGlobal): (JSC::callJSWebAssemblyGlobal): (JSC::WebAssemblyGlobalConstructor::create): (JSC::WebAssemblyGlobalConstructor::createStructure): (JSC::WebAssemblyGlobalConstructor::finishCreation): (JSC::WebAssemblyGlobalConstructor::WebAssemblyGlobalConstructor): * wasm/js/WebAssemblyGlobalConstructor.h: Copied from Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h. * wasm/js/WebAssemblyGlobalPrototype.cpp: Added. (JSC::getGlobal): (JSC::webAssemblyGlobalProtoFuncValueOf): (JSC::webAssemblyGlobalProtoGetterFuncValue): (JSC::webAssemblyGlobalProtoSetterFuncValue): (JSC::WebAssemblyGlobalPrototype::create): (JSC::WebAssemblyGlobalPrototype::createStructure): (JSC::WebAssemblyGlobalPrototype::finishCreation): (JSC::WebAssemblyGlobalPrototype::WebAssemblyGlobalPrototype): * wasm/js/WebAssemblyGlobalPrototype.h: Copied from Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h. * wasm/js/WebAssemblyModuleRecord.cpp: (JSC::WebAssemblyModuleRecord::link): Canonical link: https://commits.webkit.org/218038@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253074 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-12-04 01:36:56 +00:00
$(PROJECT_DIR)/wasm/js/WebAssemblyGlobalConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyGlobalPrototype.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyInstanceConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyInstancePrototype.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyLinkErrorConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyLinkErrorPrototype.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyMemoryConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyMemoryPrototype.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyModuleConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyModulePrototype.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyTableConstructor.cpp
$(PROJECT_DIR)/wasm/js/WebAssemblyTablePrototype.cpp
$(PROJECT_DIR)/wasm/wasm.json
$(PROJECT_DIR)/yarr/create_regex_tables
$(PROJECT_DIR)/yarr/generateYarrCanonicalizeUnicode
$(PROJECT_DIR)/yarr/generateYarrUnicodePropertyTables.py
$(PROJECT_DIR)/yarr/hasher.py