66cb764ed3780097943070dadaae6d254ae2f43e
[WebKit-https.git] / Source / JavaScriptCore / ChangeLog
1 2018-09-14  Saam barati  <sbarati@apple.com>
2
3         Don't dump OSRAvailabilityData in Graph::dump because a stale Availability may point to a Node that is already freed
4         https://bugs.webkit.org/show_bug.cgi?id=189628
5         <rdar://problem/39481690>
6
7         Reviewed by Mark Lam.
8
9         An Availability may point to a Node. And that Node may be removed from
10         the graph, e.g, it's freed and its memory is no longer owned by Graph.
11         This patch makes it so we no longer dump this metadata by default. If
12         this metadata is interesting to you, you'll need to go in and change
13         Graph::dump to dump the needed metadata.
14
15         * dfg/DFGGraph.cpp:
16         (JSC::DFG::Graph::dump):
17
18 2018-09-14  Mark Lam  <mark.lam@apple.com>
19
20         Refactor some ForInContext code for better encapsulation.
21         https://bugs.webkit.org/show_bug.cgi?id=189626
22         <rdar://problem/44466415>
23
24         Reviewed by Keith Miller.
25
26         1. Add a ForInContext::m_type field to store the context type.  This does not
27            increase the class size, but eliminates the need for a virtual call to get the
28            type.
29
30            Note: we still need a virtual destructor because we'll be mingling
31            IndexedForInContexts and StructureForInContexts in the BytecodeGenerator::m_forInContextStack.
32
33         2. Add ForInContext::isIndexedForInContext() and ForInContext::isStructureForInContext()
34            convenience methods.
35
36         3. Add ForInContext::asIndexedForInContext() and ForInContext::asStructureForInContext()
37            to do the casting to the subclass types.  This ensures that we'll properly
38            assert that the casting is legal.
39
40         * bytecompiler/BytecodeGenerator.cpp:
41         (JSC::BytecodeGenerator::emitGetByVal):
42         (JSC::BytecodeGenerator::popIndexedForInScope):
43         (JSC::BytecodeGenerator::popStructureForInScope):
44         * bytecompiler/BytecodeGenerator.h:
45         (JSC::ForInContext::type const):
46         (JSC::ForInContext::isIndexedForInContext const):
47         (JSC::ForInContext::isStructureForInContext const):
48         (JSC::ForInContext::asIndexedForInContext):
49         (JSC::ForInContext::asStructureForInContext):
50         (JSC::ForInContext::ForInContext):
51         (JSC::StructureForInContext::StructureForInContext):
52         (JSC::IndexedForInContext::IndexedForInContext):
53         (JSC::ForInContext::~ForInContext): Deleted.
54
55 2018-09-14  Devin Rousso  <webkit@devinrousso.com>
56
57         Web Inspector: Record actions performed on ImageBitmapRenderingContext
58         https://bugs.webkit.org/show_bug.cgi?id=181341
59
60         Reviewed by Joseph Pecoraro.
61
62         * inspector/protocol/Recording.json:
63         * inspector/scripts/codegen/generator.py:
64
65 2018-09-14  Mike Gorse  <mgorse@suse.com>
66
67         builtins directory causes name conflict on Python 3
68         https://bugs.webkit.org/show_bug.cgi?id=189552
69
70         Reviewed by Michael Catanzaro.
71
72         * CMakeLists.txt: builtins -> wkbuiltins.
73         * DerivedSources.make: builtins -> wkbuiltins.
74         * Scripts/generate-js-builtins.py: import wkbuiltins, rather than
75           builtins.
76         * Scripts/wkbuiltins/__init__.py: Renamed from Source/JavaScriptCore/Scripts/builtins/__init__.py.
77         * Scripts/wkbuiltins/builtins_generate_combined_header.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generate_combined_header.py.
78         * Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generate_internals_wrapper_implementation.py.
79         * Scripts/wkbuiltins/builtins_generate_separate_header.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_header.py.
80         * Scripts/wkbuiltins/builtins_generate_separate_implementation.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generate_separate_implementation.py.
81         * Scripts/wkbuiltins/builtins_generate_wrapper_header.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_header.py.
82         * Scripts/wkbuiltins/builtins_generate_wrapper_implementation.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generate_wrapper_implementation.py.
83         * Scripts/wkbuiltins/builtins_generator.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_generator.py.
84         * Scripts/wkbuiltins/builtins_model.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_model.py.
85         * Scripts/wkbuiltins/builtins_templates.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins_templates.py.
86         * Scripts/wkbuiltins/wkbuiltins.py: Renamed from Source/JavaScriptCore/Scripts/builtins/builtins.py.
87         * JavaScriptCore.xcodeproj/project.pbxproj: Update for the renaming.
88
89 2018-09-13  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
90
91         [WebAssembly] Inline WasmContext accessor functions
92         https://bugs.webkit.org/show_bug.cgi?id=189416
93
94         Reviewed by Saam Barati.
95
96         WasmContext accessor functions are very small while it resides in the critical path of
97         JS to Wasm function call. This patch makes them inline to improve performance.
98         This change improves a small benchmark (calling JS to Wasm function 1e7 times) from 320ms to 270ms.
99
100         * JavaScriptCore.xcodeproj/project.pbxproj:
101         * Sources.txt:
102         * interpreter/CallFrame.cpp:
103         * jit/AssemblyHelpers.cpp:
104         * wasm/WasmB3IRGenerator.cpp:
105         * wasm/WasmContextInlines.h: Renamed from Source/JavaScriptCore/wasm/WasmContext.cpp.
106         (JSC::Wasm::Context::useFastTLS):
107         (JSC::Wasm::Context::load const):
108         (JSC::Wasm::Context::store):
109         * wasm/WasmMemoryInformation.cpp:
110         * wasm/WasmModuleParser.cpp: Include <wtf/SHA1.h> due to changes of unified source combinations.
111         * wasm/js/JSToWasm.cpp:
112         * wasm/js/WebAssemblyFunction.cpp:
113
114 2018-09-12  David Kilzer  <ddkilzer@apple.com>
115
116         Move JavaScriptCore files to match Xcode project hierarchy
117         <https://webkit.org/b/189574>
118
119         Reviewed by Filip Pizlo.
120
121         * API/JSAPIValueWrapper.cpp: Rename from Source/JavaScriptCore/runtime/JSAPIValueWrapper.cpp.
122         * API/JSAPIValueWrapper.h: Rename from Source/JavaScriptCore/runtime/JSAPIValueWrapper.h.
123         * CMakeLists.txt: Update for new path to
124         generateYarrUnicodePropertyTables.py, hasher.py and
125         JSAPIValueWrapper.h.
126         * DerivedSources.make: Ditto. Add missing dependency on
127         hasher.py captured by CMakeLists.txt.
128         * JavaScriptCore.xcodeproj/project.pbxproj: Update for new file
129         reference paths. Add hasher.py library to project.
130         * Sources.txt: Update for new path to
131         JSAPIValueWrapper.cpp.
132         * runtime/JSImmutableButterfly.h: Add missing includes
133         after changes to Sources.txt and regenerating unified
134         sources.
135         * runtime/RuntimeType.h: Ditto.
136         * yarr/generateYarrUnicodePropertyTables.py: Rename from Source/JavaScriptCore/Scripts/generateYarrUnicodePropertyTables.py.
137         * yarr/hasher.py: Rename from Source/JavaScriptCore/Scripts/hasher.py.
138
139 2018-09-12  David Kilzer  <ddkilzer@apple.com>
140
141         Let Xcode have its way with the JavaScriptCore project
142
143         * JavaScriptCore.xcodeproj/project.pbxproj:
144
145 2018-09-12  Guillaume Emont  <guijemont@igalia.com>
146
147         Add IGNORE_WARNING_.* macros
148         https://bugs.webkit.org/show_bug.cgi?id=188996
149
150         Reviewed by Michael Catanzaro.
151
152         * API/JSCallbackObject.h:
153         * API/tests/testapi.c:
154         * assembler/LinkBuffer.h:
155         (JSC::LinkBuffer::finalizeCodeWithDisassembly):
156         * b3/B3LowerToAir.cpp:
157         * b3/B3Opcode.cpp:
158         * b3/B3Type.h:
159         * b3/B3TypeMap.h:
160         * b3/B3Width.h:
161         * b3/air/AirArg.cpp:
162         * b3/air/AirArg.h:
163         * b3/air/AirCode.h:
164         * bytecode/Opcode.h:
165         (JSC::padOpcodeName):
166         * dfg/DFGSpeculativeJIT.cpp:
167         (JSC::DFG::SpeculativeJIT::speculateNumber):
168         (JSC::DFG::SpeculativeJIT::speculateMisc):
169         * dfg/DFGSpeculativeJIT64.cpp:
170         * ftl/FTLOutput.h:
171         * jit/CCallHelpers.h:
172         (JSC::CCallHelpers::calculatePokeOffset):
173         * llint/LLIntData.cpp:
174         * llint/LLIntSlowPaths.cpp:
175         (JSC::LLInt::slowPathLogF):
176         * runtime/ConfigFile.cpp:
177         (JSC::ConfigFile::canonicalizePaths):
178         * runtime/JSDataViewPrototype.cpp:
179         * runtime/JSGenericTypedArrayViewConstructor.h:
180         * runtime/JSGenericTypedArrayViewPrototype.h:
181         * runtime/Options.cpp:
182         (JSC::Options::setAliasedOption):
183         * tools/CodeProfiling.cpp:
184         * wasm/WasmSections.h:
185         * wasm/generateWasmValidateInlinesHeader.py:
186
187 == Rolled over to ChangeLog-2018-09-11 ==