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