JavaScriptCore:
[WebKit-https.git] / JavaScriptCore / ChangeLog
1 2007-10-14  Maciej Stachowiak  <mjs@apple.com>
2
3         Reviewed by Darin.
4
5         - fixes for "New JavaScript benchmark"
6         http://bugs.webkit.org/show_bug.cgi?id=15515
7         
8         * kjs/testkjs.cpp:
9         (TestFunctionImp::callAsFunction): Implement "load" for compatibility
10         with SpiderMonkey.
11         (TestFunctionImp::): ditto
12         (doIt): ditto
13         (kjsmain): Drop useless --> from output.
14
15 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
16
17         Removed unnecessary #include.
18
19         * API/JSObjectRef.cpp:
20
21 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
22
23         Double-reverse build fix. My tree was out of date.
24
25         * kjs/nodes.cpp:
26         (NumberNode::evaluate):
27
28 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
29
30         Build fix.
31
32         * kjs/nodes.cpp:
33         (NumberNode::evaluate):
34
35 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
36
37         Reviewed by Darin Adler.
38         
39         Removed surprising self-named "hack" that made nested functions 
40         available as named properties of their containing functions, and placed
41         containing function objects in the scope chains of nested functions.
42         
43         There were a few reasons to remove this "hack:"
44
45         1. It contradicted FF, IE, and the ECMA spec.
46
47         2. It incurred a performance penalty, since merely parsing a function 
48         required parsing its body for nested functions (and so on).
49
50         3. SVN history contains no explanation for why it was added. It was just
51         legacy code in a large merge a long, long time ago.
52
53         [ Patch broken off from http://bugs.webkit.org/show_bug.cgi?id=14868 ]
54
55         * kjs/nodes.cpp:
56         (FuncDeclNode::processFuncDecl):
57
58 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
59
60         Reviewed by Darin Adler.
61         
62         Removed the concept of AnonymousCode. It was unused, and it doesn't
63         exist in the ECMA spec.
64         
65         [ Patch broken off from http://bugs.webkit.org/show_bug.cgi?id=14868 ]
66
67         * kjs/Context.cpp:
68         (KJS::Context::Context):
69         * kjs/function.h:
70         (KJS::):
71         * kjs/nodes.cpp:
72         (ReturnNode::execute):
73
74 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
75
76         Reviewed by Darin Adler.
77         
78         Made function parameters DontDelete. This matches FF and the vague
79         description in ECMA 10.1.3. It's also required in order to make
80         symbol table based lookup of function parameters valid. (If the 
81         parameters aren't DontDelete, you can't guarantee that you'll find
82         them later in the symbol table.)
83
84         [ Patch broken off from http://bugs.webkit.org/show_bug.cgi?id=14868 ]
85
86         * kjs/function.cpp:
87         (KJS::FunctionImp::passInParameters):
88
89 2007-10-15  Geoffrey Garen  <ggaren@apple.com>
90
91         Reviewed by Maciej Stachowiak.
92         
93         Some Vector optimizations. These are especially important when using
94         Vector as a stack for implementing recursive algorithms iteratively.
95         
96         [ Broken off from http://bugs.webkit.org/show_bug.cgi?id=14868 ]
97
98         1. Added shrink(), which is a version of resize() that you can call
99         to save a branch / improve code generation and inlining when you know 
100         that the vector is not getting bigger.
101         
102         2. Changed subclassing relationship in VectorBuffer to remove a call to
103         fastFree() in the destructor for the inlineCapacity != 0 template
104         specialization. This brings inline Vectors one step closer to true
105         stack-allocated arrays.
106         
107         Also changed abort() to CRASH(), since the latter works better.
108
109         * wtf/Vector.h:
110         (WTF::VectorBufferBase::allocateBuffer):
111         (WTF::VectorBufferBase::deallocateBuffer):
112         (WTF::VectorBufferBase::VectorBufferBase):
113         (WTF::VectorBufferBase::~VectorBufferBase):
114         (WTF::):
115         (WTF::VectorBuffer::VectorBuffer):
116         (WTF::VectorBuffer::~VectorBuffer):
117         (WTF::VectorBuffer::deallocateBuffer):
118         (WTF::VectorBuffer::releaseBuffer):
119         (WTF::Vector::clear):
120         (WTF::Vector::removeLast):
121         (WTF::::operator):
122         (WTF::::fill):
123         (WTF::::shrink):
124
125 2007-10-12  Geoffrey Garen  <ggaren@apple.com>
126
127         Reviewed by Maciej Stachowiak.
128         
129         Fixed http://bugs.webkit.org/show_bug.cgi?id=15490
130         Iteration statements sometimes incorrectly evaluate to the empty value 
131         (KDE r670547). 
132         
133         [ Broken off from http://bugs.webkit.org/show_bug.cgi?id=14868 ]
134         
135         This patch is a merge of KDE r670547, with substantial modification 
136         for performance.
137         
138         It fixes do-while statements to evaluate to a value. (They used
139         to evaluate to the empty value in all cases.) 
140
141         It also fixes SourceElementsNode to maintain the value of abnormal 
142         completions like "break" and "continue."
143         
144         It also re-works the main execution loop in SourceElementsNode so that
145         it (1) makes a little more sense and (2) avoids unnecessary work. This 
146         is a .28% speedup on command-line JS iBench.
147
148         * kjs/nodes.cpp:
149         (DoWhileNode::execute):
150         (SourceElementsNode::execute):
151
152 2007-10-15  Simon Hausmann  <hausmann@kde.org>
153
154         Reviewed by Lars.
155
156         Fix compilation with gcc 4.3 by including 'limits' due to the use of std::numeric_limits.
157
158         * wtf/HashTraits.h:
159
160 2007-10-5  Kevin Ollivier  <kevino@theolliviers.com>
161  
162         Reviewed by Adam.
163         
164         Add support for MSVC7, and fix cases where PLATFORM(WIN) should
165         be PLATFORM(WIN_OS) for other ports building on Windows.
166  
167         * kjs/DateMath.cpp:
168         (KJS::getDSTOffsetSimple):
169         * kjs/JSImmediate.h:
170         * wtf/Assertions.cpp:
171         * wtf/Assertions.h:
172         * wtf/Platform.h:
173         * wtf/StringExtras.h:
174         (snprintf):
175         (vsnprintf):
176
177 2007-10-14  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
178
179         Reviewed by Darin.
180
181         Adds NegateNode optimization from KJS. The relevant revision in KDE
182         is 666736.
183
184         * kjs/grammar.y:
185         * kjs/nodes.cpp:
186         (NumberNode::evaluate):
187         * kjs/nodes.h:
188         (KJS::Node::):
189         (KJS::NumberNode::):
190         * kjs/nodes2string.cpp:
191         (NumberNode::streamTo):
192
193 2007-10-14  Jason Foreman  <jason@threeve.org>
194
195         Reviewed by Maciej.
196
197         Fix http://bugs.webkit.org/show_bug.cgi?id=15145
198         
199         Ensure that if adjusting n to minimize the difference of n*intPow10(e-p+1) to x,
200         that the property n < intPow10(p) is maintained.
201
202         * kjs/number_object.cpp:
203         (NumberProtoFunc::callAsFunction):
204
205 == Rolled over to ChangeLog-2007-10-14 ==