[Win] Unreviewed build fix.
[WebKit-https.git] / Source / JavaScriptCore / ChangeLog
1 2014-10-20  Brent Fulgham  <bfulgham@apple.com>
2
3         [Win] Unreviewed build fix.
4
5         We need to (1) pass the 'windows' argument to our script for checking feature definitions,
6         and (2) we must use Cwd::realpath on our path input arguments to avoid Cygwin and Windows
7         getting confused about path separators versus escape characters.
8
9
10         * JavaScriptCore.vcxproj/build-generated-files.pl:
11
12 2014-10-20  Mark Lam  <mark.lam@apple.com>
13
14         [Follow up] Web Process crash when starting the web inspector after r174025.
15         <https://webkit.org/b/137340>
16
17         Reviewed by Geoffrey Garen.
18
19         Applied Geoff's feedback to clean up some code for better clarity after
20         r174856.
21
22         * dfg/DFGFixupPhase.cpp:
23         (JSC::DFG::FixupPhase::insertCheck):
24         * dfg/DFGInsertionSet.h:
25         (JSC::DFG::InsertionSet::insertOutOfOrder):
26
27 2014-10-20  Mark Lam  <mark.lam@apple.com>
28
29         Factor out JITCode::typeName() for debugging use.
30         <https://webkit.org/b/137888>
31
32         Reviewed by Geoffrey Garen.
33
34         JITCode's printInternal() currently decodes the JITType into a string and
35         prints it.  This change factors out the part that decodes the JITType into
36         JITCode::typeName() so that we can call it from lldb while debugging to
37         quickly decode a JITType value.
38
39         * jit/JITCode.cpp:
40         (JSC::JITCode::typeName):
41         (WTF::printInternal):
42         * jit/JITCode.h:
43
44 2014-10-20  Joseph Pecoraro  <pecoraro@apple.com>
45
46         Unreviewed Windows Build Fix #2 after r174892.
47
48         * JavaScriptCore.vcxproj/build-generated-files.pl:
49         Define FEATURE_DEFINES for JavaScriptCore's DerivedSources.make.
50         This uses the same technique as WebCore.
51
52 2014-10-20  Mark Lam  <mark.lam@apple.com>
53
54         Fix placement of a few items in vcxproj ItemGroups.
55         <https://webkit.org/b/137886>
56
57         Reviewed by Geoffrey Garen.
58
59         https://webkit.org/b/137873 is likely a cut-and-paste error that manifested
60         because we had ClCompile and ClInclude entries mixed up in the wrong ItemGroups.
61         We should fix these so that ClCompile entries are in the ClCompile ItemGroup,
62         and ClInclude entries in the ClInclude ItemGroup.  This will help reduce the
63         chance of future cut-and-paste errors of this nature.
64
65         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
66         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
67
68 2014-10-20  Joseph Pecoraro  <pecoraro@apple.com>
69
70         Unreviewed Windows Build Fix after r174892.
71
72         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
73         Update file name to the new generated file name.
74
75 2014-10-20  Joseph Pecoraro  <pecoraro@apple.com>
76
77         Web Inspector: Rename generated Inspector.json to CombinedDomains.json to prevent name collisions
78         https://bugs.webkit.org/show_bug.cgi?id=137825
79
80         Reviewed by Timothy Hatcher.
81
82         * CMakeLists.txt:
83         * DerivedSources.make:
84         * JavaScriptCore.vcxproj/copy-files.cmd:
85         * JavaScriptCore.xcodeproj/project.pbxproj:
86         * inspector/protocol/Inspector.json: Renamed from Source/JavaScriptCore/inspector/protocol/InspectorDomain.json.
87
88 2014-10-20  Joseph Pecoraro  <pecoraro@apple.com>
89
90         Web Inspector: Generate all Inspector domains together in JavaScriptCore
91         https://bugs.webkit.org/show_bug.cgi?id=137748
92
93         Reviewed by Brian Burg.
94
95         * inspector/protocol/ApplicationCache.json: Renamed from Source/WebCore/inspector/protocol/ApplicationCache.json.
96         * inspector/protocol/CSS.json: Renamed from Source/WebCore/inspector/protocol/CSS.json.
97         * inspector/protocol/DOM.json: Renamed from Source/WebCore/inspector/protocol/DOM.json.
98         * inspector/protocol/DOMDebugger.json: Renamed from Source/WebCore/inspector/protocol/DOMDebugger.json.
99         * inspector/protocol/DOMStorage.json: Renamed from Source/WebCore/inspector/protocol/DOMStorage.json.
100         * inspector/protocol/Database.json: Renamed from Source/WebCore/inspector/protocol/Database.json.
101         * inspector/protocol/IndexedDB.json: Renamed from Source/WebCore/inspector/protocol/IndexedDB.json.
102         * inspector/protocol/LayerTree.json: Renamed from Source/WebCore/inspector/protocol/LayerTree.json.
103         * inspector/protocol/Network.json: Renamed from Source/WebCore/inspector/protocol/Network.json.
104         * inspector/protocol/Page.json: Renamed from Source/WebCore/inspector/protocol/Page.json.
105         * inspector/protocol/Replay.json: Renamed from Source/WebCore/inspector/protocol/Replay.json.
106         * inspector/protocol/Timeline.json: Renamed from Source/WebCore/inspector/protocol/Timeline.json.
107         * inspector/protocol/Worker.json: Renamed from Source/WebCore/inspector/protocol/Worker.json.
108         Move all protocol files into this directory.
109
110         * inspector/InspectorProtocolTypesBase.h: Renamed from Source/JavaScriptCore/inspector/InspectorProtocolTypes.h.
111         Renamed the base types file to not clash with the generated types file.
112
113         * CMakeLists.txt:
114         * DerivedSources.make:
115         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
116         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
117         * JavaScriptCore.vcxproj/copy-files.cmd:
118         * JavaScriptCore.xcodeproj/project.pbxproj:
119         Update build phases for new JSON files and new filenames.
120
121         * inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
122         * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
123         * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
124         * inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
125         * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
126         * inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
127         * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
128         * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
129         * inspector/scripts/tests/expected/type-declaration-array-type.json-result:
130         * inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
131         * inspector/scripts/tests/expected/type-declaration-object-type.json-result:
132         * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
133         Updated names of things now that prefixes are no longer needed.
134
135         * inspector/ConsoleMessage.h:
136         * inspector/ContentSearchUtilities.cpp:
137         * inspector/ContentSearchUtilities.h:
138         * inspector/InjectedScript.h:
139         * inspector/InjectedScriptBase.h:
140         * inspector/ScriptCallFrame.h:
141         * inspector/ScriptCallStack.h:
142         * inspector/agents/InspectorAgent.h:
143         * inspector/agents/InspectorConsoleAgent.h:
144         * inspector/agents/InspectorDebuggerAgent.cpp:
145         (Inspector::breakpointActionTypeForString):
146         * inspector/agents/InspectorDebuggerAgent.h:
147         * inspector/agents/InspectorRuntimeAgent.h:
148         * runtime/TypeProfiler.cpp:
149         * runtime/TypeSet.cpp:
150         Update includes and update a few function names that are generated.
151
152         * inspector/scripts/codegen/generate_protocol_types_header.py:
153         (ProtocolTypesHeaderGenerator.output_filename):
154         (ProtocolTypesHeaderGenerator.generate_output):
155         Include an export macro for type string constants defined in the implementation file.
156
157         * inspector/scripts/codegen/generate_backend_commands.py:
158         (BackendCommandsGenerator.output_filename):
159         * inspector/scripts/codegen/generate_backend_dispatcher_header.py:
160         (BackendDispatcherHeaderGenerator.output_filename):
161         (BackendDispatcherHeaderGenerator.generate_output):
162         * inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:
163         (BackendDispatcherImplementationGenerator.output_filename):
164         (BackendDispatcherImplementationGenerator.generate_output):
165         (BackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain):
166         (BackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
167         * inspector/scripts/codegen/generate_frontend_dispatcher_header.py:
168         (FrontendDispatcherHeaderGenerator.output_filename):
169         (FrontendDispatcherHeaderGenerator.generate_output):
170         * inspector/scripts/codegen/generate_frontend_dispatcher_implementation.py:
171         (FrontendDispatcherImplementationGenerator.output_filename):
172         (FrontendDispatcherImplementationGenerator.generate_output):
173         (FrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event):
174         (_generate_class_for_object_declaration):
175         (_generate_builder_setter_for_member):
176         (_generate_unchecked_setter_for_member):
177         * inspector/scripts/codegen/generate_protocol_types_implementation.py:
178         (ProtocolTypesImplementationGenerator.output_filename):
179         (ProtocolTypesImplementationGenerator.generate_output):
180         (ProtocolTypesImplementationGenerator._generate_enum_mapping):
181         * inspector/scripts/codegen/models.py:
182         (Framework.fromString):
183         (Frameworks):
184         * inspector/scripts/generate-inspector-protocol-bindings.py:
185         Simplify generator now that prefixes are no longer needed. This updates
186         filenames, includes, and the list of supported directories.
187
188 2014-10-20  Csaba Osztrogonác  <ossy@webkit.org>
189
190         Remove obsolete comments after r99798
191         https://bugs.webkit.org/show_bug.cgi?id=137871
192
193         Reviewed by Darin Adler.
194
195         r99798 removed the comment in MacroAssemblerARMv7::supportsFloatingPointTruncate(),
196         so we should remove the stale references to this removed comment.
197
198         * assembler/MacroAssemblerX86.h:
199         * assembler/MacroAssemblerX86_64.h:
200
201 2014-10-20  Csaba Osztrogonác  <ossy@webkit.org>
202
203         MacroAssemblerX86Common.cpp should be built on Windows too
204         https://bugs.webkit.org/show_bug.cgi?id=137873
205
206         Reviewed by Brent Fulgham.
207
208         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
209         * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
210
211 2014-10-20  Csaba Osztrogonác  <ossy@webkit.org>
212
213         [cmake] Remove duplicated source files
214         https://bugs.webkit.org/show_bug.cgi?id=137875
215
216         Reviewed by Gyuyoung Kim.
217
218         * CMakeLists.txt:
219
220 2014-10-18  Brian J. Burg  <burg@cs.washington.edu>
221
222         Web Replay: code generator shouldn't complain about enums without a storage type if they are in an enclosing scope
223         https://bugs.webkit.org/show_bug.cgi?id=137084
224
225         Reviewed by Joseph Pecoraro.
226
227         In order to generate encode/decode method declarations without pulling in lots of headers,
228         the generator must forward declare enums (for enum classes or enums with explicit sizes).
229
230         Change the generator to not require an explicit size if an enum is declared inside a struct
231         or class definition. In that case, it must pull in headers since scoped enums can't be
232         forward declared.
233
234         This patch also fixes some chained if-statements that should be if-else statements.
235
236         Test: updated replay/scripts/tests/generate-enum-encoding-helpers.json to cover the new case.
237
238         * replay/scripts/CodeGeneratorReplayInputs.py:
239         (InputsModel.parse_type_with_framework_name.is):
240         (InputsModel.parse_type_with_framework_name.is.must):
241         (Generator.generate_enum_trait_implementation):
242         (InputsModel.parse_type_with_framework_name): Deleted.
243         * replay/scripts/CodeGeneratorReplayInputsTemplates.py:
244         * replay/scripts/tests/expected/fail-on-c-style-enum-no-storage.json-error:
245         * replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp:
246         (JSC::EncodingTraits<WebCore::MouseButton>::decodeValue):
247         * replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp:
248         (JSC::EncodingTraits<WebCore::MouseButton>::decodeValue):
249         (JSC::EncodingTraits<WebCore::PlatformEvent::Type>::encodeValue):
250         (JSC::EncodingTraits<WebCore::PlatformEvent::Type>::decodeValue):
251         * replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.h:
252         * replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp:
253         (JSC::EncodingTraits<WebCore::FormData1::Type>::decodeValue):
254         (JSC::EncodingTraits<PlatformEvent1::Type>::decodeValue):
255         * replay/scripts/tests/generate-enum-encoding-helpers.json: Added a new input to cover this case.
256
257 2014-10-17  Mark Lam  <mark.lam@apple.com>
258
259         Web Process crash when starting the web inspector after r174025.
260         <https://webkit.org/b/137340>
261
262         Reviewed by Filip Pizlo.
263
264         After r174025, we can generate a bad graph in the DFG fixup phase like so:
265
266             102:<!0:-> StoreBarrier(Check:KnownCell:@19, ..., bc#44)
267             60:<!0:->  PutStructure(Check:KnownCell:@19, ..., bc#44)
268             103:<!0:-> Check(Check:NotCell:@54, ..., bc#44)
269                     // ^-- PutByOffset's StoreBarrier has been elided and replaced
270                     //     with a speculation check which can OSR exit.
271             61:<!0:->  PutByOffset(Check:KnownCell:@19, ..., bc#44)
272
273         As a result, the structure change will get executed even if we end up OSR
274         exiting before the PutByOffset.  In the baseline JIT code, the structure now
275         erroneously tells the put operation that there is a value in that property
276         slot when it is actually uninitialized (hence, the crash).
277
278         The fix is to insert the Check at the earliest point possible:
279
280         1. If the checked node is in the same bytecode as the PutByOffset, then
281            the earliest point where we can insert the Check is right after the
282            checked node.
283
284         2. If the checked node is from a preceding bytecode (before the PutByOffset),
285            then the earliest point where we can insert the Check is at the start
286            of the current bytecode.
287
288         Also reverted the workaround from r174749: https://webkit.org/b/137758.
289
290         Benchmark results appear to be a wash on aggregate.
291
292         * dfg/DFGFixupPhase.cpp:
293         (JSC::DFG::FixupPhase::indexOfNode):
294         (JSC::DFG::FixupPhase::indexOfFirstNodeOfExitOrigin):
295         (JSC::DFG::FixupPhase::fixupNode):
296         (JSC::DFG::FixupPhase::insertCheck):
297         * dfg/DFGInsertionSet.h:
298         (JSC::DFG::InsertionSet::insertOutOfOrder):
299         (JSC::DFG::InsertionSet::insertOutOfOrderNode):
300
301 2014-10-10  Oliver Hunt  <oliver@apple.com>
302
303         Various arguments optimisations in codegen fail to account for arguments being in lexical record
304         https://bugs.webkit.org/show_bug.cgi?id=137617
305
306         Reviewed by Michael Saboff.
307
308         Rework the way we track |arguments| references so that we don't try
309         to use the |arguments| reference on the stack if it's not safe.
310
311         To do this without nuking performance it was necessary to update
312         the parser to track modification of the |arguments| reference
313         itself.
314
315         * bytecode/CodeBlock.cpp:
316         * bytecompiler/BytecodeGenerator.cpp:
317         (JSC::BytecodeGenerator::BytecodeGenerator):
318         (JSC::BytecodeGenerator::willResolveToArguments):
319         (JSC::BytecodeGenerator::uncheckedLocalArgumentsRegister):
320         (JSC::BytecodeGenerator::emitCall):
321         (JSC::BytecodeGenerator::emitConstruct):
322         (JSC::BytecodeGenerator::emitEnumeration):
323         (JSC::BytecodeGenerator::uncheckedRegisterForArguments): Deleted.
324         * bytecompiler/BytecodeGenerator.h:
325         (JSC::BytecodeGenerator::hasSafeLocalArgumentsRegister):
326         * bytecompiler/NodesCodegen.cpp:
327         (JSC::BracketAccessorNode::emitBytecode):
328         (JSC::DotAccessorNode::emitBytecode):
329         (JSC::getArgumentByVal):
330         (JSC::CallFunctionCallDotNode::emitBytecode):
331         (JSC::ApplyFunctionCallDotNode::emitBytecode):
332         (JSC::ArrayPatternNode::emitDirectBinding):
333         * interpreter/StackVisitor.cpp:
334         (JSC::StackVisitor::Frame::existingArguments):
335         * parser/Nodes.h:
336         (JSC::ScopeNode::modifiesArguments):
337         * parser/Parser.cpp:
338         (JSC::Parser<LexerType>::parseInner):
339         * parser/Parser.h:
340         (JSC::Scope::getCapturedVariables):
341         * parser/ParserModes.h:
342
343 2014-10-17  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
344
345         Use WTF::move() instead of std::move() to help ensure move semantics in JavaScriptCore
346         https://bugs.webkit.org/show_bug.cgi?id=137809
347
348         Reviewed by Csaba Osztrogonác.
349
350         Substitution of WTF::move() for std::move(). Clean up std::move() in JavaScriptCore.
351
352         * bytecode/GetByIdStatus.cpp:
353         (JSC::GetByIdStatus::computeForStubInfo):
354         * bytecode/PutByIdStatus.cpp:
355         (JSC::PutByIdStatus::computeForStubInfo):
356         * bytecode/PutByIdVariant.cpp:
357         (JSC::PutByIdVariant::setter):
358
359 2014-10-15  Oliver Hunt  <oliver@apple.com>
360
361         Use a single allocation for the Arguments object
362         https://bugs.webkit.org/show_bug.cgi?id=137751
363
364         Reviewed by Filip Pizlo.
365
366         This patch removes the secondary allocation for parameters in the Arguments
367         object.  This is faily simple, but we needed to make it possible for the JIT
368         to allocate a variable GC object.  To do this i've added a new 
369         emitAllocateVariableSizedJSObject function to the JIT that does the work to
370         find the correct heap for a variable sized allocation and then bump that
371         allocator.
372
373         * dfg/DFGSpeculativeJIT.cpp:
374         (JSC::DFG::SpeculativeJIT::emitAllocateArguments):
375         * dfg/DFGSpeculativeJIT.h:
376         (JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):
377         * heap/CopyToken.h:
378         * heap/Heap.h:
379         (JSC::Heap::subspaceForObjectWithoutDestructor):
380         (JSC::Heap::subspaceForObjectNormalDestructor):
381         (JSC::Heap::subspaceForObjectsWithImmortalStructure):
382         * heap/MarkedSpace.h:
383         (JSC::MarkedSpace::subspaceForObjectsWithNormalDestructor):
384         (JSC::MarkedSpace::subspaceForObjectsWithImmortalStructure):
385         (JSC::MarkedSpace::subspaceForObjectsWithoutDestructor):
386         * interpreter/StackVisitor.cpp:
387         (JSC::StackVisitor::Frame::createArguments):
388         * runtime/Arguments.cpp:
389         (JSC::Arguments::visitChildren):
390         (JSC::Arguments::copyBackingStore):
391         (JSC::Arguments::tearOff):
392         (JSC::Arguments::allocateRegisterArray): Deleted.
393         * runtime/Arguments.h:
394         (JSC::Arguments::create):
395         (JSC::Arguments::isTornOff):
396         (JSC::Arguments::offsetOfRegisterArray):
397         (JSC::Arguments::registerArraySizeInBytes):
398         (JSC::Arguments::registerArray):
399         (JSC::Arguments::allocationSize): Deleted.
400
401 2014-10-15  Filip Pizlo  <fpizlo@apple.com>
402
403         Apparently we've had a hole in arguments capture all along
404         https://bugs.webkit.org/show_bug.cgi?id=137767
405
406         Reviewed by Oliver Hunt.
407
408         * dfg/DFGByteCodeParser.cpp:
409         (JSC::DFG::ByteCodeParser::getArgument):
410         * tests/stress/arguments-captured.js: Added.
411         (foo):
412         (bar):
413
414 2014-10-16  Saam Barati  <saambarati1@gmail.com>
415
416         Have the ProfileType node in the DFG convert to a structure check where it can
417         https://bugs.webkit.org/show_bug.cgi?id=137596
418
419         Reviewed by Filip Pizlo.
420
421         TypeSet now keeps track of the live set of Structures it has seen.
422         It no longer nukes everything during GC. It now only removes unmarked
423         structures during GC. This modification allows the ProfileType node 
424         to convert into a CheckStructure node safely in the DFG. 
425
426         This change brings up the conversion rate from ProfileType to Check 
427         or CheckStructrue from ~45% to ~65%. This change also speeds the 
428         type profiler up significantly: consistently between 2x-20x faster. 
429
430         This patch also does some slight refactoring: a few type profiler
431         related fields are moved from VM to TypeProfiler.
432
433         * bytecode/CodeBlock.cpp:
434         (JSC::CodeBlock::CodeBlock):
435         * dfg/DFGFixupPhase.cpp:
436         (JSC::DFG::FixupPhase::fixupNode):
437         * dfg/DFGNode.h:
438         (JSC::DFG::Node::convertToCheckStructure):
439         * heap/Heap.cpp:
440         (JSC::Heap::collect):
441         * runtime/SymbolTable.cpp:
442         (JSC::SymbolTable::uniqueIDForVariable):
443         * runtime/SymbolTable.h:
444         * runtime/TypeLocationCache.cpp:
445         (JSC::TypeLocationCache::getTypeLocation):
446         * runtime/TypeProfiler.cpp:
447         (JSC::TypeProfiler::TypeProfiler):
448         (JSC::TypeProfiler::nextTypeLocation):
449         (JSC::TypeProfiler::invalidateTypeSetCache):
450         (JSC::TypeProfiler::dumpTypeProfilerData):
451         * runtime/TypeProfiler.h:
452         (JSC::TypeProfiler::getNextUniqueVariableID):
453         * runtime/TypeProfilerLog.cpp:
454         (JSC::TypeProfilerLog::processLogEntries):
455         * runtime/TypeSet.cpp:
456         (JSC::TypeSet::addTypeInformation):
457         (JSC::TypeSet::invalidateCache):
458         * runtime/TypeSet.h:
459         (JSC::TypeSet::structureSet):
460         * runtime/VM.cpp:
461         (JSC::VM::VM):
462         (JSC::VM::enableTypeProfiler):
463         (JSC::VM::disableTypeProfiler):
464         (JSC::VM::dumpTypeProfilerData):
465         (JSC::VM::nextTypeLocation): Deleted.
466         (JSC::VM::invalidateTypeSetCache): Deleted.
467         * runtime/VM.h:
468         (JSC::VM::typeProfiler):
469         (JSC::VM::getNextUniqueVariableID): Deleted.
470         * tests/typeProfiler/dfg-jit-optimizations.js:
471
472 2014-10-16  Adrien Destugues  <pulkomandy@gmail.com>
473
474         Use isnan from std namespace in ProfileGenerator.cpp
475         https://bugs.webkit.org/show_bug.cgi?id=137653
476
477         Reviewed by Darin Adler.
478
479         The C++ isnan() function is in the std namespace. The unprefixed isnan
480         may be available because of C99 headers leakage in C++, but should not
481         be used.
482
483         No new tests: no functional change, build fix on platforms which don't
484         export C99 functions in C++.
485
486         * profiler/ProfileGenerator.cpp:
487         (JSC::ProfileGenerator::beginCallEntry):
488         (JSC::ProfileGenerator::endCallEntry):
489         (JSC::ProfileGenerator::didPause):
490         (JSC::ProfileGenerator::didContinue):
491
492 2014-10-15  Michael Saboff  <msaboff@apple.com>
493
494         REGRESSION(r174025): remote inspector crashes frequently when executing inspector frontend's JavaScript
495         https://bugs.webkit.org/show_bug.cgi?id=137758
496
497         Rubber stamped by Filip Pizlo.
498
499         Reverted r174025 for just PutByOffset Nodes.
500
501         * dfg/DFGFixupPhase.cpp:
502         (JSC::DFG::FixupPhase::fixupNode):
503
504 2014-10-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
505
506         Clean up unnecessary PassOwnPtr.h inclusion
507         https://bugs.webkit.org/show_bug.cgi?id=137726
508
509         Reviewed by Chris Dumez.
510
511         * API/JSCallbackObject.h: Remove PassOwnPtr.h inclusion.
512         * bytecode/DFGExitProfile.cpp: ditto.
513
514 2014-10-14  Brent Fulgham  <bfulgham@apple.com>
515
516         [Win] Unreviewed gardening. Ignore Visual Studio *.sdf files.
517
518         * JavaScriptCore.vcxproj: Modified properties svn:ignore and svn:ignore.
519         * JavaScriptCore.vcxproj/jsc: Modified property svn:ignore.
520
521 2014-10-14  Matthew Mirman  <mmirman@apple.com>
522
523         Removes references to LLVMJIT which is no longer part of LLVM
524         https://bugs.webkit.org/show_bug.cgi?id=137708
525
526         Reviewed by Filip Pizlo.
527
528         * Configurations/LLVMForJSC.xcconfig: removed -lLLVMJIT
529         * llvm/LLVMAPIFunctions.h: removed LinkInJIT
530
531 2014-10-14  peavo@outlook.com  <peavo@outlook.com>
532
533         [Win32] Thunk is not implemented.
534         https://bugs.webkit.org/show_bug.cgi?id=137691
535
536         Reviewed by Mark Lam.
537
538         Thunks for functions with double operands (floor, etc.) are not implemented on Win32.
539
540         * jit/ThunkGenerators.cpp:
541
542 2014-10-12  Alexey Proskuryakov  <ap@apple.com>
543
544         Adding svn:ignore so that .pyc files don't show up as new.
545
546         * inspector/scripts/codegen: Added property svn:ignore.
547
548 2014-10-10  Commit Queue  <commit-queue@webkit.org>
549
550         Unreviewed, rolling out r174606.
551         https://bugs.webkit.org/show_bug.cgi?id=137621
552
553         broke a JSC test (Requested by estes on #webkit).
554
555         Reverted changeset:
556
557         "Various arguments optimisations in codegen fail to account
558         for arguments being in lexical record"
559         https://bugs.webkit.org/show_bug.cgi?id=137617
560         http://trac.webkit.org/changeset/174606
561
562 2014-10-10  Oliver Hunt  <oliver@apple.com>
563
564         Various arguments optimisations in codegen fail to account for arguments being in lexical record
565         https://bugs.webkit.org/show_bug.cgi?id=137617
566
567         Reviewed by Michael Saboff.
568
569         Rework the way we track |arguments| references so that we don't try
570         to use the |arguments| reference on the stack if it's not safe.
571
572         To do this without nuking performance it was necessary to update
573         the parser to track modification of the |arguments| reference
574         itself.
575
576         * bytecode/CodeBlock.cpp:
577         * bytecompiler/BytecodeGenerator.cpp:
578         (JSC::BytecodeGenerator::BytecodeGenerator):
579         (JSC::BytecodeGenerator::willResolveToArguments):
580         (JSC::BytecodeGenerator::uncheckedLocalArgumentsRegister):
581         (JSC::BytecodeGenerator::emitCall):
582         (JSC::BytecodeGenerator::emitConstruct):
583         (JSC::BytecodeGenerator::emitEnumeration):
584         (JSC::BytecodeGenerator::uncheckedRegisterForArguments): Deleted.
585         * bytecompiler/BytecodeGenerator.h:
586         (JSC::BytecodeGenerator::hasSafeLocalArgumentsRegister):
587         * bytecompiler/NodesCodegen.cpp:
588         (JSC::BracketAccessorNode::emitBytecode):
589         (JSC::DotAccessorNode::emitBytecode):
590         (JSC::getArgumentByVal):
591         (JSC::CallFunctionCallDotNode::emitBytecode):
592         (JSC::ApplyFunctionCallDotNode::emitBytecode):
593         (JSC::ArrayPatternNode::emitDirectBinding):
594         * interpreter/StackVisitor.cpp:
595         (JSC::StackVisitor::Frame::existingArguments):
596         * parser/Nodes.h:
597         (JSC::ScopeNode::modifiesArguments):
598         * parser/Parser.cpp:
599         (JSC::Parser<LexerType>::parseInner):
600         * parser/Parser.h:
601         (JSC::Scope::getCapturedVariables):
602         * parser/ParserModes.h:
603
604 2014-10-09  Joseph Pecoraro  <pecoraro@apple.com>
605
606         Web Inspector: Remove unused generator code
607         https://bugs.webkit.org/show_bug.cgi?id=137564
608
609         Reviewed by Brian Burg.
610
611         * inspector/scripts/codegen/generate_backend_dispatcher_header.py:
612         (BackendDispatcherHeaderGenerator.generate_output): Deleted.
613         * inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:
614         (BackendDispatcherImplementationGenerator.generate_output):
615         * inspector/scripts/codegen/generate_frontend_dispatcher_header.py:
616         (FrontendDispatcherHeaderGenerator.generate_output):
617         * inspector/scripts/codegen/generate_frontend_dispatcher_implementation.py:
618         (FrontendDispatcherImplementationGenerator.generate_output):
619         * inspector/scripts/codegen/generate_protocol_types_header.py:
620         (ProtocolTypesHeaderGenerator.generate_output):
621         * inspector/scripts/codegen/generate_protocol_types_implementation.py:
622         (ProtocolTypesImplementationGenerator.generate_output):
623         inputFilename is now handled by the generic generator base class.
624
625         * inspector/scripts/codegen/models.py:
626         (Framework.fromString):
627         (Frameworks):
628         * inspector/scripts/generate-inspector-protocol-bindings.py:
629         The WTF framework is unused. Remove unexpected frameworks.
630
631 2014-10-09  Dean Jackson  <dino@apple.com>
632
633         Remove ENABLE_CSS3_CONDITIONAL_RULES
634         https://bugs.webkit.org/show_bug.cgi?id=137571
635
636         Reviewed by Simon Fraser.
637
638         * Configurations/FeatureDefines.xcconfig:
639
640 2014-10-09  Adrien Destugues  <pulkomandy@gmail.com>
641
642         Fix compiler warning on noreturn function
643         https://bugs.webkit.org/show_bug.cgi?id=137558
644
645         Reviewed by Darin Adler.
646
647         The function is marked "noreturn", but the stub implementation does
648         return. No new tests: function is never called. Only fixes a warning.
649
650         * heap/HeapStatistics.cpp:
651         (JSC::HeapStatistics::exitWithFailure):
652
653 2014-10-09  Akos Kiss  <akiss@inf.u-szeged.hu>
654
655         Ensure that inline assembly Thunk functions don't conflict with the section designations of the compiler
656         https://bugs.webkit.org/show_bug.cgi?id=137434
657
658         Reviewed by Michael Saboff.
659
660         The ARM64 version of the defineUnaryDoubleOpWrapper macro in
661         ThunkGenerators.cpp contains inline assembly with .text assembler
662         directive followed by a static variable declaration. This macro gets
663         expanded several times afterwards, however, only during the compilation
664         of the first expansion does gcc insert a .data assembler directive
665         before the assembled version of the static variable. Thus, only the
666         first variable gets allocated in the .data section, all the others
667         remain in .text. If JavaScriptCore is built as a shared library then
668         this causes a segmentation fault during dynamic linking.
669
670         This patch puts a .previous directive at the end of the inline assembly
671         to ensure that the assumptions of the compiler about the sections are
672         not broken and the following variable goes to the right place.
673
674         * jit/ThunkGenerators.cpp:
675
676 2014-10-08  Oliver Hunt  <oliver@apple.com>
677
678         Make sure arguments tearoff is performed through the environment record if necessary
679         https://bugs.webkit.org/show_bug.cgi?id=137538
680
681         Reviewed by Michael Saboff.
682
683         Fairly simple change.  If we have a lexical record we need to pull the unmodified
684         arguments object from the record and then use the standard op_tear_off_arguments
685         instruction on the temporary.
686
687         * bytecompiler/BytecodeGenerator.cpp:
688         (JSC::BytecodeGenerator::emitGetOwnScope):
689         (JSC::BytecodeGenerator::emitReturn):
690         * bytecompiler/BytecodeGenerator.h:
691
692 2014-10-08  peavo@outlook.com  <peavo@outlook.com>
693
694         [WinCairo] Enable JIT on 32-bit.
695         https://bugs.webkit.org/show_bug.cgi?id=137521
696
697         Reviewed by Mark Lam.
698
699         Enable JIT on Windows 32-bit, but disable it at runtime if SSE2 is not present.
700
701         * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl:
702         * runtime/Options.cpp:
703         (JSC::recomputeDependentOptions):
704
705 2014-10-08  Brent Fulgham  <bfulgham@apple.com>
706
707         [Win] Resolve some static analysis warnings in JavaScriptCore
708         https://bugs.webkit.org/show_bug.cgi?id=137508
709
710         Reviewed by Geoffrey Garen.
711
712         * API/tests/testapi.c:
713         (assertEqualsAsCharactersPtr): MSVC insists on using %Iu as its format specifier
714         for size_t. Make the format string conditional on Windows.
715         * bytecode/Watchpoint.h:
716         (JSC::InlineWatchpointSet::encodeState): Silence warning about left-shifting 'state'
717         as a 32-bit value before OR-ing it with a 64-bit value.
718         * dfg/DFGFixupPhase.cpp:
719         (JSC::DFG::FixupPhase::fixupNode): Silence warning about operator prescedence
720         causing the || operation to take place before the >= test.
721         * dfg/DFGInPlaceAbstractState.cpp:
722         (JSC::DFG::InPlaceAbstractState::endBasicBlock): Ditto (|| before !=)
723         * testRegExp.cpp:
724         (testOneRegExp): Ditto %Iu format specifier.
725         * yarr/YarrInterpreter.cpp:
726         (JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext): Silence warning about
727         using a 32-bit value as part of a 64-bit calculation.
728
729 2014-10-07  Simon Fraser  <simon.fraser@apple.com>
730
731         Roll-over Changelogs.
732
733         * ChangeLog-2014-10-07: Copied from Source/JavaScriptCore/ChangeLog.
734
735 == Rolled over to ChangeLog-2014-10-07 ==