|
1 2009-10-30 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> |
|
2 |
|
3 Reviewed by Kenneth Rohde Christiansen. |
|
4 |
|
5 [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml() |
|
6 |
|
7 This ensures that long-running JavaScript (for example due to a modal alert() dialog), |
|
8 will not trigger a deferred load after only 500ms (the default tokenizer delay) while |
|
9 still giving a reasonable timeout (10 seconds) to prevent deadlock. |
|
10 |
|
11 https://bugs.webkit.org/show_bug.cgi?id=29381 |
|
12 |
|
13 * runtime/TimeoutChecker.h: Add getter for the timeout interval |
|
14 |
|
15 2010-07-20 Steve Falkenburg <sfalken@apple.com> |
|
16 |
|
17 Reviewed by Adam Roben. |
|
18 |
|
19 WebKit on Windows should build optionally with an unversioned ICU DLL |
|
20 https://bugs.webkit.org/show_bug.cgi?id=42722 |
|
21 <rdar://problem/8211743> JavaScriptCore needs to link against unversioned ICU |
|
22 |
|
23 Dynamically create a new header, ICUVersion.h, as part of build-generated-files.sh. |
|
24 Header contains a preprocessor define (U_DISABLE_RENAMING) indicating to ICU whether the ICU API |
|
25 should be namespaced with the current ICU version number. Proper value is determined |
|
26 by checking for the presence of libicuuc.lib, the unversioned copy of ICU. |
|
27 |
|
28 To get the proper value for U_DISABLE_RENAMING into all source files, we force |
|
29 the include of ICUVersion.h (our generated header) via the compiler options. |
|
30 |
|
31 Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib) |
|
32 we copy the ICU lib to an intermediate location under obj with a common name. This |
|
33 allows us to link properly with either without adding a new build configuration. |
|
34 |
|
35 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: |
|
36 Copy ICU libs into a common location with a common name. |
|
37 Add additional library search path to pick up icu lib. |
|
38 Change ICU library filename specified to linker. |
|
39 Add forced include of ICUVersion.h. |
|
40 * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Generate ICUVersion.h |
|
41 * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops: Add forced include of ICUVersion.h. |
|
42 * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: |
|
43 Copy ICU libs into a common location with a common name. |
|
44 Add additional library search path to pick up icu lib. |
|
45 Change ICU library filename specified to linker. |
|
46 Add forced include of ICUVersion.h. |
|
47 * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: |
|
48 Copy ICU libs into a common location with a common name. |
|
49 Add additional library search path to pick up icu lib. |
|
50 Change ICU library filename specified to linker. |
|
51 Add forced include of ICUVersion.h. |
|
52 |
|
53 2010-07-20 Steve Falkenburg <sfalken@apple.com> |
|
54 |
|
55 Re-save vsprops files after no-op edits in Visual Studio |
|
56 to fix manual edit issues. |
|
57 |
|
58 2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com> |
|
59 |
|
60 Reviewed by Steve Block. |
|
61 |
|
62 Need to be able to configure Geolocation policy regarding user permissions |
|
63 https://bugs.webkit.org/show_bug.cgi?id=42068 |
|
64 |
|
65 If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy |
|
66 by default |
|
67 |
|
68 * wtf/Platform.h: |
|
69 |
|
70 2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com> |
|
71 |
|
72 Unreviewed, rolling out r63742. |
|
73 http://trac.webkit.org/changeset/63742 |
|
74 https://bugs.webkit.org/show_bug.cgi?id=42641 |
|
75 |
|
76 Broke Leopard Intel build. (Requested by bbandix on #webkit). |
|
77 |
|
78 * wtf/Platform.h: |
|
79 |
|
80 2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com> |
|
81 |
|
82 Reviewed by Steve Block. |
|
83 |
|
84 Need to be able to configure Geolocation policy regarding user permissions |
|
85 https://bugs.webkit.org/show_bug.cgi?id=42068 |
|
86 |
|
87 If CLIENT_BASED_GEOLOCATION is enabled, enable preemtive permission policy |
|
88 by default |
|
89 |
|
90 * wtf/Platform.h: |
|
91 |
|
92 2010-07-19 Dirk Schulze <krit@webkit.org> |
|
93 |
|
94 Reviewed by Nikolas Zimmermann. |
|
95 |
|
96 SVG CleanUp of SVGPathData parsing |
|
97 https://bugs.webkit.org/show_bug.cgi?id=41410 |
|
98 |
|
99 Added piOverTwo to MathExtras. |
|
100 |
|
101 * wtf/MathExtras.h: |
|
102 |
|
103 2010-07-19 Mike Moretti <mike.moretti@nokia.com> |
|
104 |
|
105 Reviewed by Laszlo Gombos. |
|
106 |
|
107 [Symbian] Build fix after r63404. |
|
108 |
|
109 Implement isValid() function for the Symbian executable allocator. |
|
110 |
|
111 * jit/ExecutableAllocatorSymbian.cpp: |
|
112 (JSC::ExecutableAllocator::isValid): |
|
113 |
|
114 2010-07-19 Chris Marrin <cmarrin@apple.com> |
|
115 |
|
116 Reviewed by Darin Adler. |
|
117 |
|
118 https://bugs.webkit.org/show_bug.cgi?id=42118 |
|
119 Disable WebGL on Leopard for now. |
|
120 |
|
121 LayoutTests fail on some graphics hardware on Leopard because one of the features we use, |
|
122 GL_ARB_framebuffer_object, is not universally available in Leopard like it is in |
|
123 SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a |
|
124 software OpenGL driver on machines without this support. |
|
125 |
|
126 * Configurations/FeatureDefines.xcconfig: |
|
127 |
|
128 2010-07-16 Darin Adler <darin@apple.com> |
|
129 |
|
130 Reviewed by Sam Weinig. |
|
131 |
|
132 Use OwnPtr for CodeBlock objects |
|
133 https://bugs.webkit.org/show_bug.cgi?id=42490 |
|
134 |
|
135 * runtime/Executable.cpp: |
|
136 (JSC::EvalExecutable::EvalExecutable): Moved this here and made it non-inline. |
|
137 Eliminated the code that used to initialize the raw pointer since it's now |
|
138 an OwnPtr. |
|
139 (JSC::EvalExecutable::~EvalExecutable): Removed the explicit delete here. |
|
140 (JSC::ProgramExecutable::ProgramExecutable): Ditto. |
|
141 (JSC::ProgramExecutable::~ProgramExecutable): Ditto. |
|
142 (JSC::FunctionExecutable::FunctionExecutable): Ditto. |
|
143 (JSC::FunctionExecutable::~FunctionExecutable): Ditto. |
|
144 (JSC::EvalExecutable::compileInternal): Added use of adoptPtr and get. |
|
145 (JSC::ProgramExecutable::compileInternal): Ditto. |
|
146 (JSC::FunctionExecutable::compileForCallInternal): Ditto. |
|
147 (JSC::FunctionExecutable::compileForConstructInternal): Ditto. |
|
148 (JSC::FunctionExecutable::recompile): Use clear instead of delete followed |
|
149 by assignment of 0. |
|
150 |
|
151 * runtime/Executable.h: Moved constructors to the cpp file and changed |
|
152 raw pointers to OwnPtr. |
|
153 |
|
154 2010-07-19 Lucas De Marchi <lucas.demarchi@profusion.mobi> |
|
155 |
|
156 Reviewed by Kenneth Rohde Christiansen. |
|
157 |
|
158 [EFL] Fix build on 64-bit systems. According to |
|
159 JavaScriptCore/wtf/Platform.h, x86_64 uses fixed allocator, which |
|
160 needs jit/ExecutableAllocatorFixedVMPool.cpp to be included in build |
|
161 system. |
|
162 https://bugs.webkit.org/show_bug.cgi?id=42559 |
|
163 |
|
164 * CMakeListsEfl.txt: add missing file for x86_64. |
|
165 |
|
166 2010-07-16 Leandro Pereira <leandro@profusion.mobi> |
|
167 |
|
168 [EFL] Unreviewed build system cleanup. |
|
169 |
|
170 Move ExecutableAllocator{FixedVMPool,Posix,Symbian,Win}.cpp from |
|
171 root CMakeLists.txt to the platform CMakeLists.txt. |
|
172 |
|
173 * CMakeLists.txt: |
|
174 * CMakeListsEfl.txt: Add ExecutableAllocatorPosix.cpp. |
|
175 |
|
176 2010-07-16 Oliver Hunt <oliver@apple.com> |
|
177 |
|
178 Reviewed by Geoffrey Garen. |
|
179 |
|
180 ES5 allows use of reserved words as IdentifierName |
|
181 https://bugs.webkit.org/show_bug.cgi?id=42471 |
|
182 |
|
183 Modify the lexer to allow us to avoid identifying reserved |
|
184 words in those contexts where they are valid identifiers, and |
|
185 we know it's safe. Additionally tag the reserved word tokens |
|
186 so we can easily identify them in those cases where we can't |
|
187 guarantee that we've skipped reserved word identification. |
|
188 |
|
189 * parser/JSParser.cpp: |
|
190 (JSC::JSParser::next): |
|
191 (JSC::JSParser::parseProperty): |
|
192 (JSC::JSParser::parseMemberExpression): |
|
193 * parser/JSParser.h: |
|
194 (JSC::): |
|
195 * parser/Lexer.cpp: |
|
196 (JSC::Lexer::lex): |
|
197 * parser/Lexer.h: |
|
198 (JSC::Lexer::): |
|
199 |
|
200 2010-07-16 Anders Carlsson <andersca@apple.com> |
|
201 |
|
202 Reviewed by Sam Weinig. |
|
203 |
|
204 clang++ build fixes for JavaScriptCore and WebCore |
|
205 https://bugs.webkit.org/show_bug.cgi?id=42478 |
|
206 |
|
207 * runtime/RegExpKey.h: |
|
208 (JSC::operator==): |
|
209 Move the RegExpKey equals operator into the JSC namespace so it can be found by ADL. |
|
210 |
|
211 2010-07-16 Anders Carlsson <andersca@apple.com> |
|
212 |
|
213 Reviewed by David Levin. |
|
214 |
|
215 Really add WARN_UNUSED_RESULT to leakRef |
|
216 https://bugs.webkit.org/show_bug.cgi?id=42464 |
|
217 |
|
218 * wtf/PassRefPtr.h: |
|
219 (WTF::PassRefPtr::): |
|
220 (WTF::NonNullPassRefPtr::): |
|
221 Put the WARN_UNUSED_RESULT attribute at the right place. |
|
222 |
|
223 * wtf/RetainPtr.h: |
|
224 (WTF::RetainPtr::releaseRef): |
|
225 Remove WARN_UNUSED_RESULT here for now, it leads to two warnings that need |
|
226 to be fixed first. |
|
227 |
|
228 2010-07-15 Victor Wang <victorw@chromium.org> |
|
229 |
|
230 Reviewed by David Levin. |
|
231 |
|
232 [Chromium] Disable c4291 for chromium windows multi dll build. |
|
233 |
|
234 https://bugs.webkit.org/show_bug.cgi?id=42177 |
|
235 |
|
236 * JavaScriptCore.gyp/JavaScriptCore.gyp: |
|
237 |
|
238 2010-07-15 Geoffrey Garen <ggaren@apple.com> |
|
239 |
|
240 Reviewed by Maciej Stachowiak. |
|
241 |
|
242 Crash entering mail.yahoo.com |
|
243 https://bugs.webkit.org/show_bug.cgi?id=42394 |
|
244 |
|
245 * bytecompiler/BytecodeGenerator.cpp: |
|
246 (JSC::BytecodeGenerator::argumentNumberFor): Added a NULL check. If the |
|
247 identifier we're resolving is not a local variable, registerFor returns |
|
248 NULL. |
|
249 |
|
250 * bytecompiler/NodesCodegen.cpp: |
|
251 (JSC::FunctionBodyNode::emitBytecode): Unrelated to the crash, but I |
|
252 noticed this while working on it: No need to NULL-check returnNode, |
|
253 since an early return has already done so. |
|
254 |
|
255 2010-07-15 Martin Robinson <mrobinson@igalia.com> |
|
256 |
|
257 Reviewed by Oliver Hunt. |
|
258 |
|
259 [GTK] Simplify the distribution step |
|
260 https://bugs.webkit.org/show_bug.cgi?id=42414 |
|
261 |
|
262 * GNUmakefile.am: Add extra dist files directly to EXTRA_DIST instead |
|
263 of adding them by proxy via javascriptcore_dist. Sort the EXTRA_DIST list. |
|
264 Refer to create_hash_table and create_regexp_tables directly, as is the |
|
265 behavior with other code generation scripts. |
|
266 |
|
267 2010-07-15 Oliver Hunt <oliver@apple.com> |
|
268 |
|
269 Reviewed by Geoff Garen. |
|
270 |
|
271 Fix dumping of op_put_by_id. |
|
272 |
|
273 * bytecode/CodeBlock.cpp: |
|
274 (JSC::CodeBlock::printPutByIdOp): |
|
275 |
|
276 2010-07-15 Zoltan Herczeg <zherczeg@webkit.org> |
|
277 |
|
278 Reviewed by Darin Adler. |
|
279 |
|
280 Refactoring some parts of the lexer |
|
281 https://bugs.webkit.org/show_bug.cgi?id=41845 |
|
282 |
|
283 This patch is a precursor of refactoring the identifier |
|
284 parsing, which currently slows down the lexer, and not |
|
285 ready for landing. This patch contains those sources, |
|
286 which does not slow down the lexer (mainly style changes). |
|
287 |
|
288 SunSpider: no change (529.4ms to 528.7ms) |
|
289 --parse-only: no change (31.0ms to 31.2ms) |
|
290 |
|
291 * parser/Lexer.cpp: |
|
292 (JSC::isIdentStart): using typesOfASCIICharacters to determine |
|
293 whether the current character is in identifier start |
|
294 (JSC::isIdentPart): using typesOfASCIICharacters to determine |
|
295 whether the current character is in identifier part |
|
296 (JSC::Lexer::parseString): style fix |
|
297 (JSC::Lexer::lex): removing the else after the main which |
|
298 which reduces code duplication |
|
299 |
|
300 2010-07-15 Mark Rowe <mrowe@apple.com> |
|
301 |
|
302 Update the sorting in the Xcode project files. |
|
303 |
|
304 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
305 |
|
306 2010-07-14 Oliver Hunt <oliver@apple.com> |
|
307 |
|
308 Reviewed by Gavin Barraclough. |
|
309 |
|
310 Make sure that mixed interpreter/jit builds don't try to use the jit if the allocator fails |
|
311 https://bugs.webkit.org/show_bug.cgi?id=42310 |
|
312 |
|
313 Add some null checks to deal with the Fixed VM allocator failing |
|
314 to get the requested executable region, delay the creation of the |
|
315 JITStubs in JSGlobalData until after we know whether we're using |
|
316 the JIT. |
|
317 |
|
318 * jit/ExecutableAllocator.h: |
|
319 (JSC::ExecutableAllocator::ExecutableAllocator): |
|
320 (JSC::ExecutableAllocator::poolForSize): |
|
321 * jit/ExecutableAllocatorFixedVMPool.cpp: |
|
322 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): |
|
323 (JSC::FixedVMPoolAllocator::alloc): |
|
324 (JSC::FixedVMPoolAllocator::free): |
|
325 (JSC::FixedVMPoolAllocator::isValid): |
|
326 (JSC::ExecutableAllocator::isValid): |
|
327 (JSC::ExecutablePool::systemAlloc): |
|
328 (JSC::ExecutablePool::systemRelease): |
|
329 * jit/ExecutableAllocatorPosix.cpp: |
|
330 (JSC::ExecutableAllocator::isValid): |
|
331 * jit/ExecutableAllocatorWin.cpp: |
|
332 (JSC::ExecutableAllocator::isValid): |
|
333 * jit/JIT.cpp: |
|
334 (JSC::JIT::linkCall): |
|
335 (JSC::JIT::linkConstruct): |
|
336 * jit/JIT.h: |
|
337 (JSC::JIT::compileCTIMachineTrampolines): |
|
338 (JSC::JIT::compileCTINativeCall): |
|
339 * jit/JITArithmetic.cpp: |
|
340 (JSC::JIT::emit_op_mod): |
|
341 * jit/JITArithmetic32_64.cpp: |
|
342 (JSC::JIT::emit_op_mod): |
|
343 * jit/JITCall.cpp: |
|
344 (JSC::JIT::compileOpCallVarargs): |
|
345 (JSC::JIT::compileOpCall): |
|
346 (JSC::JIT::compileOpCallSlowCase): |
|
347 * jit/JITCall32_64.cpp: |
|
348 (JSC::JIT::compileOpCallVarargs): |
|
349 (JSC::JIT::compileOpCall): |
|
350 (JSC::JIT::compileOpCallSlowCase): |
|
351 * jit/JITOpcodes.cpp: |
|
352 (JSC::JIT::privateCompileCTINativeCall): |
|
353 * jit/JITStubs.cpp: |
|
354 (JSC::JITThunks::JITThunks): |
|
355 (JSC::JITThunks::tryCacheGetByID): |
|
356 (JSC::JITThunks::hostFunctionStub): |
|
357 * jit/ThunkGenerators.cpp: |
|
358 (JSC::charCodeAtThunkGenerator): |
|
359 (JSC::charAtThunkGenerator): |
|
360 (JSC::fromCharCodeThunkGenerator): |
|
361 (JSC::sqrtThunkGenerator): |
|
362 (JSC::powThunkGenerator): |
|
363 * runtime/Executable.h: |
|
364 (JSC::NativeExecutable::create): |
|
365 * runtime/JSGlobalData.cpp: |
|
366 (JSC::JSGlobalData::JSGlobalData): |
|
367 (JSC::JSGlobalData::getHostFunction): |
|
368 * runtime/JSGlobalData.h: |
|
369 (JSC::JSGlobalData::getCTIStub): |
|
370 * yarr/RegexJIT.cpp: |
|
371 (JSC::Yarr::jitCompileRegex): |
|
372 |
|
373 2010-07-14 Gavin Barraclough <barraclough@apple.com> |
|
374 |
|
375 Speculative Qt/Windows build fix. |
|
376 |
|
377 * jit/JITStubs.h: |
|
378 |
|
379 2010-07-14 Gavin Barraclough <barraclough@apple.com> |
|
380 |
|
381 Reviewed by Oliver Hunt. |
|
382 |
|
383 https://bugs.webkit.org/show_bug.cgi?id=42280 |
|
384 JIT_STUB_ARGUMENT_VA_LIST is only slowing us down! Remove it! |
|
385 |
|
386 * jit/JIT.h: |
|
387 * jit/JITInlineMethods.h: |
|
388 (JSC::JIT::restoreArgumentReferenceForTrampoline): |
|
389 * jit/JITStubs.cpp: |
|
390 * jit/JITStubs.h: |
|
391 * wtf/Platform.h: |
|
392 |
|
393 2010-07-14 Oliver Hunt <oliver@apple.com> |
|
394 |
|
395 RS=Geoff Garen. |
|
396 |
|
397 Guard the CF path of interpreter vs. jit selection with PLATFORM(CF) |
|
398 |
|
399 This allows the code to work on windows as well. Also unifies the |
|
400 environment variable with the preference name. |
|
401 |
|
402 * runtime/JSGlobalData.cpp: |
|
403 (JSC::JSGlobalData::JSGlobalData): |
|
404 |
|
405 2010-07-14 Oliver Hunt <oliver@apple.com> |
|
406 |
|
407 Reviewed by Don Melton. |
|
408 |
|
409 Crash when trying to enable JIT and Interpreter in a single build. |
|
410 |
|
411 CFPreferences code added at the last minute failed to account for |
|
412 the preference not being present and then attempted to CFRelease |
|
413 a null value. |
|
414 |
|
415 * runtime/JSGlobalData.cpp: |
|
416 (JSC::JSGlobalData::JSGlobalData): |
|
417 |
|
418 2010-07-14 Zoltan Herczeg <zherczeg@webkit.org> |
|
419 |
|
420 Reviewed by Darin Adler. |
|
421 |
|
422 Change indentations in the lexer |
|
423 https://bugs.webkit.org/show_bug.cgi?id=41845 |
|
424 |
|
425 This patch fixes an old, indentation error comes from kjs, |
|
426 as webkit has a different style rule for switches, and change |
|
427 the indentation of the main switch, which is a temporary |
|
428 style error. This change makes easier to see the behavioural |
|
429 changes in the follow-up patch. |
|
430 |
|
431 No behavioural changes. |
|
432 |
|
433 * parser/Lexer.cpp: |
|
434 (JSC::singleEscape): |
|
435 (JSC::Lexer::lex): |
|
436 |
|
437 2010-07-13 Sheriff Bot <webkit.review.bot@gmail.com> |
|
438 |
|
439 Unreviewed, rolling out r63262. |
|
440 http://trac.webkit.org/changeset/63262 |
|
441 https://bugs.webkit.org/show_bug.cgi?id=42229 |
|
442 |
|
443 broke Windows compile (Requested by bweinstein on #webkit). |
|
444 |
|
445 * API/tests/testapi.c: |
|
446 (assertEqualsAsCharactersPtr): |
|
447 (main): |
|
448 * testapi.pro: Removed. |
|
449 |
|
450 2010-07-13 Oliver Hunt <oliver@apple.com> |
|
451 |
|
452 Reviewed by Gavin Barraclough. |
|
453 |
|
454 ES5 requires BOMs to be treated as whitespace |
|
455 https://bugs.webkit.org/show_bug.cgi?id=42218 |
|
456 |
|
457 Add BOM character to the Lexer's definition of whitespace, |
|
458 and remove the logic that dealt with stripping BOMs and |
|
459 caching the cleaned string. |
|
460 |
|
461 * parser/Lexer.h: |
|
462 (JSC::Lexer::isWhiteSpace): |
|
463 * parser/SourceProvider.h: |
|
464 (JSC::UStringSourceProvider::create): |
|
465 (JSC::UStringSourceProvider::UStringSourceProvider): |
|
466 * wtf/text/StringImpl.h: |
|
467 |
|
468 2010-07-13 Andreas Kling <andreas.kling@nokia.com> |
|
469 |
|
470 Reviewed by Darin Adler. |
|
471 |
|
472 Avoid slow-path for put() in Array.splice() |
|
473 https://bugs.webkit.org/show_bug.cgi?id=41920 |
|
474 |
|
475 Defer creation of the returned array until its final size is known |
|
476 to avoid growing it while adding elements. |
|
477 |
|
478 * runtime/JSArray.cpp: |
|
479 (JSC::JSArray::JSArray): Add two modes of creation, CreateInitialized (old) |
|
480 and CreateCompact (which should only be used when constructing arrays whose |
|
481 size and contents are known at the time of creation.) |
|
482 (JSC::JSArray::setLength): Skip first consistency check if in CreateCompact |
|
483 initialization mode. (Only applies to non-empty arrays.) |
|
484 (JSC::JSArray::checkConsistency): Build fix (JSValue::type() is gone) |
|
485 * runtime/JSArray.h: |
|
486 (JSC::JSArray::uncheckedSetIndex): Added for fast initialization of compact |
|
487 arrays. Does no bounds or other sanity checking. |
|
488 * runtime/ArrayPrototype.cpp: |
|
489 (JSC::arrayProtoFuncSplice): Optimized creation of the returned JSArray. |
|
490 * runtime/ArrayConstructor.cpp: |
|
491 (JSC::constructArrayWithSizeQuirk): Pass CreateInitialized to ctor. |
|
492 * runtime/JSGlobalObject.h: |
|
493 (JSC::constructEmptyArray): Pass CreateInitialized to ctor. |
|
494 * runtime/RegExpConstructor.cpp: |
|
495 (JSC::RegExpMatchesArray::RegExpMatchesArray): Pass CreateInitialized to ctor. |
|
496 |
|
497 2010-07-13 Gavin Barraclough <barraclough@apple.com> |
|
498 |
|
499 Reviewed by Oliver Hunt. |
|
500 |
|
501 Bug 42207 - Clean up interface to compile executables, always check for exceptions |
|
502 |
|
503 Presently interface to compile executable is inconsistent between eval/program and |
|
504 function code, and is error prone in allowing a caller to byte compile without JIT |
|
505 compiling an executable (we rely on all executables with codeblocks having JIT code). |
|
506 Unify on an interface where all compilation is performed by a single compile (with |
|
507 ForCall|ForConstruct variants) method, and make all clients check for errors. |
|
508 |
|
509 * interpreter/Interpreter.cpp: |
|
510 (JSC::Interpreter::unwindCallFrame): |
|
511 (JSC::Interpreter::execute): |
|
512 (JSC::Interpreter::executeCall): |
|
513 (JSC::Interpreter::executeConstruct): |
|
514 (JSC::Interpreter::prepareForRepeatCall): |
|
515 (JSC::Interpreter::privateExecute): |
|
516 * jit/JITStubs.cpp: |
|
517 (JSC::DEFINE_STUB_FUNCTION): |
|
518 * parser/Parser.h: |
|
519 (JSC::Parser::isFunctionBodyNode): |
|
520 (JSC::Parser::parse): |
|
521 * runtime/ArrayPrototype.cpp: |
|
522 (JSC::isNumericCompareFunction): |
|
523 * runtime/ExceptionHelpers.cpp: |
|
524 (JSC::createStackOverflowError): |
|
525 * runtime/ExceptionHelpers.h: |
|
526 * runtime/Executable.cpp: |
|
527 (JSC::EvalExecutable::compileInternal): |
|
528 (JSC::ProgramExecutable::checkSyntax): |
|
529 (JSC::ProgramExecutable::compileInternal): |
|
530 (JSC::FunctionExecutable::compileForCallInternal): |
|
531 (JSC::FunctionExecutable::compileForConstructInternal): |
|
532 (JSC::FunctionExecutable::reparseExceptionInfo): |
|
533 (JSC::EvalExecutable::reparseExceptionInfo): |
|
534 (JSC::FunctionExecutable::fromGlobalCode): |
|
535 * runtime/Executable.h: |
|
536 (JSC::EvalExecutable::compile): |
|
537 (JSC::EvalExecutable::generatedBytecode): |
|
538 (JSC::EvalExecutable::generatedJITCode): |
|
539 (JSC::ProgramExecutable::compile): |
|
540 (JSC::ProgramExecutable::generatedBytecode): |
|
541 (JSC::ProgramExecutable::generatedJITCode): |
|
542 (JSC::FunctionExecutable::generatedBytecode): |
|
543 (JSC::FunctionExecutable::compileForCall): |
|
544 (JSC::FunctionExecutable::compileForConstruct): |
|
545 (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck): |
|
546 * runtime/FunctionConstructor.cpp: |
|
547 (JSC::constructFunction): |
|
548 * runtime/JSActivation.cpp: |
|
549 (JSC::JSActivation::argumentsGetter): |
|
550 * runtime/JSGlobalData.h: |
|
551 (JSC::JSGlobalData::canUseJIT): |
|
552 |
|
553 2010-07-13 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
|
554 |
|
555 Reviewed by Oliver Hunt. |
|
556 |
|
557 testapi.c depends on the Core Foundation. |
|
558 https://bugs.webkit.org/show_bug.cgi?id=40058 |
|
559 |
|
560 Separate CoreFoundation specific tests in JSC's testapi.c. Enabling it |
|
561 to compile in Qt environments. |
|
562 |
|
563 All tests should work except for the JSStringCreateWithCharacters() function, |
|
564 because its tests depend on Core Foundation specific functions. |
|
565 |
|
566 * API/tests/testapi.c: |
|
567 (testJSStringRefCF): moved CoreFoundation specific tests to this function. |
|
568 (main): The moves plus some minor tweaks. |
|
569 * testapi.pro: Added. |
|
570 |
|
571 2010-07-13 Gavin Barraclough <barraclough@apple.com> |
|
572 |
|
573 Reviewed by Oliver Hunt. |
|
574 |
|
575 Bug 42182 - Change how numeric compare functions are detected |
|
576 |
|
577 There are three problems with the current mechanism: |
|
578 * It requires that a function executable be bytecode compiled without |
|
579 being JIT generated (in order to copy the bytecode from the numeric |
|
580 compare function). This is a problem since we have an invariant when |
|
581 running with the JIT that functions are never bytecode compiled without |
|
582 also being JIT generated (after checking the codeblock we assume the |
|
583 function has JIT code). To help maintain this invariant |
|
584 * This implementation will prevent us from experimenting with alternate |
|
585 compilation paths which do not compile via bytecode. |
|
586 * It doesn't work. Functions passing more than two arguments will match |
|
587 if they are comparing their last two arguments, not the first two. |
|
588 Generally the mapping back from bytecode to semantics may be more |
|
589 complex then initially expected. |
|
590 |
|
591 * bytecompiler/BytecodeGenerator.cpp: |
|
592 (JSC::BytecodeGenerator::generate): |
|
593 (JSC::BytecodeGenerator::setIsNumericCompareFunction): |
|
594 (JSC::BytecodeGenerator::argumentNumberFor): |
|
595 * bytecompiler/BytecodeGenerator.h: |
|
596 * bytecompiler/NodesCodegen.cpp: |
|
597 (JSC::BlockNode::singleStatement): |
|
598 (JSC::FunctionBodyNode::emitBytecode): |
|
599 * parser/Nodes.h: |
|
600 (JSC::ExpressionNode::isSubtract): |
|
601 (JSC::BinaryOpNode::lhs): |
|
602 (JSC::BinaryOpNode::rhs): |
|
603 (JSC::SubNode::isSubtract): |
|
604 (JSC::ReturnNode::value): |
|
605 * runtime/JSGlobalData.cpp: |
|
606 (JSC::JSGlobalData::JSGlobalData): |
|
607 * runtime/JSGlobalData.h: |
|
608 |
|
609 2010-07-12 Oliver Hunt <oliver@apple.com> |
|
610 |
|
611 Reviewed by Gavin Barraclough. |
|
612 |
|
613 REGRESSION: Crash at JSC::JIT::privateCompile(JSC::MacroAssemblerCodePtr*) |
|
614 https://bugs.webkit.org/show_bug.cgi?id=41763 |
|
615 |
|
616 There are two parts to this patch, the first is to fix the actual |
|
617 problem. When calling copyStringWithoutBOMs on a string we know |
|
618 to contain BOMs we return a value indicating that there are no |
|
619 BOMs. |
|
620 |
|
621 The second part of this fix is simply to harden the path that |
|
622 led to a crash when parsing failed. |
|
623 |
|
624 * jit/JITOpcodes.cpp: |
|
625 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
626 * jit/JITOpcodes32_64.cpp: |
|
627 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
628 * jit/JITStubs.cpp: |
|
629 (JSC::DEFINE_STUB_FUNCTION): |
|
630 Harden compilation stubs against parser failure. |
|
631 * parser/Lexer.cpp: |
|
632 (JSC::Lexer::sourceCode): |
|
633 Add assertions to ensure that subranges into a source provider |
|
634 are always actually braces. Hopefully this should catch similar |
|
635 failures in future. These assertions fire on existing tests |
|
636 without this fix. |
|
637 * runtime/Executable.h: |
|
638 (JSC::FunctionExecutable::tryJitCodeForCall): |
|
639 (JSC::FunctionExecutable::tryJitCodeForConstruct): |
|
640 * wtf/text/StringImpl.h: |
|
641 (WebCore::StringImpl::copyStringWithoutBOMs): |
|
642 Make copyStringWithBOMs do the right thing. |
|
643 |
|
644 2010-07-13 Gabor Loki <loki@webkit.org> |
|
645 |
|
646 Reviewed by Gavin Barraclough. |
|
647 |
|
648 Fix the constant encoding in data transfer instructions on ARM |
|
649 https://bugs.webkit.org/show_bug.cgi?id=42166 |
|
650 |
|
651 The getImm function is designed to produce modified immediate constant |
|
652 for data processing instructions. It should not be used to encode |
|
653 any constant for data transfer. In the current situation there is no |
|
654 way to use any immediate constant for data transfer. So, the moveImm |
|
655 function is the desired method to pass the offset value to the data |
|
656 transfer instructions. |
|
657 |
|
658 Reported by Jacob Bramley. |
|
659 |
|
660 * assembler/ARMAssembler.cpp: |
|
661 (JSC::ARMAssembler::dataTransfer32): |
|
662 * assembler/MacroAssemblerARM.h: |
|
663 (JSC::MacroAssemblerARM::call32): |
|
664 |
|
665 2010-07-09 Darin Adler <darin@apple.com> |
|
666 |
|
667 Reviewed by Geoffrey Garen. |
|
668 |
|
669 String to number coercion is not spec compliant |
|
670 https://bugs.webkit.org/show_bug.cgi?id=31349 |
|
671 |
|
672 ToNumber should ignore NBSP (\u00a0) |
|
673 https://bugs.webkit.org/show_bug.cgi?id=25490 |
|
674 |
|
675 * runtime/JSGlobalObjectFunctions.cpp: |
|
676 (JSC::parseIntOverflow): Added a version that works on UChar. |
|
677 * runtime/JSGlobalObjectFunctions.h: Ditto. |
|
678 |
|
679 * runtime/UString.cpp: |
|
680 (JSC::isInfinity): Added helper functions. |
|
681 (JSC::UString::toDouble): Use isStrWhiteSpace instead of |
|
682 isSASCIISpace to define what we should skip. Got rid of the |
|
683 code that used CString and UTF8String, instead processing the |
|
684 UChar of the string directly, except for when we call strtod. |
|
685 For strtod, use our own home-grown conversion function that |
|
686 does not try to do any UTF-16 processing. Tidied up the logic |
|
687 a bit as well. |
|
688 |
|
689 2010-07-12 Martin Robinson <mrobinson@igalia.com> |
|
690 |
|
691 Reviewed by Xan Lopez. |
|
692 |
|
693 [GTK] make dist is broken because of missing headers and other miscellaneous reasons |
|
694 https://bugs.webkit.org/show_bug.cgi?id=42107 |
|
695 |
|
696 * GNUmakefile.am: Add missing header to the sources list. |
|
697 |
|
698 2010-07-12 Adam Roben <aroben@apple.com> |
|
699 |
|
700 Stop generating stripped symbols for Release builds |
|
701 |
|
702 It turns out we can strip the symbols after-the-fact using PDBCopy. |
|
703 |
|
704 Fixes <http://webkit.org/b/42085>. |
|
705 |
|
706 Reviewed by Steve Falkenburg. |
|
707 |
|
708 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: |
|
709 Removed the pre-link event, which just created the public\sym |
|
710 directory. |
|
711 |
|
712 2010-07-12 Anders Carlsson <andersca@apple.com> |
|
713 |
|
714 Reviewed by Dan Bernstein. |
|
715 |
|
716 Add WARN_UNUSED_RETURN to the smart pointer "leak" member functions |
|
717 https://bugs.webkit.org/show_bug.cgi?id=42086 |
|
718 |
|
719 * wtf/OwnPtr.h: |
|
720 * wtf/PassOwnPtr.h: |
|
721 * wtf/PassRefPtr.h: |
|
722 (WTF::PassRefPtr::releaseRef): |
|
723 (WTF::NonNullPassRefPtr::leakRef): |
|
724 (WTF::NonNullPassRefPtr::releaseRef): |
|
725 * wtf/RetainPtr.h: |
|
726 (WTF::RetainPtr::releaseRef): |
|
727 |
|
728 2010-07-10 Oliver Hunt <oliver@apple.com> |
|
729 |
|
730 Reviewed by Maciej Stachowiak. |
|
731 |
|
732 HAVE_COMPUTED_GOTO is dependent on the interpreter being enabled |
|
733 https://bugs.webkit.org/show_bug.cgi?id=42039 |
|
734 |
|
735 Separate the existence of computed goto support in the compiler |
|
736 from whether or not we are using the interpreter. All the current |
|
737 HAVE(COMPUTED_GOTO) guards are for the interpreter, but I'd like |
|
738 the option of using it elsewhere. The interpreter now uses |
|
739 ENABLE(COMPUTED_GOTO_INTERPRETER) |
|
740 |
|
741 * bytecode/Instruction.h: |
|
742 (JSC::Instruction::Instruction): |
|
743 * bytecode/Opcode.h: |
|
744 * interpreter/Interpreter.cpp: |
|
745 (JSC::Interpreter::Interpreter): |
|
746 (JSC::Interpreter::isOpcode): |
|
747 (JSC::Interpreter::privateExecute): |
|
748 * interpreter/Interpreter.h: |
|
749 (JSC::Interpreter::getOpcode): |
|
750 (JSC::Interpreter::getOpcodeID): |
|
751 * wtf/Platform.h: |
|
752 |
|
753 2010-07-10 Oliver Hunt <oliver@apple.com> |
|
754 |
|
755 Reviewed by Gavin Barraclough. |
|
756 |
|
757 Remove switches from inner expression loops in the parser |
|
758 https://bugs.webkit.org/show_bug.cgi?id=42035 |
|
759 |
|
760 Use bitmasks and flags on the token types to identify unary and |
|
761 binary operators, rather than switching on the token type to |
|
762 identify them. |
|
763 |
|
764 * parser/JSParser.cpp: |
|
765 (JSC::isUnaryOp): |
|
766 (JSC::JSParser::isBinaryOperator): |
|
767 * parser/JSParser.h: |
|
768 (JSC::): |
|
769 |
|
770 2010-07-09 Leon Clarke <leonclarke@google.com> |
|
771 |
|
772 Reviewed by Adam Barth. |
|
773 |
|
774 add support for link prefetching |
|
775 https://bugs.webkit.org/show_bug.cgi?id=3652 |
|
776 |
|
777 * Configurations/FeatureDefines.xcconfig: |
|
778 |
|
779 2010-07-09 Oliver Hunt <oliver@apple.com> |
|
780 |
|
781 Reviewed by Darin Adler. |
|
782 |
|
783 Tidy up lexer token ids |
|
784 https://bugs.webkit.org/show_bug.cgi?id=42014 |
|
785 |
|
786 Stop using character literals to identify single character tokens |
|
787 and instead use symbolic names for all tokens. |
|
788 |
|
789 * parser/ASTBuilder.h: |
|
790 (JSC::ASTBuilder::makeBinaryNode): |
|
791 * parser/JSParser.cpp: |
|
792 (JSC::JSParser::consume): |
|
793 (JSC::JSParser::match): |
|
794 (JSC::JSParser::autoSemiColon): |
|
795 (JSC::JSParser::JSParser): |
|
796 (JSC::JSParser::parseProgram): |
|
797 (JSC::JSParser::allowAutomaticSemicolon): |
|
798 (JSC::JSParser::parseDoWhileStatement): |
|
799 (JSC::JSParser::parseWhileStatement): |
|
800 (JSC::JSParser::parseVarDeclarationList): |
|
801 (JSC::JSParser::parseConstDeclarationList): |
|
802 (JSC::JSParser::parseForStatement): |
|
803 (JSC::JSParser::parseReturnStatement): |
|
804 (JSC::JSParser::parseWithStatement): |
|
805 (JSC::JSParser::parseSwitchStatement): |
|
806 (JSC::JSParser::parseSwitchClauses): |
|
807 (JSC::JSParser::parseSwitchDefaultClause): |
|
808 (JSC::JSParser::parseTryStatement): |
|
809 (JSC::JSParser::parseDebuggerStatement): |
|
810 (JSC::JSParser::parseStatement): |
|
811 (JSC::JSParser::parseFormalParameters): |
|
812 (JSC::JSParser::parseFunctionInfo): |
|
813 (JSC::JSParser::parseExpressionOrLabelStatement): |
|
814 (JSC::JSParser::parseIfStatement): |
|
815 (JSC::JSParser::parseExpression): |
|
816 (JSC::JSParser::parseAssignmentExpression): |
|
817 (JSC::JSParser::parseConditionalExpression): |
|
818 (JSC::isUnaryOp): |
|
819 (JSC::JSParser::isBinaryOperator): |
|
820 (JSC::JSParser::parseBinaryExpression): |
|
821 (JSC::JSParser::parseProperty): |
|
822 (JSC::JSParser::parseObjectLiteral): |
|
823 (JSC::JSParser::parseStrictObjectLiteral): |
|
824 (JSC::JSParser::parseArrayLiteral): |
|
825 (JSC::JSParser::parsePrimaryExpression): |
|
826 (JSC::JSParser::parseArguments): |
|
827 (JSC::JSParser::parseMemberExpression): |
|
828 (JSC::JSParser::parseUnaryExpression): |
|
829 * parser/JSParser.h: |
|
830 (JSC::): |
|
831 * parser/Lexer.cpp: |
|
832 (JSC::): |
|
833 (JSC::Lexer::lex): |
|
834 * parser/Lexer.h: |
|
835 |
|
836 2010-07-09 Gavin Barraclough <barraclough@apple.com> |
|
837 |
|
838 Reviewed by Oliver Hunt. |
|
839 |
|
840 Bug 42015 - Enable JSValue32_64 on ARMv7 |
|
841 |
|
842 * Configurations/JavaScriptCore.xcconfig: |
|
843 * jit/JIT.h: |
|
844 * jit/JITStubs.cpp: |
|
845 * wtf/Platform.h: |
|
846 |
|
847 2010-07-09 Kenneth Russell <kbr@google.com> |
|
848 |
|
849 Reviewed by Dimitri Glazkov. |
|
850 |
|
851 Assertion failure in String::utf8() for certain invalid UTF16 inputs |
|
852 https://bugs.webkit.org/show_bug.cgi?id=41983 |
|
853 |
|
854 * wtf/text/WTFString.cpp: |
|
855 (WebCore::String::utf8): |
|
856 - Fixed assertion when sourceExhausted is returned from convertUTF16ToUTF8. |
|
857 |
|
858 2010-07-09 Oliver Hunt <oliver@apple.com> |
|
859 |
|
860 Reviewed by Geoffrey Garen. |
|
861 |
|
862 Remove a couple of excess writes from the lexer |
|
863 https://bugs.webkit.org/show_bug.cgi?id=41981 |
|
864 |
|
865 Remove a couple of fields from JSTokenInfo, and rename the remaining ones |
|
866 to something more accurate |
|
867 |
|
868 * parser/JSParser.cpp: |
|
869 (JSC::JSParser::next): |
|
870 (JSC::JSParser::tokenStart): |
|
871 (JSC::JSParser::tokenLine): |
|
872 (JSC::JSParser::tokenEnd): |
|
873 * parser/JSParser.h: |
|
874 (JSC::JSTokenInfo::JSTokenInfo): |
|
875 * parser/Lexer.cpp: |
|
876 (JSC::Lexer::lex): |
|
877 |
|
878 2010-07-08 Oliver Hunt <oliver@apple.com> |
|
879 |
|
880 Reviewed by Sam Weinig. |
|
881 |
|
882 Property declarations in an object literal should not consider the prototype chain when being added to the new object |
|
883 https://bugs.webkit.org/show_bug.cgi?id=41929 |
|
884 |
|
885 To fix this all we need to do is ensure that all new properties are |
|
886 added with putDirect rather than a fully generic call to put. This |
|
887 is safe as an object literal is by definition going to produce a |
|
888 completely normal object. |
|
889 |
|
890 Rather than duplicating all the put_by_id logic we add an additional |
|
891 flag to op_put_by_id to indicate it should be using putDirect. In |
|
892 the interpreter this adds a runtime branch, but in the jit this is |
|
893 essentially free as the branch is taken at compile time. This does |
|
894 actually improve object literal creation time even in the interpreter |
|
895 as we no longer need to walk the prototype chain to verify that the |
|
896 cached put is safe. |
|
897 |
|
898 We still emit normal put_by_id code when emitting __proto__ as we want |
|
899 to get the correct handling for changing the prototype. |
|
900 |
|
901 Sunspider claims this is a 0.7% speedup which is conceivably real due |
|
902 to the performance improvement in object literals, but I suspect its |
|
903 really just the result of code motion. |
|
904 |
|
905 * bytecode/Opcode.h: |
|
906 * bytecompiler/BytecodeGenerator.cpp: |
|
907 (JSC::BytecodeGenerator::emitPutById): |
|
908 (JSC::BytecodeGenerator::emitDirectPutById): |
|
909 * bytecompiler/BytecodeGenerator.h: |
|
910 * bytecompiler/NodesCodegen.cpp: |
|
911 (JSC::PropertyListNode::emitBytecode): |
|
912 * interpreter/Interpreter.cpp: |
|
913 (JSC::Interpreter::privateExecute): |
|
914 * jit/JIT.h: |
|
915 (JSC::JIT::compilePutByIdTransition): |
|
916 * jit/JITPropertyAccess.cpp: |
|
917 (JSC::JIT::emit_op_put_by_id): |
|
918 (JSC::JIT::emitSlow_op_put_by_id): |
|
919 (JSC::JIT::privateCompilePutByIdTransition): |
|
920 (JSC::JIT::patchPutByIdReplace): |
|
921 * jit/JITPropertyAccess32_64.cpp: |
|
922 (JSC::JIT::emitSlow_op_put_by_id): |
|
923 (JSC::JIT::privateCompilePutByIdTransition): |
|
924 (JSC::JIT::patchPutByIdReplace): |
|
925 * jit/JITStubs.cpp: |
|
926 (JSC::JITThunks::tryCachePutByID): |
|
927 (JSC::DEFINE_STUB_FUNCTION): |
|
928 * jit/JITStubs.h: |
|
929 (JSC::): |
|
930 * runtime/JSGlobalData.cpp: |
|
931 (JSC::JSGlobalData::JSGlobalData): |
|
932 * runtime/JSObject.h: |
|
933 (JSC::JSObject::putDirect): |
|
934 (JSC::JSValue::putDirect): |
|
935 * runtime/JSValue.h: |
|
936 |
|
937 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
938 |
|
939 Reviewed by Sam Weinig. |
|
940 |
|
941 String.prototype methods should CheckObjectCoercible (test this is not null or undefined). |
|
942 |
|
943 * runtime/StringPrototype.cpp: |
|
944 (JSC::stringProtoFuncCharAt): |
|
945 (JSC::stringProtoFuncCharCodeAt): |
|
946 (JSC::stringProtoFuncConcat): |
|
947 (JSC::stringProtoFuncIndexOf): |
|
948 (JSC::stringProtoFuncLastIndexOf): |
|
949 (JSC::stringProtoFuncMatch): |
|
950 (JSC::stringProtoFuncSearch): |
|
951 (JSC::stringProtoFuncSlice): |
|
952 (JSC::stringProtoFuncSplit): |
|
953 (JSC::stringProtoFuncSubstr): |
|
954 (JSC::stringProtoFuncSubstring): |
|
955 (JSC::stringProtoFuncToLowerCase): |
|
956 (JSC::stringProtoFuncToUpperCase): |
|
957 (JSC::stringProtoFuncLocaleCompare): |
|
958 (JSC::trimString): |
|
959 |
|
960 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
961 |
|
962 Reviewed by Sam Weinig. |
|
963 |
|
964 Date.prototype.toJSON takes one argument, report this correctly. |
|
965 |
|
966 * runtime/DatePrototype.cpp: |
|
967 |
|
968 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
969 |
|
970 Reviewed by Sam Weinig. |
|
971 |
|
972 RegExp's prototype should be an object of type RegExp. |
|
973 |
|
974 * runtime/RegExpPrototype.cpp: |
|
975 (JSC::RegExpPrototype::RegExpPrototype): |
|
976 * runtime/RegExpPrototype.h: |
|
977 |
|
978 2010-07-08 Oliver Hunt <oliver@apple.com> |
|
979 |
|
980 Reviewed by Gavin Barraclough. |
|
981 |
|
982 JavaScript parser violates ECMA automatic semicolon insertion rule |
|
983 https://bugs.webkit.org/show_bug.cgi?id=41844 |
|
984 |
|
985 Remove (very) old and bogus logic that automatically inserted a semicolon |
|
986 at the end of a script's source. |
|
987 |
|
988 * parser/Lexer.cpp: |
|
989 (JSC::Lexer::lex): |
|
990 |
|
991 2010-07-08 Oliver Hunt <oliver@apple.com> |
|
992 |
|
993 Reviewed by Anders Carlson. |
|
994 |
|
995 Tidy up the lexer |
|
996 |
|
997 Remove some of the old yacc/lex-isms still present in the lexer |
|
998 |
|
999 * parser/JSParser.h: |
|
1000 (JSC::): |
|
1001 * parser/Lexer.cpp: |
|
1002 (JSC::Lexer::parseString): |
|
1003 (JSC::Lexer::lex): |
|
1004 * parser/Lexer.h: |
|
1005 |
|
1006 2010-07-08 Oliver Hunt <oliver@apple.com> |
|
1007 |
|
1008 Reviewed by Gavin Barraclough. |
|
1009 |
|
1010 Make object-literal parsing conformant with the spec. |
|
1011 https://bugs.webkit.org/show_bug.cgi?id=41892 |
|
1012 |
|
1013 Bring our parsing of object literals into conformance with the ES5 spec. |
|
1014 Basically disallow conflicting accessor vs. normal property definitions |
|
1015 The bulk of this patch is just fiddling to maintain performance. |
|
1016 |
|
1017 * parser/ASTBuilder.h: |
|
1018 (JSC::ASTBuilder::createGetterOrSetterProperty): |
|
1019 (JSC::ASTBuilder::createProperty): |
|
1020 (JSC::ASTBuilder::getName): |
|
1021 (JSC::ASTBuilder::getType): |
|
1022 * parser/JSParser.cpp: |
|
1023 (JSC::jsParse): |
|
1024 (JSC::JSParser::JSParser): |
|
1025 (JSC::JSParser::parseProperty): |
|
1026 (JSC::JSParser::parseObjectLiteral): |
|
1027 (JSC::JSParser::parseStrictObjectLiteral): |
|
1028 * parser/JSParser.h: |
|
1029 * parser/Lexer.cpp: |
|
1030 (JSC::Lexer::clear): |
|
1031 * parser/Lexer.h: |
|
1032 (JSC::Lexer::currentOffset): |
|
1033 (JSC::Lexer::setOffset): |
|
1034 Add logic to allow us to roll the lexer back in the input stream. |
|
1035 * parser/Nodes.h: |
|
1036 (JSC::PropertyNode::): |
|
1037 (JSC::PropertyNode::type): |
|
1038 * parser/Parser.cpp: |
|
1039 (JSC::Parser::parse): |
|
1040 * parser/SourceProvider.h: |
|
1041 (JSC::SourceProvider::SourceProvider): |
|
1042 (JSC::SourceProvider::isValid): |
|
1043 (JSC::SourceProvider::setValid): |
|
1044 SourceProvider now records whether the input text |
|
1045 has already been validated. |
|
1046 * parser/SyntaxChecker.h: |
|
1047 (JSC::SyntaxChecker::SyntaxChecker): |
|
1048 (JSC::SyntaxChecker::Property::Property): |
|
1049 (JSC::SyntaxChecker::Property::operator!): |
|
1050 (JSC::SyntaxChecker::createProperty): |
|
1051 (JSC::SyntaxChecker::createPropertyList): |
|
1052 (JSC::SyntaxChecker::createGetterOrSetterProperty): |
|
1053 The SyntaxChecker mode now needs to maintain a bit more information |
|
1054 to ensure that we can validate object literals correctly. |
|
1055 |
|
1056 2010-07-08 Darin Adler <darin@apple.com> |
|
1057 |
|
1058 * runtime/JSGlobalData.cpp: |
|
1059 (JSC::JSGlobalData::sharedInstance): Fix typo. |
|
1060 |
|
1061 2010-07-08 Darin Adler <darin@apple.com> |
|
1062 |
|
1063 Reviewed by Oliver Hunt. |
|
1064 |
|
1065 Fix assertion seen on the Leopard buildbot. |
|
1066 The single shared instance of JSGlobalData was not being |
|
1067 adopted after creation. |
|
1068 |
|
1069 * runtime/JSGlobalData.cpp: |
|
1070 (JSC::JSGlobalData::sharedInstance): Do adoptRef and then leakRef. |
|
1071 |
|
1072 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
1073 |
|
1074 Reviewed by Sam Weinig. |
|
1075 |
|
1076 BOMs are whitespace. |
|
1077 |
|
1078 * runtime/JSGlobalObjectFunctions.cpp: |
|
1079 (JSC::isStrWhiteSpace): |
|
1080 |
|
1081 2010-07-08 Martin Robinson <mrobinson@igalia.com> |
|
1082 |
|
1083 Unreviewed. |
|
1084 |
|
1085 Try fix the GTK+ build by touching this file. |
|
1086 |
|
1087 * jit/ExecutableAllocatorFixedVMPool.cpp: |
|
1088 |
|
1089 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
1090 |
|
1091 GTK build fix take two. |
|
1092 |
|
1093 * GNUmakefile.am: |
|
1094 |
|
1095 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
1096 |
|
1097 GTK build fix. |
|
1098 |
|
1099 * GNUmakefile.am: |
|
1100 |
|
1101 2010-07-08 Gavin Barraclough <barraclough@apple.com> |
|
1102 |
|
1103 Reviewed by Sam Weinig. |
|
1104 |
|
1105 https://bugs.webkit.org/show_bug.cgi?id=41641 |
|
1106 |
|
1107 Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms |
|
1108 other than x86-64 (this may be useful on 32-bit platforms, too). |
|
1109 |
|
1110 Simplify ifdefs by dividing into thwo broad allocation strategies |
|
1111 (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND). |
|
1112 |
|
1113 Rename constant used in the code to have names descriptive of their purpose, |
|
1114 rather than their specific value on a given platform. |
|
1115 |
|
1116 * jit/ExecutableAllocator.cpp: |
|
1117 (JSC::ExecutableAllocator::reprotectRegion): |
|
1118 (JSC::ExecutableAllocator::cacheFlush): |
|
1119 * jit/ExecutableAllocatorFixedVMPool.cpp: |
|
1120 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): |
|
1121 (JSC::FixedVMPoolAllocator::free): |
|
1122 (JSC::ExecutablePool::systemAlloc): |
|
1123 * jit/ExecutableAllocatorPosix.cpp: |
|
1124 * jit/ExecutableAllocatorSymbian.cpp: |
|
1125 * jit/ExecutableAllocatorWin.cpp: |
|
1126 * wtf/Platform.h: |
|
1127 |
|
1128 2010-07-08 Xan Lopez <xlopez@igalia.com> |
|
1129 |
|
1130 Reviewed by Gustavo Noronha. |
|
1131 |
|
1132 Silence a few noisy build rules. |
|
1133 |
|
1134 * GNUmakefile.am: |
|
1135 |
|
1136 2010-07-08 Sheriff Bot <webkit.review.bot@gmail.com> |
|
1137 |
|
1138 Unreviewed, rolling out r62765. |
|
1139 http://trac.webkit.org/changeset/62765 |
|
1140 https://bugs.webkit.org/show_bug.cgi?id=41840 |
|
1141 |
|
1142 All jscore and layout tests crash on Qt bot (Requested by Ossy |
|
1143 on #webkit). |
|
1144 |
|
1145 * wtf/FastMalloc.cpp: |
|
1146 (WTF::TCMalloc_PageHeap::initializeScavenger): |
|
1147 (WTF::TCMalloc_PageHeap::signalScavenger): |
|
1148 (WTF::TCMalloc_PageHeap::scavengerThread): |
|
1149 |
|
1150 2010-07-08 Andreas Kling <andreas.kling@nokia.com> |
|
1151 |
|
1152 Reviewed by Oliver Hunt. |
|
1153 |
|
1154 Interpreter: Crash in op_load_varargs on 64-bit |
|
1155 https://bugs.webkit.org/show_bug.cgi?id=41795 |
|
1156 |
|
1157 Added missing cast of argCount to int32_t in op_load_varargs. |
|
1158 |
|
1159 * interpreter/Interpreter.cpp: |
|
1160 (JSC::Interpreter::privateExecute): |
|
1161 |
|
1162 2010-07-08 Patrick Gansterer <paroga@paroga.com> |
|
1163 |
|
1164 Reviewed by Geoffrey Garen. |
|
1165 |
|
1166 Make FastMalloc more portable. |
|
1167 https://bugs.webkit.org/show_bug.cgi?id=41790 |
|
1168 |
|
1169 Use WTF::Mutex instead of pthread_mutex_t and |
|
1170 replace pthread_cond_t with WTF::ThreadCondition. |
|
1171 |
|
1172 * wtf/FastMalloc.cpp: |
|
1173 (WTF::TCMalloc_PageHeap::initializeScavenger): |
|
1174 (WTF::TCMalloc_PageHeap::signalScavenger): |
|
1175 (WTF::TCMalloc_PageHeap::scavengerThread): |
|
1176 |
|
1177 2010-07-08 Patrick Gansterer <paroga@paroga.com> |
|
1178 |
|
1179 Reviewed by Darin Adler. |
|
1180 |
|
1181 Remove needless #include <fcntl.h> from TCSystemAlloc.cpp. |
|
1182 https://bugs.webkit.org/show_bug.cgi?id=41777 |
|
1183 |
|
1184 * wtf/TCSystemAlloc.cpp: |
|
1185 |
|
1186 2010-07-07 Darin Adler <darin@apple.com> |
|
1187 |
|
1188 Fixed build in configurations like PowerPC. |
|
1189 |
|
1190 * runtime/RegExpConstructor.cpp: Added include of PassOwnPtr.h. |
|
1191 * runtime/RegExpObject.cpp: Ditto. |
|
1192 * wtf/SizeLimits.cpp: Changed compile time assertion to work |
|
1193 even on platforms where two bool members do not end up taking |
|
1194 the same size as one int member! |
|
1195 |
|
1196 2010-07-07 Oliver Hunt <oliver@apple.com> |
|
1197 |
|
1198 Reviewed by Geoffrey Garen. |
|
1199 |
|
1200 Lazy mode of parser allows invalid syntax in object literals. |
|
1201 https://bugs.webkit.org/show_bug.cgi?id=41809 |
|
1202 |
|
1203 Make the parser itself validate getter and setter syntax rather |
|
1204 than offloading it to the AST builder. |
|
1205 |
|
1206 * parser/ASTBuilder.h: |
|
1207 (JSC::ASTBuilder::createGetterOrSetterProperty): |
|
1208 * parser/JSParser.cpp: |
|
1209 (JSC::JSParser::parseProperty): |
|
1210 |
|
1211 2010-07-07 Dumitru Daniliuc <dumi@chromium.org> |
|
1212 |
|
1213 Reviewed by Adam Roben. |
|
1214 |
|
1215 Revert r62689. |
|
1216 https://bugs.webkit.org/show_bug.cgi?id=41804 |
|
1217 |
|
1218 * runtime/Collector.cpp: |
|
1219 (JSC::Heap::freeBlocks): |
|
1220 |
|
1221 2010-07-07 Adam Barth <abarth@webkit.org> |
|
1222 |
|
1223 Reviewed by Sam Weinig. |
|
1224 |
|
1225 Add reverseFind to Vector and deploy in HTML5 parser |
|
1226 https://bugs.webkit.org/show_bug.cgi?id=41778 |
|
1227 |
|
1228 This method seems generally useful. I'm slightly surprised we don't |
|
1229 have it already. |
|
1230 |
|
1231 * wtf/Vector.h: |
|
1232 (WTF::::reverseFind): |
|
1233 |
|
1234 2010-07-07 Darin Adler <darin@apple.com> |
|
1235 |
|
1236 Reviewed by Adam Barth. |
|
1237 |
|
1238 Turn on adoptRef assertion for RefCounted |
|
1239 https://bugs.webkit.org/show_bug.cgi?id=41547 |
|
1240 |
|
1241 * wtf/CrossThreadRefCounted.h: Fixed include style. Includes of other |
|
1242 WTF headers should use "" includes; consistent in most WTF headers. |
|
1243 Added a call to relaxAdoptionRequirement. |
|
1244 |
|
1245 * wtf/RefCounted.h: Fixed include style. Removed LOOSE_REF_COUNTED. |
|
1246 Added relaxAdoptionRequirement. |
|
1247 |
|
1248 2010-07-07 Anders Carlsson <andersca@apple.com> |
|
1249 |
|
1250 Try to fix the Windows build. |
|
1251 |
|
1252 * runtime/Collector.cpp: |
|
1253 (JSC::Heap::freeBlocks): |
|
1254 |
|
1255 2010-07-07 Darin Adler <darin@apple.com> |
|
1256 |
|
1257 Reviewed by Adam Barth. |
|
1258 |
|
1259 More OwnPtr work |
|
1260 https://bugs.webkit.org/show_bug.cgi?id=41727 |
|
1261 |
|
1262 * API/JSCallbackObject.h: |
|
1263 (JSC::JSCallbackObjectData::setPrivateProperty): Use adoptPtr. |
|
1264 * API/JSCallbackObjectFunctions.h: |
|
1265 (JSC::JSCallbackObject::JSCallbackObject): Ditto. |
|
1266 * bytecode/CodeBlock.cpp: |
|
1267 (JSC::CodeBlock::CodeBlock): Ditto. |
|
1268 * bytecode/CodeBlock.h: |
|
1269 (JSC::CodeBlock::createRareDataIfNecessary): Ditto. |
|
1270 * parser/Nodes.cpp: |
|
1271 (JSC::ScopeNode::ScopeNode): Ditto. |
|
1272 * parser/ParserArena.cpp: |
|
1273 (JSC::ParserArena::ParserArena): Ditto. |
|
1274 * runtime/Arguments.h: |
|
1275 (JSC::Arguments::Arguments): Ditto. |
|
1276 * runtime/Executable.cpp: |
|
1277 (JSC::EvalExecutable::compile): Ditto. |
|
1278 (JSC::ProgramExecutable::compile): Ditto. |
|
1279 (JSC::FunctionExecutable::compileForCall): Ditto. |
|
1280 (JSC::FunctionExecutable::compileForConstruct): Ditto. |
|
1281 (JSC::FunctionExecutable::reparseExceptionInfo): Ditto. |
|
1282 (JSC::EvalExecutable::reparseExceptionInfo): Ditto. |
|
1283 * runtime/JSArray.cpp: |
|
1284 (JSC::JSArray::sort): Ditto. |
|
1285 * runtime/RegExpConstructor.cpp: |
|
1286 (JSC::RegExpConstructor::RegExpConstructor): Ditto. |
|
1287 * runtime/RegExpObject.cpp: |
|
1288 (JSC::RegExpObject::RegExpObject): Ditto. |
|
1289 * runtime/SmallStrings.cpp: |
|
1290 (JSC::SmallStrings::createSingleCharacterString): Ditto. |
|
1291 (JSC::SmallStrings::singleCharacterStringRep): Ditto. |
|
1292 |
|
1293 * wtf/unicode/icu/CollatorICU.cpp: |
|
1294 (WTF::Collator::userDefault): Use adoptPtr. |
|
1295 * yarr/RegexInterpreter.cpp: |
|
1296 (JSC::Yarr::ByteCompiler::ByteCompiler): Ditto. |
|
1297 (JSC::Yarr::ByteCompiler::compile): Ditto. |
|
1298 (JSC::Yarr::ByteCompiler::regexBegin): Ditto. |
|
1299 (JSC::Yarr::byteCompileRegex): Ditto. |
|
1300 * yarr/RegexInterpreter.h: |
|
1301 (JSC::Yarr::BytecodePattern::BytecodePattern): Ditto. |
|
1302 |
|
1303 2010-07-07 Darin Adler <darin@apple.com> |
|
1304 |
|
1305 Reviewed by Adam Barth. |
|
1306 |
|
1307 Make clear set the pointer to 0 before deletion |
|
1308 https://bugs.webkit.org/show_bug.cgi?id=41727 |
|
1309 |
|
1310 * wtf/OwnArrayPtr.h: Changed code so we always set the pointer to its new |
|
1311 value before deleting the old one, including in the set function and the |
|
1312 clear function. This required changing safeDelete. |
|
1313 * wtf/OwnPtr.h: Ditto. Also removed some extra null checks. |
|
1314 * wtf/PassOwnPtr.h: Ditto. |
|
1315 |
|
1316 * wtf/PassRefPtr.h: Changed code so we always set the pointer to its new |
|
1317 value before deref'ing the old one in the clear function. Also added a |
|
1318 leakRef function for NonNullPassRefPtr. |
|
1319 * wtf/RefPtr.h: Ditto. |
|
1320 |
|
1321 * wtf/gobject/GOwnPtr.h: More of the same. |
|
1322 * wtf/gobject/GRefPtr.h: Ditto. |
|
1323 |
|
1324 2010-07-07 Zoltan Herczeg <zherczeg@webkit.org> |
|
1325 |
|
1326 Reviewed by Oliver Hunt. |
|
1327 |
|
1328 Refactored string parsing inside the lexer |
|
1329 https://bugs.webkit.org/show_bug.cgi?id=41606 |
|
1330 |
|
1331 Does not use goto. Although the last sunspider |
|
1332 parse-only tests yields 1.044x speedup, I think the |
|
1333 patch can have a slight improvement at most. |
|
1334 |
|
1335 * parser/Lexer.cpp: |
|
1336 (JSC::singleEscape): |
|
1337 (JSC::Lexer::parseString): |
|
1338 (JSC::Lexer::lex): |
|
1339 * parser/Lexer.h: |
|
1340 |
|
1341 2010-07-06 Oliver Hunt <oliver@apple.com> |
|
1342 |
|
1343 Reviewed by Maciej Stachowiak. |
|
1344 |
|
1345 Make it possible to have both the JIT and Interpreter available in a single build |
|
1346 https://bugs.webkit.org/show_bug.cgi?id=41722 |
|
1347 |
|
1348 Separate the concept of !ENABLE(JIT) and ENABLE(INTERPRETER) and make it possible |
|
1349 to have both JIT and INTERPRETER enabled at the same time. This doesn't add |
|
1350 support for mix mode execution, but it does allow a single build to contain all |
|
1351 the code needed to use either the interpreter or the jit. |
|
1352 |
|
1353 If both ENABLE(INTERPRETER) and ENABLE(JIT) are true then setting the environment |
|
1354 variable JSC_FORCE_INTERPRETER will force JSC to use the interpreter. |
|
1355 |
|
1356 This patch basically consists of replacing !ENABLE(JIT) with ENABLE(INTERPRETER), |
|
1357 or converting #if ENABLE(JIT) ... #else ... into #if ENABLE(JIT) ... #endif |
|
1358 #if ENABLE(INTERPRETER), etc. There are also a few functions that need to be |
|
1359 renamed to resolve return type ambiguity. |
|
1360 |
|
1361 * bytecode/CodeBlock.cpp: |
|
1362 (JSC::CodeBlock::~CodeBlock): |
|
1363 (JSC::CodeBlock::shrinkToFit): |
|
1364 * bytecode/CodeBlock.h: |
|
1365 * interpreter/CallFrame.h: |
|
1366 (JSC::ExecState::returnVPC): |
|
1367 * interpreter/Interpreter.cpp: |
|
1368 (JSC::Interpreter::unwindCallFrame): |
|
1369 (JSC::Interpreter::throwException): |
|
1370 (JSC::Interpreter::execute): |
|
1371 (JSC::Interpreter::executeCall): |
|
1372 (JSC::Interpreter::executeConstruct): |
|
1373 (JSC::Interpreter::prepareForRepeatCall): |
|
1374 (JSC::Interpreter::privateExecute): |
|
1375 (JSC::Interpreter::retrieveLastCaller): |
|
1376 * interpreter/Interpreter.h: |
|
1377 * runtime/ArrayPrototype.cpp: |
|
1378 (JSC::isNumericCompareFunction): |
|
1379 * runtime/Executable.cpp: |
|
1380 (JSC::EvalExecutable::generateJITCode): |
|
1381 (JSC::ProgramExecutable::generateJITCode): |
|
1382 (JSC::FunctionExecutable::generateJITCodeForCall): |
|
1383 (JSC::FunctionExecutable::generateJITCodeForConstruct): |
|
1384 (JSC::FunctionExecutable::reparseExceptionInfo): |
|
1385 (JSC::EvalExecutable::reparseExceptionInfo): |
|
1386 * runtime/JSFunction.cpp: |
|
1387 * runtime/JSGlobalData.cpp: |
|
1388 (JSC::JSGlobalData::JSGlobalData): |
|
1389 * runtime/JSGlobalData.h: |
|
1390 (JSC::JSGlobalData::canUseJIT): |
|
1391 * wtf/Platform.h: |
|
1392 |
|
1393 2010-07-06 Darin Adler <darin@apple.com> |
|
1394 |
|
1395 Reviewed by Adam Barth. |
|
1396 |
|
1397 Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr |
|
1398 https://bugs.webkit.org/show_bug.cgi?id=41320 |
|
1399 |
|
1400 * bytecode/CodeBlock.cpp: |
|
1401 (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): Use assignment |
|
1402 instead of set since the result of reparseExceptionInfo is now a |
|
1403 PassOwnPtr. |
|
1404 |
|
1405 * bytecode/CodeBlock.h: Change extractExceptionInfo to return a |
|
1406 PassOwnPtr instead of a raw pointer. |
|
1407 |
|
1408 * runtime/Executable.cpp: |
|
1409 (JSC::FunctionExecutable::reparseExceptionInfo): Return a PassOwnPtr. |
|
1410 (JSC::EvalExecutable::reparseExceptionInfo): Ditto. |
|
1411 (JSC::ProgramExecutable::reparseExceptionInfo): Added. This was |
|
1412 in the header before, but it's better to not have it there to reduce |
|
1413 header dependencies. Return a PassOwnPtr. |
|
1414 |
|
1415 * runtime/Executable.h: Made reparseExceptionInfo return a PassOwnPtr, |
|
1416 and put it in the private sections of classes other than the base class. |
|
1417 |
|
1418 * wtf/MessageQueue.h: |
|
1419 (WTF::MessageQueue::append): Use leakPtr instead of release. |
|
1420 (WTF::MessageQueue::appendAndCheckEmpty): Ditto. |
|
1421 (WTF::MessageQueue::prepend): Ditto. |
|
1422 |
|
1423 * wtf/OwnPtr.h: Tweaked formatting. Changed the release function to return |
|
1424 a PassOwnPtr rather than a raw pointer. Added a leakPtr function that |
|
1425 returns a raw pointer. Put the constructor that takes a raw pointer and |
|
1426 the set function into a section guarded by LOOSE_OWN_PTR. Adapted to the |
|
1427 new adoptPtr function from PassOwnPtr.h. |
|
1428 |
|
1429 * wtf/PassOwnPtr.h: Tweaked formatting. Renamed the release function |
|
1430 to leakPtr. Added an adoptPtr function that creates a new PassOwnPtr. |
|
1431 Put the constructor and assignment operators that take a raw pointer |
|
1432 into a section guarded by LOOSE_PASS_OWN_PTR. |
|
1433 |
|
1434 2010-07-06 Sam Weinig <sam@webkit.org> |
|
1435 |
|
1436 Reviewed by Darin Adler |
|
1437 |
|
1438 Update comment in StringExtras.h to be more accurate. |
|
1439 |
|
1440 * wtf/StringExtras.h: |
|
1441 |
|
1442 2010-07-06 Sheriff Bot <webkit.review.bot@gmail.com> |
|
1443 |
|
1444 Unreviewed, rolling out r62511. |
|
1445 http://trac.webkit.org/changeset/62511 |
|
1446 https://bugs.webkit.org/show_bug.cgi?id=41686 |
|
1447 |
|
1448 Breaks Linux/64bit compilation (Requested by xan_ on #webkit). |
|
1449 |
|
1450 * jit/ExecutableAllocator.cpp: |
|
1451 * jit/ExecutableAllocatorFixedVMPool.cpp: |
|
1452 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): |
|
1453 (JSC::FixedVMPoolAllocator::free): |
|
1454 (JSC::ExecutablePool::systemAlloc): |
|
1455 * jit/ExecutableAllocatorPosix.cpp: |
|
1456 (JSC::ExecutableAllocator::reprotectRegion): |
|
1457 (JSC::ExecutableAllocator::cacheFlush): |
|
1458 * jit/ExecutableAllocatorSymbian.cpp: |
|
1459 * jit/ExecutableAllocatorWin.cpp: |
|
1460 * wtf/Platform.h: |
|
1461 |
|
1462 2010-07-05 Gavin Barraclough <barraclough@apple.com> |
|
1463 |
|
1464 Reviewed by Sam Weinig. |
|
1465 |
|
1466 https://bugs.webkit.org/show_bug.cgi?id=41641 |
|
1467 |
|
1468 Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms |
|
1469 other than x86-64 (this may be useful on 32-bit platforms, too). |
|
1470 |
|
1471 Simplify ifdefs by dividing into thwo broad allocation strategies |
|
1472 (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND). |
|
1473 |
|
1474 Rename constant used in the code to have names descriptive of their purpose, |
|
1475 rather than their specific value on a given platform. |
|
1476 |
|
1477 * jit/ExecutableAllocator.cpp: |
|
1478 (JSC::ExecutableAllocator::reprotectRegion): |
|
1479 (JSC::ExecutableAllocator::cacheFlush): |
|
1480 * jit/ExecutableAllocatorFixedVMPool.cpp: |
|
1481 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): |
|
1482 (JSC::FixedVMPoolAllocator::free): |
|
1483 (JSC::ExecutablePool::systemAlloc): |
|
1484 * jit/ExecutableAllocatorPosix.cpp: |
|
1485 * jit/ExecutableAllocatorSymbian.cpp: |
|
1486 * jit/ExecutableAllocatorWin.cpp: |
|
1487 * wtf/Platform.h: |
|
1488 |
|
1489 2010-07-05 Steve Block <steveblock@google.com> |
|
1490 |
|
1491 Reviewed by Darin Adler. |
|
1492 |
|
1493 ThreadingPthreads.cpp should use JNIUtility.h on Android, not outdated jni_utility.h |
|
1494 https://bugs.webkit.org/show_bug.cgi?id=41594 |
|
1495 |
|
1496 * wtf/ThreadingPthreads.cpp: |
|
1497 |
|
1498 2010-07-04 Mark Rowe <mrowe@apple.com> |
|
1499 |
|
1500 Build fix after r62456. |
|
1501 |
|
1502 * interpreter/Interpreter.cpp: |
|
1503 (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent |
|
1504 warnings about comparisons between signed and unsigned types, and attempts to call an overload |
|
1505 of std::min that doesn't exist. |
|
1506 |
|
1507 2010-07-02 Sam Weinig <sam@webkit.org> |
|
1508 |
|
1509 Reviewed by Darin Adler. |
|
1510 |
|
1511 Patch for https://bugs.webkit.org/show_bug.cgi?id=41553 |
|
1512 Make StringExtras.h versions of snprintf and vsnprintf match the unix versions. |
|
1513 |
|
1514 - MSVC does not ensure the buffers are null terminated as the unix versions do. |
|
1515 |
|
1516 * runtime/JSGlobalObjectFunctions.cpp: Cleanup includes. |
|
1517 * runtime/UString.cpp: Clean up includes. |
|
1518 (JSC::UString::from): Don't pass sizeof(buf) - 1, that is wrong. |
|
1519 * wtf/StringExtras.h: |
|
1520 (snprintf): Ensure null termination of buffer. |
|
1521 (vsnprintf): Ditto. |
|
1522 |
|
1523 2010-07-03 Yong Li <yoli@rim.com> |
|
1524 |
|
1525 Reviewed by Darin Adler. |
|
1526 |
|
1527 Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in |
|
1528 the interpreter as well as the JIT. |
|
1529 |
|
1530 https://bugs.webkit.org/show_bug.cgi?id=41351 |
|
1531 rdar://problem/8142141 |
|
1532 |
|
1533 * interpreter/Interpreter.cpp: |
|
1534 (JSC::Interpreter::privateExecute): Fix signed integer overflow problem |
|
1535 in op_load_varargs handling. 0xFFFFFFFF was read as -1. |
|
1536 |
|
1537 2010-06-26 Jeremy Orlow <jorlow@chromium.org> |
|
1538 |
|
1539 Reviewed by Dumitru Daniliuc. |
|
1540 |
|
1541 Support for keys and in-memory storage for IndexedDB |
|
1542 https://bugs.webkit.org/show_bug.cgi?id=41252 |
|
1543 |
|
1544 Set the role to Private. |
|
1545 |
|
1546 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
1547 |
|
1548 2010-07-02 Oliver Hunt <oliver@apple.com> |
|
1549 |
|
1550 Reviewed by Geoffrey Garen. |
|
1551 |
|
1552 Move BOM handling out of the lexer and parser |
|
1553 https://bugs.webkit.org/show_bug.cgi?id=41539 |
|
1554 |
|
1555 Doing the BOM stripping in the lexer meant that we could |
|
1556 end up having to strip the BOMs from a source multiple times. |
|
1557 To deal with this we now require all strings provided by |
|
1558 a SourceProvider to already have had the BOMs stripped. |
|
1559 This also simplifies some of the lexer logic. |
|
1560 |
|
1561 * parser/Lexer.cpp: |
|
1562 (JSC::Lexer::setCode): |
|
1563 (JSC::Lexer::sourceCode): |
|
1564 * parser/SourceProvider.h: |
|
1565 (JSC::SourceProvider::SourceProvider): |
|
1566 (JSC::UStringSourceProvider::create): |
|
1567 (JSC::UStringSourceProvider::getRange): |
|
1568 (JSC::UStringSourceProvider::UStringSourceProvider): |
|
1569 * wtf/text/StringImpl.h: |
|
1570 (WebCore::StringImpl::copyStringWithoutBOMs): |
|
1571 |
|
1572 2010-07-03 Patrick Gansterer <paroga@paroga.com> |
|
1573 |
|
1574 Reviewed by Kent Tamura. |
|
1575 |
|
1576 [WINCE] Implement Unicode::isAlphanumeric and Unicode::isArabicChar. |
|
1577 https://bugs.webkit.org/show_bug.cgi?id=41411 |
|
1578 |
|
1579 * wtf/unicode/wince/UnicodeWince.cpp: |
|
1580 (WTF::Unicode::isAlphanumeric): |
|
1581 * wtf/unicode/wince/UnicodeWince.h: |
|
1582 (WTF::Unicode::isArabicChar): |
|
1583 |
|
1584 2010-07-03 Kwang Yul Seo <skyul@company100.net> |
|
1585 |
|
1586 Reviewed by Kent Tamura. |
|
1587 |
|
1588 [BREWMP] Change the CRASH() macro to print "WebKit CRASH" log. |
|
1589 https://bugs.webkit.org/show_bug.cgi?id=41524 |
|
1590 |
|
1591 Print "WebKit CRASH" before crashing. |
|
1592 |
|
1593 * wtf/Assertions.h: |
|
1594 |
|
1595 2010-07-02 Gavin Barraclough <barraclough@apple.com> |
|
1596 |
|
1597 Reviewed by Oliver Hunt. |
|
1598 |
|
1599 Bug 41565 - Repatching in ARMv7Assembler::repatchLoadPtrToLEA is broken |
|
1600 |
|
1601 This method tried to repatch a LDR (T2) into an ADD (T3) - but it only |
|
1602 repatches the first instruction word. The layout of the fields in the |
|
1603 second word is different, and also needs repatching. |
|
1604 |
|
1605 * assembler/ARMv7Assembler.h: |
|
1606 (JSC::ARMv7Assembler::repatchLoadPtrToLEA): |
|
1607 |
|
1608 2010-07-02 Oliver Hunt <oliver@apple.com> |
|
1609 |
|
1610 Reviewed by Gavin Barraclough. |
|
1611 |
|
1612 Clamp the number of arguments supported by function.apply |
|
1613 https://bugs.webkit.org/show_bug.cgi?id=41351 |
|
1614 <rdar://problem/8142141> |
|
1615 |
|
1616 Add clamping logic to function.apply similar to that |
|
1617 enforced by firefox. We have a smaller clamp than |
|
1618 firefox as our calling convention means that stack |
|
1619 usage is proportional to argument count -- the firefox |
|
1620 limit is larger than you could actually call. |
|
1621 |
|
1622 * interpreter/Interpreter.cpp: |
|
1623 (JSC::Interpreter::privateExecute): |
|
1624 * jit/JITStubs.cpp: |
|
1625 (JSC::DEFINE_STUB_FUNCTION): |
|
1626 * runtime/Arguments.h: |
|
1627 (JSC::Arguments::): |
|
1628 |
|
1629 2010-07-02 Chao-ying Fu <fu@mips.com> |
|
1630 |
|
1631 Reviewed by Oliver Hunt. |
|
1632 |
|
1633 Re-enable JIT_OPTIMIZE_NATIVE_CALL on MIPS |
|
1634 https://bugs.webkit.org/show_bug.cgi?id=40179 |
|
1635 |
|
1636 Add the MIPS part to re-enable JIT_OPTIMIZE_NATIVE_CALL. |
|
1637 |
|
1638 * jit/JITOpcodes.cpp: |
|
1639 (JSC::JIT::privateCompileCTINativeCall): |
|
1640 * wtf/Platform.h: |
|
1641 |
|
1642 2010-07-02 Gavin Barraclough <barraclough@apple.com> |
|
1643 |
|
1644 Reviewed by Oliver Hunt. |
|
1645 |
|
1646 Bug 41552 - Clean up ARMv7 vfp code generation |
|
1647 Emit separate opcode individually, remove magic numbers. |
|
1648 |
|
1649 Also remove invalid assert from JSImmediate (number cells are not CELL_MASK aligned). |
|
1650 |
|
1651 * assembler/ARMv7Assembler.h: |
|
1652 (JSC::ARMv7Assembler::): |
|
1653 (JSC::ARMv7Assembler::vadd_F64): |
|
1654 (JSC::ARMv7Assembler::vcmp_F64): |
|
1655 (JSC::ARMv7Assembler::vcvt_F64_S32): |
|
1656 (JSC::ARMv7Assembler::vcvtr_S32_F64): |
|
1657 (JSC::ARMv7Assembler::vdiv_F64): |
|
1658 (JSC::ARMv7Assembler::vldr): |
|
1659 (JSC::ARMv7Assembler::vmov_F64_0): |
|
1660 (JSC::ARMv7Assembler::vmov): |
|
1661 (JSC::ARMv7Assembler::vmrs): |
|
1662 (JSC::ARMv7Assembler::vmul_F64): |
|
1663 (JSC::ARMv7Assembler::vstr): |
|
1664 (JSC::ARMv7Assembler::vsub_F64): |
|
1665 (JSC::ARMv7Assembler::VFPOperand::VFPOperand): |
|
1666 (JSC::ARMv7Assembler::VFPOperand::bits1): |
|
1667 (JSC::ARMv7Assembler::VFPOperand::bits4): |
|
1668 (JSC::ARMv7Assembler::vcvtOp): |
|
1669 (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpOp): |
|
1670 (JSC::ARMv7Assembler::ARMInstructionFormatter::vfpMemOp): |
|
1671 * assembler/MacroAssemblerARMv7.h: |
|
1672 (JSC::MacroAssemblerARMv7::branchDouble): |
|
1673 * runtime/JSImmediate.h: |
|
1674 (JSC::JSValue::isCell): |
|
1675 |
|
1676 2010-07-02 Sheriff Bot <webkit.review.bot@gmail.com> |
|
1677 |
|
1678 Unreviewed, rolling out r62410. |
|
1679 http://trac.webkit.org/changeset/62410 |
|
1680 https://bugs.webkit.org/show_bug.cgi?id=41549 |
|
1681 |
|
1682 accursed last minute changes (Requested by olliej on #webkit). |
|
1683 |
|
1684 * parser/Lexer.cpp: |
|
1685 (JSC::Lexer::setCode): |
|
1686 (JSC::Lexer::copyCodeWithoutBOMs): |
|
1687 (JSC::Lexer::sourceCode): |
|
1688 * parser/SourceProvider.h: |
|
1689 (JSC::): |
|
1690 (JSC::SourceProvider::SourceProvider): |
|
1691 (JSC::SourceProvider::hasBOMs): |
|
1692 (JSC::UStringSourceProvider::create): |
|
1693 (JSC::UStringSourceProvider::getRange): |
|
1694 (JSC::UStringSourceProvider::UStringSourceProvider): |
|
1695 * wtf/text/StringImpl.h: |
|
1696 |
|
1697 2010-07-02 Sam Weinig <sam@webkit.org> |
|
1698 |
|
1699 Reviewed by Geoffrey Garen. |
|
1700 |
|
1701 Patch for https://bugs.webkit.org/show_bug.cgi?id=41548 |
|
1702 Use snprintf instead of sprintf everywhere in JavaScriptCore |
|
1703 |
|
1704 * runtime/JSGlobalObjectFunctions.cpp: |
|
1705 (JSC::encode): |
|
1706 (JSC::globalFuncEscape): |
|
1707 * runtime/UString.cpp: |
|
1708 (JSC::UString::from): |
|
1709 |
|
1710 2010-07-02 Oliver Hunt <oliver@apple.com> |
|
1711 |
|
1712 Reviewed by Geoffrey Garen. |
|
1713 |
|
1714 Move BOM handling out of the lexer and parser |
|
1715 https://bugs.webkit.org/show_bug.cgi?id=41539 |
|
1716 |
|
1717 Doing the BOM stripping in the lexer meant that we could |
|
1718 end up having to strip the BOMs from a source multiple times. |
|
1719 To deal with this we now require all strings provided by |
|
1720 a SourceProvider to already have had the BOMs stripped. |
|
1721 This also simplifies some of the lexer logic. |
|
1722 |
|
1723 * parser/Lexer.cpp: |
|
1724 (JSC::Lexer::setCode): |
|
1725 (JSC::Lexer::sourceCode): |
|
1726 * parser/SourceProvider.h: |
|
1727 (JSC::SourceProvider::SourceProvider): |
|
1728 (JSC::UStringSourceProvider::create): |
|
1729 (JSC::UStringSourceProvider::getRange): |
|
1730 (JSC::UStringSourceProvider::UStringSourceProvider): |
|
1731 * wtf/text/StringImpl.h: |
|
1732 (WebCore::StringImpl::copyStringWithoutBOMs): |
|
1733 |
|
1734 2010-07-02 Renata Hodovan <reni@inf.u-szeged.hu> |
|
1735 |
|
1736 Reviewed by Oliver Hunt. |
|
1737 |
|
1738 [ Updated after rollout. ] |
|
1739 |
|
1740 Merged RegExp constructor and RegExp::create methods. |
|
1741 Both functions are called with three parameters and check whether |
|
1742 flags (the third param) is given or not. |
|
1743 Avoid extra hash lookups in RegExpCache::create by passing a pre-computed |
|
1744 iterator parameter. |
|
1745 https://bugs.webkit.org/show_bug.cgi?id=41055 |
|
1746 |
|
1747 * runtime/RegExp.cpp: |
|
1748 (JSC::RegExp::RegExp): |
|
1749 * runtime/RegExp.h: |
|
1750 * runtime/RegExpCache.cpp: |
|
1751 (JSC::RegExpCache::lookupOrCreate): |
|
1752 (JSC::RegExpCache::create): |
|
1753 * runtime/RegExpCache.h: |
|
1754 |
|
1755 2010-07-02 Martin Robinson <mrobinson@igalia.com> |
|
1756 |
|
1757 Unreviewed. Build fix for GTK+. |
|
1758 |
|
1759 Build Lexer.lut.h with the rest of the .lut.h files. Later these should |
|
1760 all probably be moved to DerivedSources. |
|
1761 |
|
1762 * GNUmakefile.am: |
|
1763 |
|
1764 2010-06-23 Martin Robinson <mrobinson@igalia.com> |
|
1765 |
|
1766 Reviewed by Gustavo Noronha Silva. |
|
1767 |
|
1768 [GTK] Separate DerivedSources per-project |
|
1769 https://bugs.webkit.org/show_bug.cgi?id=41109 |
|
1770 |
|
1771 Generate JavaScriptCore derived sources in <builddir>/DerivedSources/JavaScriptCore. |
|
1772 |
|
1773 * GNUmakefile.am: |
|
1774 |
|
1775 2010-07-02 Peter Varga <pvarga@inf.u-szeged.hu> |
|
1776 |
|
1777 Reviewed by Oliver Hunt. |
|
1778 |
|
1779 The alternativeFrameLocation value is wrong in the emitDisjunction function in |
|
1780 case of PatternTerm::TypeParentheticalAssertion. This value needs to be |
|
1781 computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc |
|
1782 memory corruption in some cases. |
|
1783 Layout test added for checking of TypeParentheticalAssertion case. |
|
1784 https://bugs.webkit.org/show_bug.cgi?id=41458 |
|
1785 |
|
1786 * yarr/RegexInterpreter.cpp: |
|
1787 (JSC::Yarr::ByteCompiler::emitDisjunction): |
|
1788 |
|
1789 2010-07-01 Oliver Hunt <oliver@apple.com> |
|
1790 |
|
1791 Reviewed by Maciej Stachowiak. |
|
1792 |
|
1793 Add a FixedArray template to encapsulate fixed length arrays |
|
1794 https://bugs.webkit.org/show_bug.cgi?id=41506 |
|
1795 |
|
1796 This new type is used in place of fixed length C arrays so |
|
1797 that debug builds can guard against attempts to go beyond |
|
1798 the end of the array. |
|
1799 |
|
1800 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
1801 * bytecode/Opcode.cpp: |
|
1802 (JSC::OpcodeStats::~OpcodeStats): |
|
1803 * pcre/pcre_compile.cpp: |
|
1804 (calculateCompiledPatternLength): |
|
1805 * runtime/Collector.cpp: |
|
1806 (JSC::Heap::allocateBlock): |
|
1807 (JSC::Heap::allocate): |
|
1808 * runtime/Collector.h: |
|
1809 (JSC::CollectorBitmap::clearAll): |
|
1810 * runtime/CollectorHeapIterator.h: |
|
1811 (JSC::CollectorHeapIterator::operator*): |
|
1812 * runtime/DateInstanceCache.h: |
|
1813 * runtime/JSString.cpp: |
|
1814 (JSC::JSString::replaceCharacter): |
|
1815 * runtime/JSString.h: |
|
1816 (JSC::RopeBuilder::JSStringFinalizerStruct::): |
|
1817 * runtime/NumericStrings.h: |
|
1818 * runtime/RegExpCache.h: |
|
1819 * runtime/SmallStrings.h: |
|
1820 (JSC::SmallStrings::singleCharacterStrings): |
|
1821 * wtf/AVLTree.h: |
|
1822 * wtf/FixedArray.h: Added. |
|
1823 (WTF::FixedArray::operator[]): |
|
1824 (WTF::FixedArray::data): |
|
1825 |
|
1826 2010-07-01 Zoltan Herczeg <zherczeg@webkit.org> |
|
1827 |
|
1828 Reviewed by Oliver Hunt. |
|
1829 |
|
1830 Improve the main lexer switch by mapping input characters to their type |
|
1831 https://bugs.webkit.org/show_bug.cgi?id=41459 |
|
1832 |
|
1833 Sunsipder: no change (from 532.9ms to 531.5ms) |
|
1834 SunSpider --parse-only: 1.025x as fast (from 33.1ms to 32.3ms) |
|
1835 |
|
1836 * parser/Lexer.cpp: |
|
1837 (JSC::): |
|
1838 (JSC::Lexer::lex): |
|
1839 |
|
1840 2010-07-01 Sam Weinig <sam@webkit.org> |
|
1841 |
|
1842 Rubber-stamped by Ander Carlsson. |
|
1843 |
|
1844 Define HAVE_HOSTED_CORE_ANIMATION on Snow Leopard. |
|
1845 |
|
1846 * wtf/Platform.h: |
|
1847 |
|
1848 2010-07-01 Gavin Barraclough <barraclough@apple.com> |
|
1849 |
|
1850 Reviewed by Oliver Hunt. |
|
1851 |
|
1852 Bug 41490 - Add missing operations to MacroAssemblerARMv7 |
|
1853 Also, make single, double, quad register numbers in ARMv7Assembler distinct & strongly typed. |
|
1854 |
|
1855 * assembler/ARMv7Assembler.h: |
|
1856 (JSC::ARMRegisters::): |
|
1857 (JSC::ARMRegisters::asSingle): |
|
1858 (JSC::ARMRegisters::asDouble): |
|
1859 (JSC::VFPImmediate::VFPImmediate): |
|
1860 (JSC::VFPImmediate::isValid): |
|
1861 (JSC::VFPImmediate::value): |
|
1862 (JSC::ARMv7Assembler::singleRegisterMask): |
|
1863 (JSC::ARMv7Assembler::doubleRegisterMask): |
|
1864 (JSC::ARMv7Assembler::): |
|
1865 (JSC::ARMv7Assembler::add_S): |
|
1866 (JSC::ARMv7Assembler::neg): |
|
1867 (JSC::ARMv7Assembler::orr_S): |
|
1868 (JSC::ARMv7Assembler::sub): |
|
1869 (JSC::ARMv7Assembler::sub_S): |
|
1870 (JSC::ARMv7Assembler::vadd_F64): |
|
1871 (JSC::ARMv7Assembler::vcmp_F64): |
|
1872 (JSC::ARMv7Assembler::vcvt_F64_S32): |
|
1873 (JSC::ARMv7Assembler::vcvtr_S32_F64): |
|
1874 (JSC::ARMv7Assembler::vdiv_F64): |
|
1875 (JSC::ARMv7Assembler::vldr): |
|
1876 (JSC::ARMv7Assembler::vmov_F64_0): |
|
1877 (JSC::ARMv7Assembler::vmov): |
|
1878 (JSC::ARMv7Assembler::vmul_F64): |
|
1879 (JSC::ARMv7Assembler::vstr): |
|
1880 (JSC::ARMv7Assembler::vsub_F64): |
|
1881 (JSC::ARMv7Assembler::vcvt): |
|
1882 (JSC::ARMv7Assembler::vmem): |
|
1883 * assembler/AbstractMacroAssembler.h: |
|
1884 * assembler/MacroAssemblerARM.h: |
|
1885 * assembler/MacroAssemblerARMv7.h: |
|
1886 (JSC::MacroAssemblerARMv7::fpTempRegisterAsSingle): |
|
1887 (JSC::MacroAssemblerARMv7::neg32): |
|
1888 (JSC::MacroAssemblerARMv7::loadDouble): |
|
1889 (JSC::MacroAssemblerARMv7::divDouble): |
|
1890 (JSC::MacroAssemblerARMv7::convertInt32ToDouble): |
|
1891 (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32): |
|
1892 (JSC::MacroAssemblerARMv7::zeroDouble): |
|
1893 (JSC::MacroAssemblerARMv7::branchOr32): |
|
1894 (JSC::MacroAssemblerARMv7::set32): |
|
1895 (JSC::MacroAssemblerARMv7::set8): |
|
1896 * assembler/MacroAssemblerMIPS.h: |
|
1897 * assembler/MacroAssemblerX86Common.h: |
|
1898 |
|
1899 2010-07-01 Oliver Hunt <oliver@apple.com> |
|
1900 |
|
1901 Reviewed by Geoff Garen. |
|
1902 |
|
1903 Improve reentrancy logic in polymorphic cache stubs |
|
1904 <https://bugs.webkit.org/show_bug.cgi?id=41482> |
|
1905 <rdar://problem/8094380> |
|
1906 |
|
1907 Make the polymorphic cache stubs handle reentrancy |
|
1908 better. |
|
1909 |
|
1910 * jit/JITStubs.cpp: |
|
1911 (JSC::DEFINE_STUB_FUNCTION): |
|
1912 (JSC::getPolymorphicAccessStructureListSlot): |
|
1913 |
|
1914 2010-07-01 Antti Koivisto <koivisto@iki.fi> |
|
1915 |
|
1916 Revert accidental commit. |
|
1917 |
|
1918 * runtime/Collector.cpp: |
|
1919 (JSC::Heap::allocateBlock): |
|
1920 |
|
1921 2010-06-30 Darin Adler <darin@apple.com> |
|
1922 |
|
1923 Reviewed by Adam Barth. |
|
1924 |
|
1925 Add assertion, off by default, for when you forget to do adoptRef |
|
1926 https://bugs.webkit.org/show_bug.cgi?id=41422 |
|
1927 |
|
1928 * wtf/PassRefPtr.h: Tweaked formatting. Added a new adopted |
|
1929 function, called on the pointer by adoptRef, with an empty inline |
|
1930 default version, meant to be overloaded. Unified the inlining |
|
1931 with a macro named REF_DEREF_INLINE to make it clearer what's |
|
1932 going on in the refIfNotNull/derefIfNotNull functions. Renamed |
|
1933 releaseRef to leakRef, but left the old name in for compatibility |
|
1934 for now. |
|
1935 |
|
1936 * wtf/RefCounted.h: Added code to require adoption and assert if |
|
1937 you don't call adoptRef. For now, it is turned off because of the |
|
1938 LOOSE_REF_COUNTED define in this header. Later we can turn it on |
|
1939 once we get everything working without asserting. |
|
1940 |
|
1941 2010-06-29 Michael Saboff <msaboff@apple.com> |
|
1942 |
|
1943 Reviewed by Darin Adler. |
|
1944 |
|
1945 Bug 41238 - RegExp performance slow on Dromaeo benchmark |
|
1946 |
|
1947 Other javascript engines appear to cache prior results of regular |
|
1948 expression operations. |
|
1949 |
|
1950 Suggest adding some sort of caching mechanism to regular expression |
|
1951 processing. |
|
1952 |
|
1953 Added a single entry cache of match() results to RegExp class. |
|
1954 |
|
1955 Also added performance improvements to UString == operator. |
|
1956 First check the impls for equality. Then get the length of |
|
1957 each of the non-null impls. Next check the sizes for equality. |
|
1958 Then check the data for the case of different impls that point |
|
1959 to the same data (most likely due to substrings from the beginning of |
|
1960 another string). Lastly we check the underlying data for equality. |
|
1961 |
|
1962 * runtime/RegExp.cpp: |
|
1963 (JSC::RegExp::RegExp): |
|
1964 (JSC::RegExp::match): |
|
1965 * runtime/RegExp.h: |
|
1966 * runtime/UString.h: |
|
1967 (JSC::operator==): |
|
1968 |
|
1969 2010-06-29 Nathan Lawrence <nlawrence@apple.com> |
|
1970 |
|
1971 Reviewed by Geoffrey Garen. |
|
1972 |
|
1973 WTF::HashSet iterators are quasi-mutable. Changing the value through |
|
1974 dereferencing an iterator will not change the behavior of methods like |
|
1975 contains or find, but will change the behavior of iterating. |
|
1976 |
|
1977 * wtf/HashSet.h: |
|
1978 (WTF::::begin): |
|
1979 (WTF::::end): |
|
1980 (WTF::::find): |
|
1981 (WTF::::remove): |
|
1982 * wtf/HashTable.h: |
|
1983 |
|
1984 2010-06-29 Martin Robinson <mrobinson@igalia.com> |
|
1985 |
|
1986 Reviewed by Xan Lopez. |
|
1987 |
|
1988 [GTK] Clean up the source lists in the GNUMakefile.am files |
|
1989 https://bugs.webkit.org/show_bug.cgi?id=41229 |
|
1990 |
|
1991 Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate |
|
1992 the source lists. |
|
1993 |
|
1994 * GNUmakefile.am: |
|
1995 |
|
1996 2010-06-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
|
1997 |
|
1998 Reviewed by Kenneth Rohde Christiansen. |
|
1999 |
|
2000 [Qt] Fix QtScript build after QScriptValuePrivate ctor changes |
|
2001 https://bugs.webkit.org/show_bug.cgi?id=41307 |
|
2002 |
|
2003 * qt/api/qscriptvalue_p.h: |
|
2004 (QScriptValuePrivate::prototype): |
|
2005 * qt/benchmarks/qscriptengine/qscriptengine.pro: |
|
2006 |
|
2007 2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
|
2008 |
|
2009 Reviewed by Kenneth Rohde Christiansen. |
|
2010 |
|
2011 [Qt] QScriptEngine API should contain a newArray function |
|
2012 https://bugs.webkit.org/show_bug.cgi?id=39115 |
|
2013 |
|
2014 * qt/api/qscriptengine.cpp: |
|
2015 (QScriptEngine::newArray): |
|
2016 * qt/api/qscriptengine.h: |
|
2017 * qt/api/qscriptengine_p.cpp: |
|
2018 (QScriptEnginePrivate::newArray): |
|
2019 * qt/api/qscriptengine_p.h: |
|
2020 * qt/tests/qscriptengine/tst_qscriptengine.cpp: |
|
2021 (tst_QScriptEngine::newArray): |
|
2022 |
|
2023 2010-06-28 Xan Lopez <xlopez@igalia.com> |
|
2024 |
|
2025 Reviewed by Gustavo Noronha. |
|
2026 |
|
2027 Install jsc as jsc-X where X is the major API version to allow |
|
2028 parallel installation of both GTK+ 2.x and 3.x versions. |
|
2029 |
|
2030 * GNUmakefile.am: |
|
2031 |
|
2032 2010-06-28 John Gregg <johnnyg@google.com> |
|
2033 |
|
2034 Reviewed by Kent Tamura. |
|
2035 |
|
2036 add ENABLE_DIRECTORY_UPLOAD build support |
|
2037 https://bugs.webkit.org/show_bug.cgi?id=41100 |
|
2038 |
|
2039 * Configurations/FeatureDefines.xcconfig: |
|
2040 |
|
2041 2010-06-28 Xan Lopez <xlopez@igalia.com> |
|
2042 |
|
2043 Revert to build jsc, since the tests expect this. |
|
2044 |
|
2045 * GNUmakefile.am: |
|
2046 |
|
2047 2010-06-28 Zoltan Herczeg <zherczeg@webkit.org> |
|
2048 |
|
2049 Reviewed by Oliver Hunt. |
|
2050 |
|
2051 Only one character lookahead should be enough for the lexer |
|
2052 https://bugs.webkit.org/show_bug.cgi?id=41213 |
|
2053 |
|
2054 The lexer had 4 character lookahead before, which required |
|
2055 a complex shifting mechanism. This can be improved by using |
|
2056 only one character lookahead for most decisions, and a |
|
2057 peek() function as a fallback when it is absolutely necessary. |
|
2058 |
|
2059 * parser/Lexer.cpp: |
|
2060 (JSC::Lexer::currentCharacter): |
|
2061 (JSC::Lexer::currentOffset): |
|
2062 (JSC::Lexer::setCode): |
|
2063 (JSC::Lexer::shift): |
|
2064 (JSC::Lexer::peek): |
|
2065 (JSC::Lexer::getUnicodeCharacter): |
|
2066 (JSC::Lexer::shiftLineTerminator): |
|
2067 (JSC::Lexer::lastTokenWasRestrKeyword): |
|
2068 (JSC::Lexer::lex): |
|
2069 (JSC::Lexer::scanRegExp): |
|
2070 (JSC::Lexer::skipRegExp): |
|
2071 * parser/Lexer.h: |
|
2072 |
|
2073 2010-06-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> |
|
2074 |
|
2075 Unreviewed build fix. |
|
2076 |
|
2077 [EFL] Build fix for latest version of Ecore library. |
|
2078 Ecore recently changed return type of callbacks from int to Eina_Bool. |
|
2079 |
|
2080 * wtf/efl/MainThreadEfl.cpp: |
|
2081 (WTF::timeoutFired): Return Eina_Bool instead of int. |
|
2082 |
|
2083 2010-06-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> |
|
2084 |
|
2085 Reviewed by Kenneth Rohde Christiansen. |
|
2086 |
|
2087 [Qt] QScriptValue should have API for accessing object properties |
|
2088 https://bugs.webkit.org/show_bug.cgi?id=40903 |
|
2089 |
|
2090 Make possible to access properties inside QScriptValues. While this |
|
2091 still doesn't support the ResolveLocal parameter, it is already useful |
|
2092 for testing the API. |
|
2093 |
|
2094 The tests from upstream QtScript weren't imported since most of them |
|
2095 depend on the setProperty() function as well. A simple test was created. |
|
2096 |
|
2097 * qt/api/qscriptvalue.cpp: |
|
2098 (QScriptValue::property): |
|
2099 * qt/api/qscriptvalue.h: |
|
2100 (QScriptValue::): |
|
2101 * qt/api/qscriptvalue_p.h: |
|
2102 (QScriptValuePrivate::property): |
|
2103 * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: |
|
2104 (tst_QScriptValue::propertySimple): |
|
2105 * qt/tests/qscriptvalue/tst_qscriptvalue.h: |
|
2106 |
|
2107 2010-06-28 Xan Lopez <xlopez@igalia.com> |
|
2108 |
|
2109 Reviewed by Gustavo Noronha. |
|
2110 |
|
2111 [GTK] Add support for GTK+3 |
|
2112 https://bugs.webkit.org/show_bug.cgi?id=41253 |
|
2113 |
|
2114 Suffix jsc with the API version of the library, so that |
|
2115 libwebkitgtk 1.x and 3.x can install jsc. |
|
2116 |
|
2117 * GNUmakefile.am: |
|
2118 |
|
2119 2010-06-27 Kwang Yul Seo <skyul@company100.net> |
|
2120 |
|
2121 Reviewed by Kent Tamura. |
|
2122 |
|
2123 [BREWMP] Turn ENABLE(SINGLE_THREADED) on. |
|
2124 https://bugs.webkit.org/show_bug.cgi?id=41135 |
|
2125 |
|
2126 Brew MP does not support preemptive multi-threading. |
|
2127 Disable threading for Brew MP. |
|
2128 |
|
2129 * wtf/Platform.h: |
|
2130 |
|
2131 2010-06-26 Tony Gentilcore <tonyg@chromium.org> |
|
2132 |
|
2133 Reviewed by Dimitri Glazkov. |
|
2134 |
|
2135 Add an ENABLE_WEB_TIMING option for enabling Web Timing support. |
|
2136 https://bugs.webkit.org/show_bug.cgi?id=38924 |
|
2137 |
|
2138 * Configurations/FeatureDefines.xcconfig: |
|
2139 |
|
2140 2010-06-25 Nathan Lawrence <nlawrence@apple.com> |
|
2141 |
|
2142 Reviewed by Geoffrey Garen. |
|
2143 |
|
2144 We assume in testapi.c that the value aHeapRef refers to will not be |
|
2145 moved. When we have movable objects, this will not be the case. |
|
2146 |
|
2147 * API/tests/testapi.c: |
|
2148 (main): |
|
2149 |
|
2150 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com> |
|
2151 |
|
2152 Unreviewed, rolling out r61924. |
|
2153 http://trac.webkit.org/changeset/61924 |
|
2154 https://bugs.webkit.org/show_bug.cgi?id=41240 |
|
2155 |
|
2156 It was rolled out, but cq+ wasn't removed (Requested by Ossy_ |
|
2157 on #webkit). |
|
2158 |
|
2159 * runtime/RegExp.cpp: |
|
2160 (JSC::RegExp::RegExp): |
|
2161 (JSC::RegExp::create): |
|
2162 * runtime/RegExp.h: |
|
2163 * runtime/RegExpCache.cpp: |
|
2164 (JSC::RegExpCache::lookupOrCreate): |
|
2165 (JSC::RegExpCache::create): |
|
2166 * runtime/RegExpCache.h: |
|
2167 |
|
2168 2010-06-25 Renata Hodovan <reni@inf.u-szeged.hu> |
|
2169 |
|
2170 Reviewed by Geoffrey Garen. |
|
2171 |
|
2172 Merge RegExp constructor and RegExp::create methods into one. |
|
2173 Both of function are called with tree parameters and check whether |
|
2174 flags (the third param) is given or not. |
|
2175 Simplify hash lookups in RegExpCache::create with giving them an extra |
|
2176 iterator parameter. |
|
2177 https://bugs.webkit.org/show_bug.cgi?id=41055 |
|
2178 |
|
2179 * runtime/RegExp.cpp: |
|
2180 (JSC::RegExp::RegExp): |
|
2181 * runtime/RegExp.h: |
|
2182 * runtime/RegExpCache.cpp: |
|
2183 (JSC::RegExpCache::lookupOrCreate): |
|
2184 (JSC::RegExpCache::create): |
|
2185 * runtime/RegExpCache.h: |
|
2186 |
|
2187 2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
2188 |
|
2189 Reviewed by Simon Hausmann. |
|
2190 |
|
2191 Introduce QtScript benchmarks. |
|
2192 |
|
2193 The QtScript performance should be tested regularly. The patch introduces |
|
2194 micro benchmarks for existing API. |
|
2195 |
|
2196 [Qt] Performance of the QtScript API is not tested. |
|
2197 https://bugs.webkit.org/show_bug.cgi?id=40911 |
|
2198 |
|
2199 * qt/benchmarks/benchmarks.pri: Copied from JavaScriptCore/qt/tests/tests.pri. |
|
2200 * qt/benchmarks/benchmarks.pro: Added. |
|
2201 * qt/benchmarks/qscriptengine/qscriptengine.pro: Added. |
|
2202 * qt/benchmarks/qscriptengine/tst_qscriptengine.cpp: Added. |
|
2203 (tst_QScriptEngine::checkSyntax_data): |
|
2204 (tst_QScriptEngine::checkSyntax): |
|
2205 (tst_QScriptEngine::constructor): |
|
2206 (tst_QScriptEngine::evaluateString_data): |
|
2207 (tst_QScriptEngine::evaluateString): |
|
2208 (tst_QScriptEngine::evaluateProgram_data): |
|
2209 (tst_QScriptEngine::evaluateProgram): |
|
2210 (tst_QScriptEngine::newObject): |
|
2211 (tst_QScriptEngine::nullValue): |
|
2212 (tst_QScriptEngine::undefinedValue): |
|
2213 (tst_QScriptEngine::globalObject): |
|
2214 (tst_QScriptEngine::toStringHandle): |
|
2215 * qt/benchmarks/qscriptvalue/qscriptvalue.pro: Added. |
|
2216 * qt/benchmarks/qscriptvalue/tst_qscriptvalue.cpp: Added. |
|
2217 (tst_QScriptValue::tst_QScriptValue): |
|
2218 (tst_QScriptValue::~tst_QScriptValue): |
|
2219 (tst_QScriptValue::values_data): |
|
2220 (tst_QScriptValue::ctorBool): |
|
2221 (tst_QScriptValue::ctorReal): |
|
2222 (tst_QScriptValue::ctorNumber): |
|
2223 (tst_QScriptValue::ctorQString): |
|
2224 (tst_QScriptValue::ctorCString): |
|
2225 (tst_QScriptValue::ctorSpecial): |
|
2226 (tst_QScriptValue::ctorQScriptValue): |
|
2227 (tst_QScriptValue::isValid_data): |
|
2228 (tst_QScriptValue::isValid): |
|
2229 (tst_QScriptValue::isBool_data): |
|
2230 (tst_QScriptValue::isBool): |
|
2231 (tst_QScriptValue::isNumber_data): |
|
2232 (tst_QScriptValue::isNumber): |
|
2233 (tst_QScriptValue::isFunction_data): |
|
2234 (tst_QScriptValue::isFunction): |
|
2235 (tst_QScriptValue::isNull_data): |
|
2236 (tst_QScriptValue::isNull): |
|
2237 (tst_QScriptValue::isString_data): |
|
2238 (tst_QScriptValue::isString): |
|
2239 (tst_QScriptValue::isUndefined_data): |
|
2240 (tst_QScriptValue::isUndefined): |
|
2241 (tst_QScriptValue::isObject_data): |
|
2242 (tst_QScriptValue::isObject): |
|
2243 (tst_QScriptValue::isError_data): |
|
2244 (tst_QScriptValue::isError): |
|
2245 (tst_QScriptValue::toString_data): |
|
2246 (tst_QScriptValue::toString): |
|
2247 (tst_QScriptValue::toNumber_data): |
|
2248 (tst_QScriptValue::toNumber): |
|
2249 (tst_QScriptValue::toBool_data): |
|
2250 (tst_QScriptValue::toBool): |
|
2251 (tst_QScriptValue::toInteger_data): |
|
2252 (tst_QScriptValue::toInteger): |
|
2253 (tst_QScriptValue::toInt32_data): |
|
2254 (tst_QScriptValue::toInt32): |
|
2255 (tst_QScriptValue::toUInt32_data): |
|
2256 (tst_QScriptValue::toUInt32): |
|
2257 (tst_QScriptValue::toUInt16_data): |
|
2258 (tst_QScriptValue::toUInt16): |
|
2259 (tst_QScriptValue::toObject_data): |
|
2260 (tst_QScriptValue::toObject): |
|
2261 (tst_QScriptValue::equals_data): |
|
2262 (tst_QScriptValue::equals): |
|
2263 (tst_QScriptValue::strictlyEquals_data): |
|
2264 (tst_QScriptValue::strictlyEquals): |
|
2265 (tst_QScriptValue::instanceOf_data): |
|
2266 (tst_QScriptValue::instanceOf): |
|
2267 |
|
2268 2010-06-25 Oliver Hunt <oliver@apple.com> |
|
2269 |
|
2270 Reviewed by Geoffrey Garen. |
|
2271 |
|
2272 Remove old js parser |
|
2273 https://bugs.webkit.org/show_bug.cgi?id=41222 |
|
2274 |
|
2275 Remove the old yacc parser, this also solves the tiger problem. Which |
|
2276 was a conflict between yacc generated token values and those in the |
|
2277 custom parser |
|
2278 |
|
2279 * Android.mk: |
|
2280 * CMakeLists.txt: |
|
2281 * DerivedSources.make: |
|
2282 * DerivedSources.pro: |
|
2283 * GNUmakefile.am: |
|
2284 * JavaScriptCore.pro: |
|
2285 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
|
2286 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
2287 * parser/Grammar.y: Removed. |
|
2288 * parser/JSParser.cpp: |
|
2289 * parser/JSParser.h: |
|
2290 * parser/Lexer.cpp: |
|
2291 * parser/NodeConstructors.h: |
|
2292 (JSC::Node::Node): |
|
2293 * parser/Parser.cpp: |
|
2294 (JSC::Parser::parse): |
|
2295 * wtf/Platform.h: |
|
2296 |
|
2297 2010-06-25 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
2298 |
|
2299 Reviewed by Simon Hausmann. |
|
2300 |
|
2301 New QtScript API; setPrototype() and prototype(). |
|
2302 |
|
2303 This patch implements QScriptValue's prototype accessors. |
|
2304 |
|
2305 [Qt] QScriptValue should have accessors to a prototype. |
|
2306 https://bugs.webkit.org/show_bug.cgi?id=39356 |
|
2307 |
|
2308 * qt/api/qscriptvalue.cpp: |
|
2309 (QScriptValue::prototype): |
|
2310 (QScriptValue::setPrototype): |
|
2311 * qt/api/qscriptvalue.h: |
|
2312 * qt/api/qscriptvalue_p.h: |
|
2313 (QScriptValuePrivate::prototype): |
|
2314 (QScriptValuePrivate::setPrototype): |
|
2315 * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: |
|
2316 (tst_QScriptValue::getSetPrototype): |
|
2317 * qt/tests/qscriptvalue/tst_qscriptvalue.h: |
|
2318 |
|
2319 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi> |
|
2320 |
|
2321 Reviewed by Kenneth Rohde Christiansen. |
|
2322 |
|
2323 [CMake] Add option to enable JIT. |
|
2324 JIT is disabled by default, but now it's possible to enable it through |
|
2325 an option to CMake: -DENABLE_JIT will enable it. |
|
2326 https://bugs.webkit.org/show_bug.cgi?id=40936 |
|
2327 |
|
2328 * CMakeLists.txt: Add missing files and re-sort. |
|
2329 |
|
2330 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi> |
|
2331 |
|
2332 Reviewed by Gustavo Noronha Silva. |
|
2333 |
|
2334 [CMake] Remove unused variable in EFL build system. It was previously |
|
2335 being used to set the flags of each port but it was superseded by |
|
2336 other flags. |
|
2337 https://bugs.webkit.org/show_bug.cgi?id=40931 |
|
2338 |
|
2339 * jsc/CMakeLists.txt: |
|
2340 |
|
2341 2010-06-25 Nathan Lawrence <nlawrence@apple.com> |
|
2342 |
|
2343 Reviewed by Geoffrey Garen. |
|
2344 |
|
2345 Aligning AssemblerBuffer to 128 bytes gives a 0.4% speedup on |
|
2346 sunspider. |
|
2347 |
|
2348 * assembler/AssemblerBuffer.h: |
|
2349 (JSC::AssemblerBuffer::AssemblerBuffer): |
|
2350 |
|
2351 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com> |
|
2352 |
|
2353 Unreviewed, rolling out r61842. |
|
2354 http://trac.webkit.org/changeset/61842 |
|
2355 https://bugs.webkit.org/show_bug.cgi?id=41208 |
|
2356 |
|
2357 It broke Windows build (Requested by Ossy_ on #webkit). |
|
2358 |
|
2359 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: |
|
2360 * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
|
2361 * wtf/OwnPtrCommon.h: |
|
2362 * wtf/brew/OwnPtrBrew.h: Removed. |
|
2363 * wtf/win/OwnPtrWin.h: Removed. |
|
2364 |
|
2365 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com> |
|
2366 |
|
2367 Unreviewed, rolling out r61833. |
|
2368 http://trac.webkit.org/changeset/61833 |
|
2369 https://bugs.webkit.org/show_bug.cgi?id=41205 |
|
2370 |
|
2371 It broke Leopard and GTK (Requested by Ossy_ on #webkit). |
|
2372 |
|
2373 * runtime/RegExp.cpp: |
|
2374 (JSC::RegExp::RegExp): |
|
2375 (JSC::RegExp::create): |
|
2376 * runtime/RegExp.h: |
|
2377 * runtime/RegExpCache.cpp: |
|
2378 (JSC::RegExpCache::lookupOrCreate): |
|
2379 (JSC::RegExpCache::create): |
|
2380 * runtime/RegExpCache.h: |
|
2381 |
|
2382 2010-06-25 Kwang Yul Seo <skyul@company100.net> |
|
2383 |
|
2384 Reviewed by Adam Barth. |
|
2385 |
|
2386 Change OwnPtrCommon to include platform-specific headers |
|
2387 https://bugs.webkit.org/show_bug.cgi?id=40279 |
|
2388 |
|
2389 Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds. |
|
2390 Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds. |
|
2391 |
|
2392 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: |
|
2393 * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
|
2394 * wtf/OwnPtrCommon.h: |
|
2395 * wtf/brew/OwnPtrBrew.h: Added. |
|
2396 * wtf/win/OwnPtrWin.h: Added. |
|
2397 |
|
2398 2010-06-25 Patrick Gansterer <paroga@paroga.com> |
|
2399 |
|
2400 Reviewed by Darin Adler. |
|
2401 |
|
2402 Add the possibility for a head and footer section to create_jit_stubs. |
|
2403 https://bugs.webkit.org/show_bug.cgi?id=36050 |
|
2404 |
|
2405 * create_jit_stubs: |
|
2406 |
|
2407 2010-06-24 Renata Hodovan <reni@inf.u-szeged.hu> |
|
2408 |
|
2409 Reviewed by Geoffrey Garen. |
|
2410 |
|
2411 Merge RegExp constructor and RegExp::create methods into one. |
|
2412 Both of function are called with tree parameters and check whether |
|
2413 flags (the third param) is given or not. |
|
2414 Simplify hash lookups in RegExpCache::create with giving them an extra |
|
2415 iterator parameter. |
|
2416 https://bugs.webkit.org/show_bug.cgi?id=41055 |
|
2417 |
|
2418 * runtime/RegExp.cpp: |
|
2419 (JSC::RegExp::RegExp): |
|
2420 * runtime/RegExp.h: |
|
2421 * runtime/RegExpCache.cpp: |
|
2422 (JSC::RegExpCache::lookupOrCreate): |
|
2423 (JSC::RegExpCache::create): |
|
2424 * runtime/RegExpCache.h: |
|
2425 |
|
2426 2010-06-24 Oliver Hunt <oliver@apple.com> |
|
2427 |
|
2428 Reviewed by Maciej Stachowiak. |
|
2429 |
|
2430 Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64 |
|
2431 https://bugs.webkit.org/show_bug.cgi?id=41193 |
|
2432 |
|
2433 I noticed a use of '+ 4' in some of the 32_64 code paths and realised there |
|
2434 were a few places where endianness was being hardcoded. This patch fixes |
|
2435 the errors i could find through code inspection. |
|
2436 |
|
2437 * jit/JITOpcodes32_64.cpp: |
|
2438 (JSC::JIT::emit_op_resolve_global): |
|
2439 * jit/JITPropertyAccess32_64.cpp: |
|
2440 (JSC::JIT::emit_op_get_by_val): |
|
2441 (JSC::JIT::emit_op_put_by_val): |
|
2442 (JSC::JIT::compileGetDirectOffset): |
|
2443 (JSC::JIT::privateCompilePutByIdTransition): |
|
2444 (JSC::JIT::patchGetByIdSelf): |
|
2445 (JSC::JIT::patchPutByIdReplace): |
|
2446 |
|
2447 2010-06-24 Oliver Hunt <oliver@apple.com> |
|
2448 |
|
2449 Build fix |
|
2450 |
|
2451 Temporarily get the tiger bot working again by disabling the |
|
2452 new JS parser. GCC on tiger is miscompiling the parser and |
|
2453 I don't have access to a tiger machine right now. |
|
2454 |
|
2455 * wtf/Platform.h: |
|
2456 |
|
2457 2010-06-21 Nathan Lawrence <nlawrence@apple.com> |
|
2458 |
|
2459 Reviewed by Geoff Garen. |
|
2460 |
|
2461 https://bugs.webkit.org/show_bug.cgi?id=40128 |
|
2462 Fixed broken debug functionality. |
|
2463 |
|
2464 * interpreter/Interpreter.cpp: |
|
2465 (JSC::Interpreter::dumpRegisters): |
|
2466 Fixed to work with updated call frame. |
|
2467 * runtime/JSImmediate.h: |
|
2468 (JSC::JSValue::isCell): |
|
2469 Added assert for aligned cell. |
|
2470 * runtime/JSValue.cpp: |
|
2471 (JSC::JSValue::description): |
|
2472 Fixed to work with current JSValue implementation. |
|
2473 * runtime/JSZombie.cpp: |
|
2474 (JSC::JSZombie::leakedZombieStructure): |
|
2475 JSombies compile again. |
|
2476 |
|
2477 2010-06-24 Leandro Pereira <leandro@profusion.mobi> |
|
2478 |
|
2479 Unreviewed build fix. |
|
2480 |
|
2481 * CMakeLists.txt: Add JSParser.cpp. |
|
2482 |
|
2483 2010-06-24 Oliver Hunt <oliver@apple.com> |
|
2484 |
|
2485 Reviewed by Maciej Stachowiak. |
|
2486 |
|
2487 Single character string replacement may replace too many characters |
|
2488 https://bugs.webkit.org/show_bug.cgi?id=41138 |
|
2489 <rdar://problem/8097496> |
|
2490 |
|
2491 Simple fix to stop the rope path of single character replacement |
|
2492 once the first replacement occurs. |
|
2493 |
|
2494 * runtime/JSString.cpp: |
|
2495 (JSC::JSString::replaceCharacter): |
|
2496 |
|
2497 2010-06-24 Gabor Loki <loki@webkit.org> |
|
2498 |
|
2499 Reviewed by Gavin Barraclough. |
|
2500 |
|
2501 Fix the length of instruction stream controlled by constant pool |
|
2502 https://bugs.webkit.org/show_bug.cgi?id=40293 |
|
2503 |
|
2504 The initial/maximum length of instruction stream (m_maxDistance) should |
|
2505 be set when the first constant arrives to the constant pool. Otherwise |
|
2506 the constant pool could be placed into an uninterrupted sequence. |
|
2507 |
|
2508 * assembler/AssemblerBufferWithConstantPool.h: |
|
2509 (JSC::): |
|
2510 |
|
2511 2010-06-24 Oliver Hunt <oliver@apple.com> |
|
2512 |
|
2513 Reviewed by Gavin Barraclough. |
|
2514 |
|
2515 We assume bytecodeOffset will always return a value > 1, |
|
2516 so we adjust the failure case to return 1 instead of 0. |
|
2517 |
|
2518 * bytecode/CodeBlock.h: |
|
2519 (JSC::CodeBlock::bytecodeOffset): |
|
2520 |
|
2521 2010-06-23 Oliver Hunt <oliver@apple.com> |
|
2522 |
|
2523 Reviewed by Gavin Barraclough. |
|
2524 |
|
2525 Custom-written JavaScript parser |
|
2526 https://bugs.webkit.org/show_bug.cgi?id=34019 |
|
2527 |
|
2528 Implement a recursive descent parser similar to that used by V8 and |
|
2529 SpiderMonkey. Greater than 2x improvement in SunSpider parsing tests. |
|
2530 |
|
2531 The parser consists of a JSParser class that uses a TreeBuilder to actually |
|
2532 build the AST. There are currently two builders -- the ASTBuilder and |
|
2533 SyntaxChecker which separate the job of building an AST for code generation |
|
2534 and simply checking syntactic correctness. |
|
2535 |
|
2536 There's still some less than ideal code remaining in the parser to allow |
|
2537 us to retain the existing lexing code with minimal changes. We'll tidy |
|
2538 this up at a later date. |
|
2539 |
|
2540 * GNUmakefile.am: |
|
2541 * JavaScriptCore.gypi: |
|
2542 * JavaScriptCore.pro: |
|
2543 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
|
2544 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
2545 * parser/ASTBuilder.h: Added. |
|
2546 (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo): |
|
2547 (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo): |
|
2548 (JSC::ASTBuilder::ASTBuilder): |
|
2549 (JSC::ASTBuilder::createSourceElements): |
|
2550 (JSC::ASTBuilder::varDeclarations): |
|
2551 (JSC::ASTBuilder::funcDeclarations): |
|
2552 (JSC::ASTBuilder::features): |
|
2553 (JSC::ASTBuilder::numConstants): |
|
2554 (JSC::ASTBuilder::appendToComma): |
|
2555 (JSC::ASTBuilder::createCommaExpr): |
|
2556 (JSC::ASTBuilder::createLogicalNot): |
|
2557 (JSC::ASTBuilder::createUnaryPlus): |
|
2558 (JSC::ASTBuilder::createVoid): |
|
2559 (JSC::ASTBuilder::thisExpr): |
|
2560 (JSC::ASTBuilder::createResolve): |
|
2561 (JSC::ASTBuilder::createObjectLiteral): |
|
2562 (JSC::ASTBuilder::createArray): |
|
2563 (JSC::ASTBuilder::createNumberExpr): |
|
2564 (JSC::ASTBuilder::createString): |
|
2565 (JSC::ASTBuilder::createBoolean): |
|
2566 (JSC::ASTBuilder::createNull): |
|
2567 (JSC::ASTBuilder::createBracketAccess): |
|
2568 (JSC::ASTBuilder::createDotAccess): |
|
2569 (JSC::ASTBuilder::createRegex): |
|
2570 (JSC::ASTBuilder::createNewExpr): |
|
2571 (JSC::ASTBuilder::createConditionalExpr): |
|
2572 (JSC::ASTBuilder::createAssignResolve): |
|
2573 (JSC::ASTBuilder::createFunctionExpr): |
|
2574 (JSC::ASTBuilder::createFunctionBody): |
|
2575 (JSC::ASTBuilder::createGetterOrSetterProperty): |
|
2576 (JSC::ASTBuilder::createArguments): |
|
2577 (JSC::ASTBuilder::createArgumentsList): |
|
2578 (JSC::ASTBuilder::createProperty): |
|
2579 (JSC::ASTBuilder::createPropertyList): |
|
2580 (JSC::ASTBuilder::createElementList): |
|
2581 (JSC::ASTBuilder::createFormalParameterList): |
|
2582 (JSC::ASTBuilder::createClause): |
|
2583 (JSC::ASTBuilder::createClauseList): |
|
2584 (JSC::ASTBuilder::setUsesArguments): |
|
2585 (JSC::ASTBuilder::createFuncDeclStatement): |
|
2586 (JSC::ASTBuilder::createBlockStatement): |
|
2587 (JSC::ASTBuilder::createExprStatement): |
|
2588 (JSC::ASTBuilder::createIfStatement): |
|
2589 (JSC::ASTBuilder::createForLoop): |
|
2590 (JSC::ASTBuilder::createForInLoop): |
|
2591 (JSC::ASTBuilder::createEmptyStatement): |
|
2592 (JSC::ASTBuilder::createVarStatement): |
|
2593 (JSC::ASTBuilder::createReturnStatement): |
|
2594 (JSC::ASTBuilder::createBreakStatement): |
|
2595 (JSC::ASTBuilder::createContinueStatement): |
|
2596 (JSC::ASTBuilder::createTryStatement): |
|
2597 (JSC::ASTBuilder::createSwitchStatement): |
|
2598 (JSC::ASTBuilder::createWhileStatement): |
|
2599 (JSC::ASTBuilder::createDoWhileStatement): |
|
2600 (JSC::ASTBuilder::createLabelStatement): |
|
2601 (JSC::ASTBuilder::createWithStatement): |
|
2602 (JSC::ASTBuilder::createThrowStatement): |
|
2603 (JSC::ASTBuilder::createDebugger): |
|
2604 (JSC::ASTBuilder::createConstStatement): |
|
2605 (JSC::ASTBuilder::appendConstDecl): |
|
2606 (JSC::ASTBuilder::appendStatement): |
|
2607 (JSC::ASTBuilder::addVar): |
|
2608 (JSC::ASTBuilder::combineCommaNodes): |
|
2609 (JSC::ASTBuilder::evalCount): |
|
2610 (JSC::ASTBuilder::appendBinaryExpressionInfo): |
|
2611 (JSC::ASTBuilder::operatorStackPop): |
|
2612 (JSC::ASTBuilder::operatorStackHasHigherPrecedence): |
|
2613 (JSC::ASTBuilder::getFromOperandStack): |
|
2614 (JSC::ASTBuilder::shrinkOperandStackBy): |
|
2615 (JSC::ASTBuilder::appendBinaryOperation): |
|
2616 (JSC::ASTBuilder::operatorStackAppend): |
|
2617 (JSC::ASTBuilder::popOperandStack): |
|
2618 (JSC::ASTBuilder::appendUnaryToken): |
|
2619 (JSC::ASTBuilder::unaryTokenStackLastType): |
|
2620 (JSC::ASTBuilder::unaryTokenStackLastStart): |
|
2621 (JSC::ASTBuilder::unaryTokenStackRemoveLast): |
|
2622 (JSC::ASTBuilder::assignmentStackAppend): |
|
2623 (JSC::ASTBuilder::createAssignment): |
|
2624 (JSC::ASTBuilder::Scope::Scope): |
|
2625 (JSC::ASTBuilder::setExceptionLocation): |
|
2626 (JSC::ASTBuilder::incConstants): |
|
2627 (JSC::ASTBuilder::usesThis): |
|
2628 (JSC::ASTBuilder::usesCatch): |
|
2629 (JSC::ASTBuilder::usesClosures): |
|
2630 (JSC::ASTBuilder::usesArguments): |
|
2631 (JSC::ASTBuilder::usesAssignment): |
|
2632 (JSC::ASTBuilder::usesWith): |
|
2633 (JSC::ASTBuilder::usesEval): |
|
2634 (JSC::ASTBuilder::createNumber): |
|
2635 (JSC::ASTBuilder::makeTypeOfNode): |
|
2636 (JSC::ASTBuilder::makeDeleteNode): |
|
2637 (JSC::ASTBuilder::makeNegateNode): |
|
2638 (JSC::ASTBuilder::makeBitwiseNotNode): |
|
2639 (JSC::ASTBuilder::makeMultNode): |
|
2640 (JSC::ASTBuilder::makeDivNode): |
|
2641 (JSC::ASTBuilder::makeAddNode): |
|
2642 (JSC::ASTBuilder::makeSubNode): |
|
2643 (JSC::ASTBuilder::makeLeftShiftNode): |
|
2644 (JSC::ASTBuilder::makeRightShiftNode): |
|
2645 (JSC::ASTBuilder::makeFunctionCallNode): |
|
2646 (JSC::ASTBuilder::makeBinaryNode): |
|
2647 (JSC::ASTBuilder::makeAssignNode): |
|
2648 (JSC::ASTBuilder::makePrefixNode): |
|
2649 (JSC::ASTBuilder::makePostfixNode): |
|
2650 * parser/JSParser.cpp: Added. |
|
2651 (JSC::JSParser::AllowInOverride::AllowInOverride): |
|
2652 (JSC::JSParser::AllowInOverride::~AllowInOverride): |
|
2653 (JSC::JSParser::token): |
|
2654 (JSC::JSParser::next): |
|
2655 (JSC::JSParser::consume): |
|
2656 (JSC::JSParser::match): |
|
2657 (JSC::JSParser::tokenStart): |
|
2658 (JSC::JSParser::tokenLine): |
|
2659 (JSC::JSParser::tokenEnd): |
|
2660 (JSC::JSParser::): |
|
2661 (JSC::JSParser::autoSemiColon): |
|
2662 (JSC::JSParser::canRecurse): |
|
2663 (JSC::JSParser::lastTokenEnd): |
|
2664 (JSC::jsParse): |
|
2665 (JSC::JSParser::JSParser): |
|
2666 (JSC::JSParser::parseProgram): |
|
2667 (JSC::JSParser::allowAutomaticSemicolon): |
|
2668 (JSC::JSParser::parseSourceElements): |
|
2669 (JSC::JSParser::parseVarDeclaration): |
|
2670 (JSC::JSParser::parseConstDeclaration): |
|
2671 (JSC::JSParser::parseDoWhileStatement): |
|
2672 (JSC::JSParser::parseWhileStatement): |
|
2673 (JSC::JSParser::parseVarDeclarationList): |
|
2674 (JSC::JSParser::parseConstDeclarationList): |
|
2675 (JSC::JSParser::parseForStatement): |
|
2676 (JSC::JSParser::parseBreakStatement): |
|
2677 (JSC::JSParser::parseContinueStatement): |
|
2678 (JSC::JSParser::parseReturnStatement): |
|
2679 (JSC::JSParser::parseThrowStatement): |
|
2680 (JSC::JSParser::parseWithStatement): |
|
2681 (JSC::JSParser::parseSwitchStatement): |
|
2682 (JSC::JSParser::parseSwitchClauses): |
|
2683 (JSC::JSParser::parseSwitchDefaultClause): |
|
2684 (JSC::JSParser::parseTryStatement): |
|
2685 (JSC::JSParser::parseDebuggerStatement): |
|
2686 (JSC::JSParser::parseBlockStatement): |
|
2687 (JSC::JSParser::parseStatement): |
|
2688 (JSC::JSParser::parseFormalParameters): |
|
2689 (JSC::JSParser::parseFunctionBody): |
|
2690 (JSC::JSParser::parseFunctionInfo): |
|
2691 (JSC::JSParser::parseFunctionDeclaration): |
|
2692 (JSC::JSParser::parseExpressionOrLabelStatement): |
|
2693 (JSC::JSParser::parseExpressionStatement): |
|
2694 (JSC::JSParser::parseIfStatement): |
|
2695 (JSC::JSParser::parseExpression): |
|
2696 (JSC::JSParser::parseAssignmentExpression): |
|
2697 (JSC::JSParser::parseConditionalExpression): |
|
2698 (JSC::isUnaryOp): |
|
2699 (JSC::JSParser::isBinaryOperator): |
|
2700 (JSC::JSParser::parseBinaryExpression): |
|
2701 (JSC::JSParser::parseProperty): |
|
2702 (JSC::JSParser::parseObjectLiteral): |
|
2703 (JSC::JSParser::parseArrayLiteral): |
|
2704 (JSC::JSParser::parsePrimaryExpression): |
|
2705 (JSC::JSParser::parseArguments): |
|
2706 (JSC::JSParser::parseMemberExpression): |
|
2707 (JSC::JSParser::parseUnaryExpression): |
|
2708 * parser/JSParser.h: Added. |
|
2709 (JSC::): |
|
2710 (JSC::JSTokenInfo::JSTokenInfo): |
|
2711 * parser/Lexer.cpp: |
|
2712 (JSC::Lexer::lex): |
|
2713 * parser/Lexer.h: |
|
2714 (JSC::Lexer::setLastLineNumber): |
|
2715 (JSC::Lexer::lastLineNumber): |
|
2716 * parser/NodeConstructors.h: |
|
2717 (JSC::Node::Node): |
|
2718 * parser/Parser.cpp: |
|
2719 (JSC::Parser::parse): |
|
2720 * parser/SyntaxChecker.h: Added. |
|
2721 (JSC::SyntaxChecker::SyntaxChecker): |
|
2722 (JSC::SyntaxChecker::createSourceElements): |
|
2723 (JSC::SyntaxChecker::makeFunctionCallNode): |
|
2724 (JSC::SyntaxChecker::appendToComma): |
|
2725 (JSC::SyntaxChecker::createCommaExpr): |
|
2726 (JSC::SyntaxChecker::makeAssignNode): |
|
2727 (JSC::SyntaxChecker::makePrefixNode): |
|
2728 (JSC::SyntaxChecker::makePostfixNode): |
|
2729 (JSC::SyntaxChecker::makeTypeOfNode): |
|
2730 (JSC::SyntaxChecker::makeDeleteNode): |
|
2731 (JSC::SyntaxChecker::makeNegateNode): |
|
2732 (JSC::SyntaxChecker::makeBitwiseNotNode): |
|
2733 (JSC::SyntaxChecker::createLogicalNot): |
|
2734 (JSC::SyntaxChecker::createUnaryPlus): |
|
2735 (JSC::SyntaxChecker::createVoid): |
|
2736 (JSC::SyntaxChecker::thisExpr): |
|
2737 (JSC::SyntaxChecker::createResolve): |
|
2738 (JSC::SyntaxChecker::createObjectLiteral): |
|
2739 (JSC::SyntaxChecker::createArray): |
|
2740 (JSC::SyntaxChecker::createNumberExpr): |
|
2741 (JSC::SyntaxChecker::createString): |
|
2742 (JSC::SyntaxChecker::createBoolean): |
|
2743 (JSC::SyntaxChecker::createNull): |
|
2744 (JSC::SyntaxChecker::createBracketAccess): |
|
2745 (JSC::SyntaxChecker::createDotAccess): |
|
2746 (JSC::SyntaxChecker::createRegex): |
|
2747 (JSC::SyntaxChecker::createNewExpr): |
|
2748 (JSC::SyntaxChecker::createConditionalExpr): |
|
2749 (JSC::SyntaxChecker::createAssignResolve): |
|
2750 (JSC::SyntaxChecker::createFunctionExpr): |
|
2751 (JSC::SyntaxChecker::createFunctionBody): |
|
2752 (JSC::SyntaxChecker::createArguments): |
|
2753 (JSC::SyntaxChecker::createArgumentsList): |
|
2754 (JSC::SyntaxChecker::createProperty): |
|
2755 (JSC::SyntaxChecker::createPropertyList): |
|
2756 (JSC::SyntaxChecker::createElementList): |
|
2757 (JSC::SyntaxChecker::createFormalParameterList): |
|
2758 (JSC::SyntaxChecker::createClause): |
|
2759 (JSC::SyntaxChecker::createClauseList): |
|
2760 (JSC::SyntaxChecker::setUsesArguments): |
|
2761 (JSC::SyntaxChecker::createFuncDeclStatement): |
|
2762 (JSC::SyntaxChecker::createBlockStatement): |
|
2763 (JSC::SyntaxChecker::createExprStatement): |
|
2764 (JSC::SyntaxChecker::createIfStatement): |
|
2765 (JSC::SyntaxChecker::createForLoop): |
|
2766 (JSC::SyntaxChecker::createForInLoop): |
|
2767 (JSC::SyntaxChecker::createEmptyStatement): |
|
2768 (JSC::SyntaxChecker::createVarStatement): |
|
2769 (JSC::SyntaxChecker::createReturnStatement): |
|
2770 (JSC::SyntaxChecker::createBreakStatement): |
|
2771 (JSC::SyntaxChecker::createContinueStatement): |
|
2772 (JSC::SyntaxChecker::createTryStatement): |
|
2773 (JSC::SyntaxChecker::createSwitchStatement): |
|
2774 (JSC::SyntaxChecker::createWhileStatement): |
|
2775 (JSC::SyntaxChecker::createWithStatement): |
|
2776 (JSC::SyntaxChecker::createDoWhileStatement): |
|
2777 (JSC::SyntaxChecker::createLabelStatement): |
|
2778 (JSC::SyntaxChecker::createThrowStatement): |
|
2779 (JSC::SyntaxChecker::createDebugger): |
|
2780 (JSC::SyntaxChecker::createConstStatement): |
|
2781 (JSC::SyntaxChecker::appendConstDecl): |
|
2782 (JSC::SyntaxChecker::createGetterOrSetterProperty): |
|
2783 (JSC::SyntaxChecker::appendStatement): |
|
2784 (JSC::SyntaxChecker::addVar): |
|
2785 (JSC::SyntaxChecker::combineCommaNodes): |
|
2786 (JSC::SyntaxChecker::evalCount): |
|
2787 (JSC::SyntaxChecker::appendBinaryExpressionInfo): |
|
2788 (JSC::SyntaxChecker::operatorStackPop): |
|
2789 * runtime/JSGlobalData.h: |
|
2790 * wtf/Platform.h: |
|
2791 * wtf/ThreadSpecific.h: |
|
2792 (WTF::T): |
|
2793 |
|
2794 2010-06-23 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
2795 |
|
2796 Reviewed by Simon Hausmann. |
|
2797 |
|
2798 Optimization of the QScriptValuePrivate. |
|
2799 |
|
2800 Patch change only internals of the QScriptValuePrivate. |
|
2801 Most of the QScriptValuePrivate's attributes were moved |
|
2802 into an union. |
|
2803 |
|
2804 [Qt] Optimization of the QScriptVAluePrivate. |
|
2805 https://bugs.webkit.org/show_bug.cgi?id=40415 |
|
2806 |
|
2807 * qt/api/qscriptengine_p.cpp: |
|
2808 (QScriptEnginePrivate::globalObject): |
|
2809 * qt/api/qscriptvalue_p.h: |
|
2810 (QScriptValuePrivate::): |
|
2811 (QScriptValuePrivate::~QScriptValuePrivate): |
|
2812 (QScriptValuePrivate::QScriptValuePrivate): |
|
2813 (QScriptValuePrivate::toString): |
|
2814 (QScriptValuePrivate::toNumber): |
|
2815 (QScriptValuePrivate::toBool): |
|
2816 (QScriptValuePrivate::toObject): |
|
2817 (QScriptValuePrivate::equals): |
|
2818 (QScriptValuePrivate::strictlyEquals): |
|
2819 (QScriptValuePrivate::assignEngine): |
|
2820 (QScriptValuePrivate::operator JSValueRef): |
|
2821 (QScriptValuePrivate::operator JSObjectRef): |
|
2822 (QScriptValuePrivate::refinedJSValue): |
|
2823 |
|
2824 2010-06-23 Kwang Yul Seo <skyul@company100.net> |
|
2825 |
|
2826 Reviewed by Oliver Hunt. |
|
2827 |
|
2828 [GTK] Implement ThreadSpecific with glib |
|
2829 https://bugs.webkit.org/show_bug.cgi?id=39829 |
|
2830 |
|
2831 Implement ThreadSpecific with glib's GStaticPrivate. |
|
2832 This patch makes it possible to build GTK port without pthread. |
|
2833 |
|
2834 * wtf/ThreadSpecific.h: |
|
2835 (WTF::::ThreadSpecific): |
|
2836 (WTF::::~ThreadSpecific): |
|
2837 (WTF::::get): |
|
2838 (WTF::::set): |
|
2839 (WTF::::destroy): |
|
2840 |
|
2841 2010-06-23 Leandro Pereira <leandro@profusion.mobi> |
|
2842 |
|
2843 Unreviewed build fix. |
|
2844 |
|
2845 * CMakeLists.txt: Add runtime/RegExpCache.cpp. |
|
2846 |
|
2847 2010-06-22 Renata Hodovan <hodovan@inf.u-szeged.hu> |
|
2848 |
|
2849 Reviewed by Geoffrey Garen. |
|
2850 |
|
2851 Adding regular expression caching to JavaScriptCore |
|
2852 https://bugs.webkit.org/show_bug.cgi?id=38142 |
|
2853 |
|
2854 The cache is based on Round Robin eviction policy, and |
|
2855 can cache at most 256 character long regular expressions, |
|
2856 and at most 256 of them. These values can be changed at compile time. |
|
2857 |
|
2858 * GNUmakefile.am: |
|
2859 * JavaScriptCore.gypi: |
|
2860 * JavaScriptCore.pro: |
|
2861 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: |
|
2862 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
2863 * bytecompiler/NodesCodegen.cpp: |
|
2864 (JSC::RegExpNode::emitBytecode): |
|
2865 * runtime/JSGlobalData.cpp: |
|
2866 (JSC::JSGlobalData::JSGlobalData): |
|
2867 (JSC::JSGlobalData::~JSGlobalData): |
|
2868 * runtime/JSGlobalData.h: |
|
2869 (JSC::JSGlobalData::regExpCache): |
|
2870 * runtime/RegExpCache.cpp: Added. |
|
2871 (JSC::RegExpCache::lookupOrCreate): |
|
2872 (JSC::RegExpCache::create): |
|
2873 (JSC::RegExpCache::RegExpCache): |
|
2874 * runtime/RegExpCache.h: Added. |
|
2875 * runtime/RegExpConstructor.cpp: |
|
2876 (JSC::constructRegExp): |
|
2877 * runtime/RegExpKey.h: Added. |
|
2878 (JSC::RegExpKey::RegExpKey): |
|
2879 (JSC::RegExpKey::getFlagsValue): |
|
2880 (WTF::operator==): |
|
2881 (WTF::): |
|
2882 * runtime/RegExpPrototype.cpp: |
|
2883 (JSC::regExpProtoFuncCompile): |
|
2884 * runtime/StringPrototype.cpp: |
|
2885 (JSC::stringProtoFuncMatch): |
|
2886 (JSC::stringProtoFuncSearch): |
|
2887 |
|
2888 2010-06-22 Gabor Loki <loki@webkit.org> |
|
2889 |
|
2890 Reviewed by Geoffrey Garen. |
|
2891 |
|
2892 Add native call support for ARM and Thumb-2 JIT. |
|
2893 https://bugs.webkit.org/show_bug.cgi?id=40231 |
|
2894 |
|
2895 * jit/JITOpcodes.cpp: |
|
2896 (JSC::JIT::privateCompileCTINativeCall): |
|
2897 * jit/JITOpcodes32_64.cpp: |
|
2898 (JSC::JIT::privateCompileCTINativeCall): |
|
2899 * wtf/Platform.h: |
|
2900 |
|
2901 2010-06-21 Oliver Hunt <oliver@apple.com> |
|
2902 |
|
2903 Reviewed by Geoffrey Garen. |
|
2904 |
|
2905 Make JSC more resilient in the face of parse failures |
|
2906 https://bugs.webkit.org/show_bug.cgi?id=40951 |
|
2907 |
|
2908 A number of recent bugs have occurred due to issues like miscounting |
|
2909 BOMs, etc which lead to interesting crashes later on. Adding this |
|
2910 logic hardens JSC in the face of these errors, and has no impact on |
|
2911 performance (32bit jit actually gets 0.7% faster but I put that down |
|
2912 to cache effects). |
|
2913 |
|
2914 * bytecode/CodeBlock.cpp: |
|
2915 (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): |
|
2916 (JSC::CodeBlock::lineNumberForBytecodeOffset): |
|
2917 (JSC::CodeBlock::expressionRangeForBytecodeOffset): |
|
2918 (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset): |
|
2919 * bytecode/CodeBlock.h: |
|
2920 (JSC::CodeBlock::bytecodeOffset): |
|
2921 * interpreter/Interpreter.cpp: |
|
2922 (JSC::Interpreter::execute): |
|
2923 (JSC::Interpreter::executeCall): |
|
2924 (JSC::Interpreter::executeConstruct): |
|
2925 (JSC::Interpreter::prepareForRepeatCall): |
|
2926 (JSC::Interpreter::privateExecute): |
|
2927 * jit/JITOpcodes.cpp: |
|
2928 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
2929 * jit/JITOpcodes32_64.cpp: |
|
2930 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
2931 * jit/JITStubs.cpp: |
|
2932 (JSC::DEFINE_STUB_FUNCTION): |
|
2933 * runtime/ArrayPrototype.cpp: |
|
2934 (JSC::isNumericCompareFunction): |
|
2935 * runtime/Executable.cpp: |
|
2936 (JSC::FunctionExecutable::compileForCall): |
|
2937 (JSC::FunctionExecutable::compileForConstruct): |
|
2938 (JSC::FunctionExecutable::generateJITCodeForCall): |
|
2939 (JSC::FunctionExecutable::generateJITCodeForConstruct): |
|
2940 (JSC::FunctionExecutable::reparseExceptionInfo): |
|
2941 (JSC::EvalExecutable::reparseExceptionInfo): |
|
2942 * runtime/Executable.h: |
|
2943 (JSC::FunctionExecutable::bytecodeForCall): |
|
2944 (JSC::FunctionExecutable::bytecodeForConstruct): |
|
2945 * runtime/JSGlobalData.cpp: |
|
2946 (JSC::JSGlobalData::numericCompareFunction): |
|
2947 |
|
2948 2010-06-21 John Sullivan <sullivan@apple.com> |
|
2949 |
|
2950 Reviewed by Adam Roben. |
|
2951 |
|
2952 RetainPtr can't be used in HashMaps or HashSets |
|
2953 <https://bugs.webkit.org/show_bug.cgi?id=40938> |
|
2954 |
|
2955 Added hashing knowledge similar to that in COMPtr.h. |
|
2956 |
|
2957 * wtf/RetainPtr.h: |
|
2958 (WTF::RetainPtr::RetainPtr): |
|
2959 New function, copied from COMPtr.h but for the type change. |
|
2960 (WTF::RetainPtr::isHashTableDeletedValue): |
|
2961 Ditto. |
|
2962 (WTF::RetainPtr::hashTableDeletedValue): |
|
2963 Ditto. |
|
2964 Added template code for HashTraits and PtrHash copied from COMPtr.h but for the type change. |
|
2965 The only difference is that constructDeletedValue() matches the RefPtr implementation (in HashTraits.h) |
|
2966 rather than the COMPtr implementation. |
|
2967 |
|
2968 2010-06-19 Oliver Hunt <oliver@apple.com> |
|
2969 |
|
2970 Reviewed by Geoffrey Garen. |
|
2971 |
|
2972 Need to ensure that we grow the RegisterFile when creating a callframe for host code |
|
2973 https://bugs.webkit.org/show_bug.cgi?id=40858 |
|
2974 <rdar://problem/8108986> |
|
2975 |
|
2976 In the past the use of the callframe in hostcode was much more |
|
2977 limited. Now that we expect the callframe to always be valid |
|
2978 we need to grow the RegisterFile so that this is actually the |
|
2979 case. In this particular case the problem was failing to grow |
|
2980 the registerfile could lead to a callframe that extended beyond |
|
2981 RegisterFiler::end(), so vm re-entry would clobber the callframe |
|
2982 other scenarios could also lead to badness. |
|
2983 |
|
2984 I was unable to construct a simple testcase to trigger badness, |
|
2985 and any such testcase would be so dependent on exact vm stack |
|
2986 layout that it would be unlikely to work as a testcase following |
|
2987 any callframe or register allocation changes anyway. |
|
2988 |
|
2989 Thankfully the new assertion I added should help to catch these |
|
2990 failures in future, and triggers on a couple of tests currently. |
|
2991 |
|
2992 * interpreter/CallFrame.cpp: |
|
2993 (JSC::CallFrame::registerFile): |
|
2994 * interpreter/CallFrame.h: |
|
2995 (JSC::ExecState::init): |
|
2996 * interpreter/Interpreter.cpp: |
|
2997 (JSC::Interpreter::privateExecute): |
|
2998 * jit/JITStubs.cpp: |
|
2999 (JSC::DEFINE_STUB_FUNCTION): |
|
3000 |
|
3001 2010-06-21 Satish Sampath <satish@chromium.org> |
|
3002 |
|
3003 Reviewed by Steve Block. |
|
3004 |
|
3005 Speech Input Patch 0: Added compilation argument to conditionally compile pending patches. |
|
3006 https://bugs.webkit.org/show_bug.cgi?id=40878 |
|
3007 |
|
3008 * Configurations/FeatureDefines.xcconfig: |
|
3009 |
|
3010 2010-06-21 Kwang Yul Seo <skyul@company100.net> |
|
3011 |
|
3012 Reviewed by Kent Tamura. |
|
3013 |
|
3014 [BREWMP] Use global new/delete operator overloading with USE_SYSTEM_MALLOC=1 |
|
3015 https://bugs.webkit.org/show_bug.cgi?id=40653 |
|
3016 |
|
3017 Currently, other ports do not use global new/delete operator overloading |
|
3018 when USE_SYSTEM_MALLOC=1. Brew MP uses system malloc, but it needs to enable |
|
3019 "global fastMalloc new" because the default new/delete causes crash on device. |
|
3020 We need to replace them with Brew MP's MALLOC/FREE. |
|
3021 |
|
3022 * wtf/FastMalloc.h: |
|
3023 |
|
3024 2010-06-18 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> |
|
3025 |
|
3026 Reviewed by Simon Hausmann. |
|
3027 |
|
3028 [Qt] Work around a build problem with libjscore on Symbian. |
|
3029 https://bugs.webkit.org/show_bug.cgi?id=40840 |
|
3030 |
|
3031 Sbsv2 sometimes have problems with debug/release configuration |
|
3032 determination causing QtWebKit in release to try linking with the debug |
|
3033 JavaScriptCore static library. This patch limit the jscore/jscored |
|
3034 r58306 fix necessary for mac builds only to the mac platform to prevent the |
|
3035 different name problem. |
|
3036 |
|
3037 The real fix would be to fix qmake or the toolchain, this patch might |
|
3038 help meanwhile. |
|
3039 |
|
3040 * JavaScriptCore.pri: |
|
3041 |
|
3042 2010-06-21 Patrick Gansterer <paroga@paroga.com> |
|
3043 |
|
3044 Reviewed by Kent Tamura. |
|
3045 |
|
3046 Buildfix after r61338. |
|
3047 https://bugs.webkit.org/show_bug.cgi?id=40888 |
|
3048 |
|
3049 roundUpAllocationSize is needed in RegisterFile.h. |
|
3050 |
|
3051 * jit/ExecutableAllocator.h: |
|
3052 |
|
3053 2010-06-19 Kwang Yul Seo <skyul@company100.net> |
|
3054 |
|
3055 Reviewed by Darin Adler. |
|
3056 |
|
3057 Include <string.h> in StringExtras.h |
|
3058 https://bugs.webkit.org/show_bug.cgi?id=40808 |
|
3059 |
|
3060 Without string.h, RVCT 2.2 can't compile StringExtras.h. |
|
3061 It can't find strlen and strncmp. |
|
3062 |
|
3063 * wtf/StringExtras.h: |
|
3064 |
|
3065 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com> |
|
3066 |
|
3067 Reviewed by Kenneth Rohde Christiansen. |
|
3068 |
|
3069 Don't use __attribute__((may_alias)) with the Intel compiler, |
|
3070 as it doesn't understand it. |
|
3071 |
|
3072 * wtf/Vector.h: |
|
3073 |
|
3074 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com> |
|
3075 |
|
3076 Reviewed by Kenneth Rohde Christiansen. |
|
3077 |
|
3078 Fix compilation with the Intel C++ compiler (11.1.072). |
|
3079 |
|
3080 Like RVCT, label pointers must be void*, not const void*. |
|
3081 |
|
3082 * bytecode/Opcode.h: |
|
3083 |
|
3084 2010-06-19 Thiago Macieira <thiago.macieira@nokia.com> |
|
3085 |
|
3086 Reviewed by Kenneth Rohde Christiansen. |
|
3087 |
|
3088 Add the WTF_COMPILER_INTEL for when the Intel compiler is used |
|
3089 for building. Usually, the Intel compiler masquerades as |
|
3090 another compiler in the system and gets away with it, but some |
|
3091 times specific fixes are required (such as when using language |
|
3092 extensions). |
|
3093 |
|
3094 * wtf/Platform.h: |
|
3095 |
|
3096 2010-06-18 Oliver Hunt <oliver@apple.com> |
|
3097 |
|
3098 Reviewed by Geoffrey Garen. |
|
3099 |
|
3100 Incorrect handling of multiple BOMs scattered through a file. |
|
3101 https://bugs.webkit.org/show_bug.cgi?id=40865 |
|
3102 |
|
3103 When determining the offset of open and close braces in a source |
|
3104 with BOMs we were finishing our count early as we failed to account |
|
3105 for BOMs prior to the open/close brace positions effecting those |
|
3106 positions. |
|
3107 |
|
3108 * parser/Lexer.cpp: |
|
3109 (JSC::Lexer::sourceCode): |
|
3110 |
|
3111 2010-06-17 Oliver Hunt <oliver@apple.com> |
|
3112 |
|
3113 Reviewed by Sam Weinig. |
|
3114 |
|
3115 Don't throw away exception information for functions that use exceptions |
|
3116 https://bugs.webkit.org/show_bug.cgi?id=40786 |
|
3117 |
|
3118 Simple patch to stop JSC from throwing away the exception information |
|
3119 of a function that uses "exceptiony" features like try and throw. This |
|
3120 is a speed up for catching expressions but it's difficult to quantify as |
|
3121 the old cost of reparsing is amortised over all exceptions caught in the |
|
3122 effected function. |
|
3123 |
|
3124 * bytecode/CodeBlock.cpp: |
|
3125 (JSC::CodeBlock::reparseForExceptionInfoIfNecessary): |
|
3126 * bytecompiler/BytecodeGenerator.cpp: |
|
3127 (JSC::BytecodeGenerator::generate): |
|
3128 (JSC::BytecodeGenerator::emitCatch): |
|
3129 * bytecompiler/BytecodeGenerator.h: |
|
3130 (JSC::BytecodeGenerator::emitThrow): |
|
3131 |
|
3132 2010-06-18 Anders Carlsson <andersca@apple.com> |
|
3133 |
|
3134 Reviewed by Sam Weinig. |
|
3135 |
|
3136 Add PlatformStrategies and PluginStrategy classes. |
|
3137 https://bugs.webkit.org/show_bug.cgi?id=40850 |
|
3138 |
|
3139 * wtf/Platform.h: |
|
3140 |
|
3141 2010-06-18 Leandro Pereira <leandro@profusion.mobi> |
|
3142 |
|
3143 [EFL] Unreviewed build fix. |
|
3144 |
|
3145 * wtf/CMakeLists.txt: Add MD5.cpp. |
|
3146 |
|
3147 2010-06-17 Shu Chang <chang.shu@nokia.com> |
|
3148 |
|
3149 Reviewed by Kenneth Rohde Christiansen. |
|
3150 |
|
3151 [Qt] Fix the link error on symbian with ENABLE_JIT=0. |
|
3152 1. Add "#if ENABLE(JIT)" in the header file; |
|
3153 2. Put feature enable/disable logic to a common.pri so |
|
3154 that both JavaScriptCore.pri and WebCore.pri can share. |
|
3155 |
|
3156 https://bugs.webkit.org/show_bug.cgi?id=40780 |
|
3157 |
|
3158 * JavaScriptCore.pri: |
|
3159 * jit/ExecutableAllocator.h: |
|
3160 |
|
3161 2010-06-17 Darin Adler <darin@apple.com> |
|
3162 |
|
3163 Reviewed by Sam Weinig. |
|
3164 |
|
3165 Use adoptRef and create functions in more code paths |
|
3166 https://bugs.webkit.org/show_bug.cgi?id=40760 |
|
3167 |
|
3168 * API/JSClassRef.h: Removed unneeded include of RefCounted.h. |
|
3169 * API/JSWeakObjectMapRefPrivate.cpp: Ditto. |
|
3170 |
|
3171 * bytecode/CodeBlock.h: |
|
3172 (JSC::FunctionCodeBlock::FunctionCodeBlock): Use the |
|
3173 SharedSymbolTable::create function instead of calling new directly. |
|
3174 |
|
3175 * runtime/SymbolTable.h: Added a create function to the SharedSymbolTable |
|
3176 class and made the constructor private. |
|
3177 |
|
3178 2010-06-17 Mark Brand <mabrand@mabrand.nl> |
|
3179 |
|
3180 Reviewed by Simon Hausmann. |
|
3181 |
|
3182 [Qt] use "win32-g++*" scope to match all MinGW makespecs |
|
3183 |
|
3184 The scope "win32-g++" comes from the name of the makespec. However, it |
|
3185 is frequently used to check for MinGW. This works fine as long as |
|
3186 win32-g++ is the only makespec for MinGW. Now we need the wildcard |
|
3187 to cover "win32-g++-cross" as well. |
|
3188 |
|
3189 * JavaScriptCore.pro: |
|
3190 |
|
3191 2010-06-16 Darin Adler <darin@apple.com> |
|
3192 |
|
3193 Reviewed by David Levin. |
|
3194 |
|
3195 Deploy adoptRef in more places, including all HTML and MathML elements |
|
3196 https://bugs.webkit.org/show_bug.cgi?id=39941 |
|
3197 |
|
3198 * wtf/ThreadSafeShared.h: Made the constructor protected and removed the |
|
3199 unneeded support for initial reference counts other than 1. |
|
3200 |
|
3201 2010-06-16 Peter Varga <pvarga@inf.u-szeged.hu> |
|
3202 |
|
3203 Reviewed by Geoffrey Garen. |
|
3204 |
|
3205 Store matchBegin directly in the array of output instead of the stack. |
|
3206 https://bugs.webkit.org/show_bug.cgi?id=38988 |
|
3207 |
|
3208 * yarr/RegexJIT.cpp: |
|
3209 (JSC::Yarr::RegexGenerator::generateDisjunction): |
|
3210 (JSC::Yarr::RegexGenerator::generate): |
|
3211 |
|
3212 2010-06-15 Anders Carlsson <andersca@apple.com> |
|
3213 |
|
3214 Reviewed by Sam Weinig. |
|
3215 |
|
3216 Make JavaScriptCore build with clang++. |
|
3217 |
|
3218 * jit/JITInlineMethods.h: |
|
3219 (JSC::JIT::emitPutVirtualRegister): |
|
3220 Explicitly cast to an int. |
|
3221 |
|
3222 * yarr/RegexCompiler.cpp: |
|
3223 (JSC::Yarr::compileRegex): |
|
3224 Return 0 instead of false. |
|
3225 |
|
3226 2010-06-15 Adam Roben <aroben@apple.com> |
|
3227 |
|
3228 Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds |
|
3229 |
|
3230 Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>. |
|
3231 |
|
3232 Reviewed by Sam Weinig. |
|
3233 |
|
3234 * JavaScriptCore.vcproj/JavaScriptCore.make: Copy the contents of |
|
3235 JavaScriptCore's DerivedSources directory to |
|
3236 AppleInternal/Sources/JavaScriptCore. |
|
3237 |
|
3238 2010-06-15 Gabor Loki <loki@webkit.org> |
|
3239 |
|
3240 Rubber-stamped by Eric Seidel. |
|
3241 |
|
3242 Fix invalid access to non-static data member warning in JITPropertyAccess32_64 on ARM |
|
3243 https://bugs.webkit.org/show_bug.cgi?id=40423 |
|
3244 |
|
3245 Using OBJECT_OFFSETOF macro instead of objectof to bypass access to |
|
3246 non-static data member warning. |
|
3247 |
|
3248 * jit/JITPropertyAccess32_64.cpp: |
|
3249 (JSC::JIT::privateCompilePutByIdTransition): |
|
3250 |
|
3251 2010-06-11 Eric Seidel <eric@webkit.org> |
|
3252 |
|
3253 Reviewed by Adam Barth. |
|
3254 |
|
3255 Rename the rest of the *Tokenizer classes to *DocumentParser |
|
3256 https://bugs.webkit.org/show_bug.cgi?id=40507 |
|
3257 |
|
3258 * wtf/Platform.h: |
|
3259 - fixed a comment to match new names. |
|
3260 |
|
3261 2010-06-11 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
3262 |
|
3263 Reviewed by Simon Hausmann. |
|
3264 |
|
3265 [Qt] Explicit conversions from QtScript types to JSC opaque types were removed. |
|
3266 https://bugs.webkit.org/show_bug.cgi?id=40412 |
|
3267 |
|
3268 Conversion between a JSC C types and a QtScript private types, takes |
|
3269 main part of the source code. In most cases a mapping between the types |
|
3270 is one to one. New cast operators were added to simplify the code. |
|
3271 |
|
3272 The QScriptValuePrivate could be casted to the JSValueRef and the JSObjectRef. |
|
3273 The QScriptEnginePrivate could be casted to the JSGlobalContext. |
|
3274 The QScriptProgramPrivate could be casted to the JSStringRef. |
|
3275 |
|
3276 * qt/api/qscriptengine_p.cpp: |
|
3277 (QScriptEnginePrivate::evaluate): |
|
3278 (QScriptEnginePrivate::newObject): |
|
3279 (QScriptEnginePrivate::globalObject): |
|
3280 * qt/api/qscriptengine_p.h: |
|
3281 (QScriptEnginePrivate::operator JSGlobalContextRef): |
|
3282 * qt/api/qscriptprogram_p.h: |
|
3283 (QScriptProgramPrivate::operator JSStringRef): |
|
3284 * qt/api/qscriptsyntaxcheckresult.cpp: |
|
3285 (QScriptSyntaxCheckResultPrivate::~QScriptSyntaxCheckResultPrivate): |
|
3286 (QScriptSyntaxCheckResultPrivate::errorMessage): |
|
3287 (QScriptSyntaxCheckResultPrivate::errorLineNumber): |
|
3288 * qt/api/qscriptvalue_p.h: |
|
3289 (QScriptValuePrivate::~QScriptValuePrivate): |
|
3290 (QScriptValuePrivate::QScriptValuePrivate): |
|
3291 (QScriptValuePrivate::isBool): |
|
3292 (QScriptValuePrivate::isNumber): |
|
3293 (QScriptValuePrivate::isNull): |
|
3294 (QScriptValuePrivate::isString): |
|
3295 (QScriptValuePrivate::isUndefined): |
|
3296 (QScriptValuePrivate::isFunction): |
|
3297 (QScriptValuePrivate::toString): |
|
3298 (QScriptValuePrivate::toNumber): |
|
3299 (QScriptValuePrivate::toBool): |
|
3300 (QScriptValuePrivate::toObject): |
|
3301 (QScriptValuePrivate::equals): |
|
3302 (QScriptValuePrivate::strictlyEquals): |
|
3303 (QScriptValuePrivate::instanceOf): |
|
3304 (QScriptValuePrivate::call): |
|
3305 (QScriptValuePrivate::operator JSValueRef): |
|
3306 (QScriptValuePrivate::operator JSObjectRef): |
|
3307 (QScriptValuePrivate::setValue): |
|
3308 (QScriptValuePrivate::inherits): |
|
3309 (QScriptValuePrivate::refinedJSValue): |
|
3310 |
|
3311 2010-05-31 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> |
|
3312 |
|
3313 Reviewed by Simon Hausmann. |
|
3314 |
|
3315 [Qt] Implement the simple text code path. |
|
3316 https://bugs.webkit.org/show_bug.cgi?id=40077 |
|
3317 |
|
3318 Remove the FONT_FAST_PATH macro and use the Qt's |
|
3319 fast text implementation instead of the one of WebKit. |
|
3320 |
|
3321 The Qt::TextBypassShaping flag is used to tell Qt to |
|
3322 only use the glyph advances. |
|
3323 |
|
3324 Qt 4.7 is needed to get this flag thus the complex path is always |
|
3325 used if QtWebKit is compiled against an earlier version. |
|
3326 |
|
3327 Contrary to the WebKit's implementation, the complex code path |
|
3328 is taken if the text is RightToLeft, justified or is formatted |
|
3329 with non-zero letter or word spacing. |
|
3330 |
|
3331 * wtf/Platform.h: |
|
3332 |
|
3333 2010-06-11 Luiz Agostini <luiz.agostini@openbossa.org> |
|
3334 |
|
3335 Reviewed by Kenneth Rohde Christiansen. |
|
3336 |
|
3337 add codePointCompare to JavaScriptCore.exp |
|
3338 https://bugs.webkit.org/show_bug.cgi?id=40426 |
|
3339 |
|
3340 * JavaScriptCore.exp: |
|
3341 |
|
3342 2010-06-10 Oliver Hunt <oliver@apple.com> |
|
3343 |
|
3344 Reviewed by Maciej Stachowiak. |
|
3345 |
|
3346 Math Javascript Bug on Safari 5 (webkit 533.16) under "32bit" mode |
|
3347 https://bugs.webkit.org/show_bug.cgi?id=40367 |
|
3348 |
|
3349 If we're in the slow case of right shift we must write the type tag as |
|
3350 the only reason we hit this code path is because we know we're working |
|
3351 with a double. eg. we are guaranteed that the tag cannot be reused. |
|
3352 |
|
3353 * jit/JITArithmetic32_64.cpp: |
|
3354 (JSC::JIT::emitRightShiftSlowCase): |
|
3355 |
|
3356 2010-06-10 Kwang Yul Seo <skyul@company100.net> |
|
3357 |
|
3358 Reviewed by Eric Seidel. |
|
3359 |
|
3360 Remove weakRandomNumber |
|
3361 https://bugs.webkit.org/show_bug.cgi?id=40291 |
|
3362 |
|
3363 weakRandomNumber is used nowhere. Currently, WeakRandom is used instead. |
|
3364 |
|
3365 * wtf/RandomNumber.cpp: |
|
3366 * wtf/RandomNumber.h: |
|
3367 |
|
3368 2010-06-09 Alexey Proskuryakov <ap@apple.com> |
|
3369 |
|
3370 Reviewed by Brady Eidson. |
|
3371 |
|
3372 Export StringImpl::ascii(). It might be not very useful, but it's a public function. |
|
3373 |
|
3374 * JavaScriptCore.exp: |
|
3375 |
|
3376 2010-06-09 Leandro Pereira <leandro@profusion.mobi> |
|
3377 |
|
3378 Reviewed by Adam Treat. |
|
3379 |
|
3380 [EFL] Allow building core libraries as shared objects to speed up |
|
3381 linking time on machines with small amounts of memory. |
|
3382 http://webkit.org/b/39899 |
|
3383 |
|
3384 * CMakeLists.txt: If building with shared core, install the lib. |
|
3385 * jsc/CMakeListsEfl.txt: Needs Glib and Ecore to link dynamically. |
|
3386 * wtf/CMakeLists.txt: If building with shared core, install the lib. |
|
3387 |
|
3388 2010-06-09 Gabor Loki <loki@webkit.org> |
|
3389 |
|
3390 Reviewed by David Levin. |
|
3391 |
|
3392 Remove some unused variable warnings from JITOpcodes |
|
3393 https://bugs.webkit.org/show_bug.cgi?id=40298 |
|
3394 |
|
3395 * jit/JITOpcodes.cpp: |
|
3396 (JSC::JIT::privateCompileCTINativeCall): |
|
3397 * jit/JITOpcodes32_64.cpp: |
|
3398 (JSC::JIT::privateCompileCTINativeCall): |
|
3399 |
|
3400 2010-05-18 Yuzo Fujishima <yuzo@google.com> |
|
3401 |
|
3402 Reviewed by Shinichiro Hamaji. |
|
3403 |
|
3404 Fix for Bug 34529 - [CSSOM] issues with cssText and selectorText |
|
3405 Add U16_LENGTH that is needed to implement CSS character serialization. |
|
3406 https://bugs.webkit.org/show_bug.cgi?id=34529 |
|
3407 |
|
3408 * wtf/unicode/qt4/UnicodeQt4.h: |
|
3409 * wtf/unicode/wince/UnicodeWince.h: |
|
3410 |
|
3411 2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com> |
|
3412 |
|
3413 Unreviewed, rolling out r60830. |
|
3414 http://trac.webkit.org/changeset/60830 |
|
3415 https://bugs.webkit.org/show_bug.cgi?id=40305 |
|
3416 |
|
3417 Broke the Windows build (Requested by abarth on #webkit). |
|
3418 |
|
3419 * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
|
3420 * wtf/OwnPtrCommon.h: |
|
3421 * wtf/brew/OwnPtrBrew.h: Removed. |
|
3422 * wtf/win/OwnPtrWin.h: Removed. |
|
3423 |
|
3424 2010-06-08 MORITA Hajime <morrita@google.com> |
|
3425 |
|
3426 Unreviewed. An attempt to fix test break. |
|
3427 |
|
3428 * Configurations/FeatureDefines.xcconfig: |
|
3429 |
|
3430 2010-06-08 Kwang Yul Seo <skyul@company100.net> |
|
3431 |
|
3432 Reviewed by Adam Barth. |
|
3433 |
|
3434 Change OwnPtrCommon to include platform-specific headers |
|
3435 https://bugs.webkit.org/show_bug.cgi?id=40279 |
|
3436 |
|
3437 Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds. |
|
3438 Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds. |
|
3439 |
|
3440 * JavaScriptCore.vcproj/WTF/WTF.vcproj: |
|
3441 * wtf/OwnPtrCommon.h: |
|
3442 * wtf/brew/OwnPtrBrew.h: Added. |
|
3443 * wtf/win/OwnPtrWin.h: Added. |
|
3444 |
|
3445 2010-06-07 MORITA Hajime <morrita@google.com> |
|
3446 |
|
3447 Reviewed by Kent Tamura. |
|
3448 |
|
3449 https://bugs.webkit.org/show_bug.cgi?id=40219 |
|
3450 [Mac] ENABLE_METER_TAG should be enabled |
|
3451 |
|
3452 Added ENABLE_METER_TAG. |
|
3453 |
|
3454 * Configurations/FeatureDefines.xcconfig: |
|
3455 |
|
3456 2010-06-07 Kwang Yul Seo <skyul@company100.net> |
|
3457 |
|
3458 Reviewed by Eric Seidel. |
|
3459 |
|
3460 [BREWMP] Add more types to OwnPtr |
|
3461 https://bugs.webkit.org/show_bug.cgi?id=39667 |
|
3462 |
|
3463 Add ISSL and ISocket to the list of OwnPtr-ed type. |
|
3464 |
|
3465 * wtf/OwnPtrCommon.h: |
|
3466 * wtf/brew/OwnPtrBrew.cpp: |
|
3467 (WTF::deleteOwnedPtr): |
|
3468 |
|
3469 2010-06-07 Benjamin Poulain <benjamin.poulain@nokia.com> |
|
3470 |
|
3471 Reviewed by Simon Hausmann. |
|
3472 |
|
3473 [Qt] Crash when compiling on Snow Leopard and running on Leopard |
|
3474 https://bugs.webkit.org/show_bug.cgi?id=31403 |
|
3475 |
|
3476 Disable the use of pthread_setname_np and other symbols |
|
3477 when targetting Leopard. |
|
3478 |
|
3479 Use the defines TARGETING_XX instead of BUILDING_ON_XX |
|
3480 for features that cannot be used before Snow Leopard. |
|
3481 |
|
3482 * wtf/Platform.h: |
|
3483 |
|
3484 2010-06-07 Gabor Loki <loki@webkit.org> |
|
3485 |
|
3486 Reviewed by NOBODY (JSVALUE32_64 build fix). |
|
3487 |
|
3488 * jit/JITOpcodes32_64.cpp: |
|
3489 (JSC::JIT::privateCompileCTINativeCall): |
|
3490 |
|
3491 2010-06-06 Gavin Barraclough <barraclough@apple.com> |
|
3492 |
|
3493 Reviewed by NOBODY (windows build fix pt 2). |
|
3494 |
|
3495 * JavaScriptCore.exp: |
|
3496 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
3497 |
|
3498 2010-06-06 Gavin Barraclough <barraclough@apple.com> |
|
3499 |
|
3500 Reviewed by NOBODY (windows build fix pt 1). |
|
3501 |
|
3502 * JavaScriptCore.exp: |
|
3503 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
3504 |
|
3505 2010-06-06 Gavin Barraclough <barraclough@apple.com> |
|
3506 |
|
3507 Reviewed by Sam Weinig. |
|
3508 |
|
3509 Bug 40214 - Clean up error construction / throwing in JSC. |
|
3510 |
|
3511 The one egregious insanity here is that creating an error requires |
|
3512 a VM-entry-esqe-host call (the string argument is wrapped as a JS |
|
3513 object & pushed on the RegisterFile, then unwrapped back to a |
|
3514 UString). Changing this also means you only require a global |
|
3515 object, not an ExecState, to create an error. |
|
3516 |
|
3517 The methods to create error objects are also parameterized |
|
3518 requiring a switch on the type, which can be made cleaner and |
|
3519 faster by moving to a separate method per error type. Code to add |
|
3520 divot information to error had been duplicated, and is coalesced |
|
3521 back into a single function. |
|
3522 |
|
3523 Convenience methods added to create & throw type & syntax error |
|
3524 with a default error message, since this is a common case. |
|
3525 |
|
3526 Also, errors are currently thrown either using |
|
3527 "throwError(exec, error)" or "exec->setException(error)" - unify |
|
3528 on the former, since this is more commonly used. Add |
|
3529 "throwVMError(exec, error)" equivalents, as a convenience for |
|
3530 cases where the result was being wrapped in "JSValue::encode(...)". |
|
3531 |
|
3532 * API/JSCallbackConstructor.cpp: |
|
3533 (JSC::constructJSCallback): |
|
3534 * API/JSCallbackFunction.cpp: |
|
3535 (JSC::JSCallbackFunction::call): |
|
3536 * API/JSCallbackObjectFunctions.h: |
|
3537 (JSC::::getOwnPropertySlot): |
|
3538 (JSC::::put): |
|
3539 (JSC::::deleteProperty): |
|
3540 (JSC::::construct): |
|
3541 (JSC::::hasInstance): |
|
3542 (JSC::::call): |
|
3543 (JSC::::toNumber): |
|
3544 (JSC::::toString): |
|
3545 (JSC::::staticValueGetter): |
|
3546 (JSC::::staticFunctionGetter): |
|
3547 (JSC::::callbackGetter): |
|
3548 * API/JSObjectRef.cpp: |
|
3549 (JSObjectMakeError): |
|
3550 * JavaScriptCore.exp: |
|
3551 * bytecompiler/BytecodeGenerator.cpp: |
|
3552 (JSC::BytecodeGenerator::emitNewError): |
|
3553 (JSC::BytecodeGenerator::emitThrowExpressionTooDeepException): |
|
3554 * bytecompiler/BytecodeGenerator.h: |
|
3555 * bytecompiler/NodesCodegen.cpp: |
|
3556 (JSC::ThrowableExpressionData::emitThrowError): |
|
3557 (JSC::RegExpNode::emitBytecode): |
|
3558 (JSC::PostfixErrorNode::emitBytecode): |
|
3559 (JSC::PrefixErrorNode::emitBytecode): |
|
3560 (JSC::AssignErrorNode::emitBytecode): |
|
3561 (JSC::ForInNode::emitBytecode): |
|
3562 (JSC::ContinueNode::emitBytecode): |
|
3563 (JSC::BreakNode::emitBytecode): |
|
3564 (JSC::ReturnNode::emitBytecode): |
|
3565 (JSC::LabelNode::emitBytecode): |
|
3566 * interpreter/CallFrame.h: |
|
3567 * interpreter/Interpreter.cpp: |
|
3568 (JSC::Interpreter::throwException): |
|
3569 (JSC::Interpreter::privateExecute): |
|
3570 * jit/JITStubs.cpp: |
|
3571 (JSC::DEFINE_STUB_FUNCTION): |
|
3572 * jsc.cpp: |
|
3573 (functionRun): |
|
3574 (functionLoad): |
|
3575 (functionCheckSyntax): |
|
3576 * parser/Nodes.h: |
|
3577 * runtime/ArrayConstructor.cpp: |
|
3578 (JSC::constructArrayWithSizeQuirk): |
|
3579 * runtime/ArrayPrototype.cpp: |
|
3580 (JSC::arrayProtoFuncToString): |
|
3581 (JSC::arrayProtoFuncToLocaleString): |
|
3582 (JSC::arrayProtoFuncJoin): |
|
3583 (JSC::arrayProtoFuncFilter): |
|
3584 (JSC::arrayProtoFuncMap): |
|
3585 (JSC::arrayProtoFuncEvery): |
|
3586 (JSC::arrayProtoFuncForEach): |
|
3587 (JSC::arrayProtoFuncSome): |
|
3588 (JSC::arrayProtoFuncReduce): |
|
3589 (JSC::arrayProtoFuncReduceRight): |
|
3590 * runtime/BooleanPrototype.cpp: |
|
3591 (JSC::booleanProtoFuncToString): |
|
3592 (JSC::booleanProtoFuncValueOf): |
|
3593 * runtime/DatePrototype.cpp: |
|
3594 (JSC::dateProtoFuncToString): |
|
3595 (JSC::dateProtoFuncToUTCString): |
|
3596 (JSC::dateProtoFuncToISOString): |
|
3597 (JSC::dateProtoFuncToDateString): |
|
3598 (JSC::dateProtoFuncToTimeString): |
|
3599 (JSC::dateProtoFuncToLocaleString): |
|
3600 (JSC::dateProtoFuncToLocaleDateString): |
|
3601 (JSC::dateProtoFuncToLocaleTimeString): |
|
3602 (JSC::dateProtoFuncGetTime): |
|
3603 (JSC::dateProtoFuncGetFullYear): |
|
3604 (JSC::dateProtoFuncGetUTCFullYear): |
|
3605 (JSC::dateProtoFuncToGMTString): |
|
3606 (JSC::dateProtoFuncGetMonth): |
|
3607 (JSC::dateProtoFuncGetUTCMonth): |
|
3608 (JSC::dateProtoFuncGetDate): |
|
3609 (JSC::dateProtoFuncGetUTCDate): |
|
3610 (JSC::dateProtoFuncGetDay): |
|
3611 (JSC::dateProtoFuncGetUTCDay): |
|
3612 (JSC::dateProtoFuncGetHours): |
|
3613 (JSC::dateProtoFuncGetUTCHours): |
|
3614 (JSC::dateProtoFuncGetMinutes): |
|
3615 (JSC::dateProtoFuncGetUTCMinutes): |
|
3616 (JSC::dateProtoFuncGetSeconds): |
|
3617 (JSC::dateProtoFuncGetUTCSeconds): |
|
3618 (JSC::dateProtoFuncGetMilliSeconds): |
|
3619 (JSC::dateProtoFuncGetUTCMilliseconds): |
|
3620 (JSC::dateProtoFuncGetTimezoneOffset): |
|
3621 (JSC::dateProtoFuncSetTime): |
|
3622 (JSC::setNewValueFromTimeArgs): |
|
3623 (JSC::setNewValueFromDateArgs): |
|
3624 (JSC::dateProtoFuncSetMilliSeconds): |
|
3625 (JSC::dateProtoFuncSetUTCMilliseconds): |
|
3626 (JSC::dateProtoFuncSetSeconds): |
|
3627 (JSC::dateProtoFuncSetUTCSeconds): |
|
3628 (JSC::dateProtoFuncSetMinutes): |
|
3629 (JSC::dateProtoFuncSetUTCMinutes): |
|
3630 (JSC::dateProtoFuncSetHours): |
|
3631 (JSC::dateProtoFuncSetUTCHours): |
|
3632 (JSC::dateProtoFuncSetDate): |
|
3633 (JSC::dateProtoFuncSetUTCDate): |
|
3634 (JSC::dateProtoFuncSetMonth): |
|
3635 (JSC::dateProtoFuncSetUTCMonth): |
|
3636 (JSC::dateProtoFuncSetFullYear): |
|
3637 (JSC::dateProtoFuncSetUTCFullYear): |
|
3638 (JSC::dateProtoFuncSetYear): |
|
3639 (JSC::dateProtoFuncGetYear): |
|
3640 (JSC::dateProtoFuncToJSON): |
|
3641 * runtime/Error.cpp: |
|
3642 (JSC::createError): |
|
3643 (JSC::createEvalError): |
|
3644 (JSC::createRangeError): |
|
3645 (JSC::createReferenceError): |
|
3646 (JSC::createSyntaxError): |
|
3647 (JSC::createTypeError): |
|
3648 (JSC::createURIError): |
|
3649 (JSC::addErrorSourceInfo): |
|
3650 (JSC::addErrorDivotInfo): |
|
3651 (JSC::addErrorInfo): |
|
3652 (JSC::hasErrorInfo): |
|
3653 (JSC::throwError): |
|
3654 (JSC::throwTypeError): |
|
3655 (JSC::throwSyntaxError): |
|
3656 * runtime/Error.h: |
|
3657 (JSC::throwVMError): |
|
3658 (JSC::throwVMTypeError): |
|
3659 * runtime/ErrorConstructor.cpp: |
|
3660 (JSC::constructWithErrorConstructor): |
|
3661 (JSC::callErrorConstructor): |
|
3662 * runtime/ErrorConstructor.h: |
|
3663 * runtime/ErrorInstance.cpp: |
|
3664 (JSC::ErrorInstance::ErrorInstance): |
|
3665 (JSC::ErrorInstance::create): |
|
3666 * runtime/ErrorInstance.h: |
|
3667 * runtime/ErrorPrototype.cpp: |
|
3668 (JSC::ErrorPrototype::ErrorPrototype): |
|
3669 * runtime/ExceptionHelpers.cpp: |
|
3670 (JSC::createStackOverflowError): |
|
3671 (JSC::createUndefinedVariableError): |
|
3672 (JSC::createInvalidParamError): |
|
3673 (JSC::createNotAConstructorError): |
|
3674 (JSC::createNotAFunctionError): |
|
3675 (JSC::createNotAnObjectError): |
|
3676 (JSC::throwOutOfMemoryError): |
|
3677 * runtime/ExceptionHelpers.h: |
|
3678 * runtime/Executable.cpp: |
|
3679 (JSC::EvalExecutable::compile): |
|
3680 (JSC::ProgramExecutable::checkSyntax): |
|
3681 (JSC::ProgramExecutable::compile): |
|
3682 * runtime/FunctionConstructor.cpp: |
|
3683 (JSC::constructFunction): |
|
3684 * runtime/FunctionPrototype.cpp: |
|
3685 (JSC::functionProtoFuncToString): |
|
3686 (JSC::functionProtoFuncApply): |
|
3687 (JSC::functionProtoFuncCall): |
|
3688 * runtime/Identifier.cpp: |
|
3689 (JSC::Identifier::from): |
|
3690 * runtime/Identifier.h: |
|
3691 * runtime/JSArray.cpp: |
|
3692 (JSC::JSArray::put): |
|
3693 * runtime/JSFunction.cpp: |
|
3694 (JSC::callHostFunctionAsConstructor): |
|
3695 * runtime/JSGlobalObjectFunctions.cpp: |
|
3696 (JSC::encode): |
|
3697 (JSC::decode): |
|
3698 (JSC::globalFuncEval): |
|
3699 * runtime/JSONObject.cpp: |
|
3700 (JSC::Stringifier::appendStringifiedValue): |
|
3701 (JSC::Walker::walk): |
|
3702 (JSC::JSONProtoFuncParse): |
|
3703 (JSC::JSONProtoFuncStringify): |
|
3704 * runtime/JSObject.cpp: |
|
3705 (JSC::throwSetterError): |
|
3706 (JSC::JSObject::put): |
|
3707 (JSC::JSObject::putWithAttributes): |
|
3708 (JSC::JSObject::defaultValue): |
|
3709 (JSC::JSObject::hasInstance): |
|
3710 (JSC::JSObject::defineOwnProperty): |
|
3711 * runtime/JSObject.h: |
|
3712 * runtime/JSValue.cpp: |
|
3713 (JSC::JSValue::toObjectSlowCase): |
|
3714 (JSC::JSValue::synthesizeObject): |
|
3715 (JSC::JSValue::synthesizePrototype): |
|
3716 * runtime/NativeErrorConstructor.cpp: |
|
3717 (JSC::constructWithNativeErrorConstructor): |
|
3718 (JSC::callNativeErrorConstructor): |
|
3719 * runtime/NativeErrorConstructor.h: |
|
3720 * runtime/NumberPrototype.cpp: |
|
3721 (JSC::numberProtoFuncToString): |
|
3722 (JSC::numberProtoFuncToLocaleString): |
|
3723 (JSC::numberProtoFuncValueOf): |
|
3724 (JSC::numberProtoFuncToFixed): |
|
3725 (JSC::numberProtoFuncToExponential): |
|
3726 (JSC::numberProtoFuncToPrecision): |
|
3727 * runtime/ObjectConstructor.cpp: |
|
3728 (JSC::objectConstructorGetPrototypeOf): |
|
3729 (JSC::objectConstructorGetOwnPropertyDescriptor): |
|
3730 (JSC::objectConstructorGetOwnPropertyNames): |
|
3731 (JSC::objectConstructorKeys): |
|
3732 (JSC::toPropertyDescriptor): |
|
3733 (JSC::objectConstructorDefineProperty): |
|
3734 (JSC::objectConstructorDefineProperties): |
|
3735 (JSC::objectConstructorCreate): |
|
3736 * runtime/ObjectPrototype.cpp: |
|
3737 (JSC::objectProtoFuncDefineGetter): |
|
3738 (JSC::objectProtoFuncDefineSetter): |
|
3739 * runtime/RegExpConstructor.cpp: |
|
3740 (JSC::constructRegExp): |
|
3741 * runtime/RegExpObject.cpp: |
|
3742 (JSC::RegExpObject::match): |
|
3743 * runtime/RegExpPrototype.cpp: |
|
3744 (JSC::regExpProtoFuncTest): |
|
3745 (JSC::regExpProtoFuncExec): |
|
3746 (JSC::regExpProtoFuncCompile): |
|
3747 (JSC::regExpProtoFuncToString): |
|
3748 * runtime/StringPrototype.cpp: |
|
3749 (JSC::stringProtoFuncToString): |
|
3750 |
|
3751 2010-06-05 Kwang Yul Seo <skyul@company100.net> |
|
3752 |
|
3753 Reviewed by Eric Seidel. |
|
3754 |
|
3755 [BREWMP] Add PLATFORM(BREWMP) guard for using std::xxx |
|
3756 https://bugs.webkit.org/show_bug.cgi?id=39710 |
|
3757 |
|
3758 Build fix for BREW MP. |
|
3759 |
|
3760 * wtf/MathExtras.h: |
|
3761 |
|
3762 2010-06-04 Adam Barth <abarth@webkit.org> |
|
3763 |
|
3764 Reviewed by Darin Adler. |
|
3765 |
|
3766 HTML5 parser should be within 1% of old parser performance |
|
3767 https://bugs.webkit.org/show_bug.cgi?id=40172 |
|
3768 |
|
3769 Fix cast in this operator= to allow for assignment between vectors with |
|
3770 different inline capacities (as clearly intended by its author). |
|
3771 |
|
3772 * wtf/Vector.h: |
|
3773 (WTF::::operator): |
|
3774 |
|
3775 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
3776 |
|
3777 Reviewed by Kenneth Rohde Christiansen. |
|
3778 |
|
3779 New QtScript API; QScriptValue::instanceOf. |
|
3780 |
|
3781 New function create an easy way to check value's prototype hierarchy. |
|
3782 |
|
3783 [Qt] QScriptValue should have an instanceOf method |
|
3784 https://bugs.webkit.org/show_bug.cgi?id=40120 |
|
3785 |
|
3786 * qt/api/qscriptvalue.cpp: |
|
3787 (QScriptValue::instanceOf): |
|
3788 * qt/api/qscriptvalue.h: |
|
3789 * qt/api/qscriptvalue_p.h: |
|
3790 (QScriptValuePrivate::instanceOf): |
|
3791 * qt/tests/qscriptvalue/tst_qscriptvalue.h: |
|
3792 * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: |
|
3793 (tst_QScriptValue::instanceOf_initData): |
|
3794 (tst_QScriptValue::instanceOf_makeData): |
|
3795 (tst_QScriptValue::instanceOf_test): |
|
3796 |
|
3797 2010-06-04 Gavin Barraclough <barraclough@apple.com> |
|
3798 |
|
3799 Reviewed by NOBODY (interpreter build fix). |
|
3800 |
|
3801 * interpreter/Interpreter.cpp: |
|
3802 (JSC::Interpreter::privateExecute): |
|
3803 |
|
3804 2010-06-04 Mark Rowe <mrowe@apple.com> |
|
3805 |
|
3806 Silence some warnings seen on the build bot. |
|
3807 |
|
3808 * JavaScriptCore.JSVALUE32_64only.exp: Add a trailing newline. |
|
3809 * JavaScriptCore.JSVALUE32only.exp: Ditto. |
|
3810 * JavaScriptCore.JSVALUE64only.exp: Ditto. |
|
3811 * JavaScriptCore.xcodeproj/project.pbxproj: Remove the .exp files from all targets so that Xcode doesn't |
|
3812 complain about not knowing how to compile them. |
|
3813 |
|
3814 2010-06-04 Gavin Barraclough <barraclough@apple.com> |
|
3815 |
|
3816 Reviewed by Oliver Hunt. |
|
3817 |
|
3818 Bug 40187 - Change function signature of NativeConstructor to match NativeFunction |
|
3819 |
|
3820 Mostly for consistency, but constructor & args arguments are redundant, |
|
3821 and this will help if we wish to be able to JIT calls to more constructors. |
|
3822 |
|
3823 * API/JSCallbackConstructor.cpp: |
|
3824 (JSC::constructJSCallback): |
|
3825 * API/JSCallbackObject.h: |
|
3826 * API/JSCallbackObjectFunctions.h: |
|
3827 (JSC::::construct): |
|
3828 * interpreter/Interpreter.cpp: |
|
3829 (JSC::Interpreter::executeConstruct): |
|
3830 * interpreter/Interpreter.h: |
|
3831 * jit/JITStubs.cpp: |
|
3832 (JSC::DEFINE_STUB_FUNCTION): |
|
3833 * runtime/ArrayConstructor.cpp: |
|
3834 (JSC::constructWithArrayConstructor): |
|
3835 * runtime/BooleanConstructor.cpp: |
|
3836 (JSC::constructWithBooleanConstructor): |
|
3837 * runtime/ConstructData.cpp: |
|
3838 (JSC::construct): |
|
3839 * runtime/ConstructData.h: |
|
3840 * runtime/DateConstructor.cpp: |
|
3841 (JSC::constructWithDateConstructor): |
|
3842 * runtime/Error.cpp: |
|
3843 (JSC::constructNativeError): |
|
3844 (JSC::Error::create): |
|
3845 * runtime/ErrorConstructor.cpp: |
|
3846 (JSC::constructWithErrorConstructor): |
|
3847 * runtime/FunctionConstructor.cpp: |
|
3848 (JSC::constructWithFunctionConstructor): |
|
3849 * runtime/NativeErrorConstructor.cpp: |
|
3850 (JSC::constructWithNativeErrorConstructor): |
|
3851 * runtime/NativeErrorConstructor.h: |
|
3852 (JSC::NativeErrorConstructor::errorStructure): |
|
3853 * runtime/NumberConstructor.cpp: |
|
3854 (JSC::constructWithNumberConstructor): |
|
3855 * runtime/ObjectConstructor.cpp: |
|
3856 (JSC::constructWithObjectConstructor): |
|
3857 * runtime/RegExpConstructor.cpp: |
|
3858 (JSC::constructWithRegExpConstructor): |
|
3859 * runtime/StringConstructor.cpp: |
|
3860 (JSC::constructWithStringConstructor): |
|
3861 |
|
3862 2010-06-04 Tony Gentilcore <tonyg@chromium.org> |
|
3863 |
|
3864 Reviewed by Adam Barth. |
|
3865 |
|
3866 Add a takeFirst() method to Deque and use it where appropriate. |
|
3867 https://bugs.webkit.org/show_bug.cgi?id=40089 |
|
3868 |
|
3869 * wtf/Deque.h: |
|
3870 (WTF::::takeFirst): |
|
3871 * wtf/MainThread.cpp: |
|
3872 (WTF::dispatchFunctionsFromMainThread): |
|
3873 * wtf/MessageQueue.h: |
|
3874 (WTF::::tryGetMessage): |
|
3875 |
|
3876 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
3877 |
|
3878 Reviewed by Kenneth Rohde Christiansen. |
|
3879 |
|
3880 Remove a QEXPECT_FAIL flag from an autotest. |
|
3881 |
|
3882 Test tst_QScriptEngine::globalObject pass after 36600 bug |
|
3883 fix have been applied. |
|
3884 |
|
3885 [Qt] Expected fail in the tst_QScriptEngine::globalObject should be removed. |
|
3886 https://bugs.webkit.org/show_bug.cgi?id=40114 |
|
3887 |
|
3888 * qt/tests/qscriptengine/tst_qscriptengine.cpp: |
|
3889 (tst_QScriptEngine::globalObject): |
|
3890 |
|
3891 2010-06-04 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
3892 |
|
3893 Reviewed by Kenneth Rohde Christiansen. |
|
3894 |
|
3895 Fix QScriptValue::equals. |
|
3896 |
|
3897 Handling for a few edge cases were added. Now comparison between |
|
3898 NaN, an invalid objects should works as supposed. |
|
3899 |
|
3900 [Qt] QScriptValue::equals problems |
|
3901 https://bugs.webkit.org/show_bug.cgi?id=40110 |
|
3902 |
|
3903 * qt/api/qscriptvalue.cpp: |
|
3904 (QScriptValue::equals): |
|
3905 * qt/api/qscriptvalue_p.h: |
|
3906 (QScriptValuePrivate::equals): |
|
3907 * qt/tests/qscriptvalue/tst_qscriptvalue.h: |
|
3908 * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: |
|
3909 (tst_QScriptValue::equals_initData): |
|
3910 (tst_QScriptValue::equals_makeData): |
|
3911 (tst_QScriptValue::equals_test): |
|
3912 |
|
3913 2010-06-03 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
3914 |
|
3915 Reviewed by Kenneth Rohde Christiansen. |
|
3916 |
|
3917 New states in QScriptValuePrivate. |
|
3918 |
|
3919 The CSpecial state was divided into CNull and CUndefined. It simplify |
|
3920 the QScriptValue code by avoiding a few "cast" and "if". |
|
3921 Moreover the MSVS compiler didn't like casting between a double and an |
|
3922 enum which is avoided now. |
|
3923 |
|
3924 [Qt] The QScriptValuePrivate::CSpecial is too generic. |
|
3925 https://bugs.webkit.org/show_bug.cgi?id=40067 |
|
3926 |
|
3927 * qt/api/qscriptvalue_p.h: |
|
3928 (QScriptValuePrivate::): |
|
3929 (QScriptValuePrivate::QScriptValuePrivate): |
|
3930 (QScriptValuePrivate::isNull): |
|
3931 (QScriptValuePrivate::isUndefined): |
|
3932 (QScriptValuePrivate::toString): |
|
3933 (QScriptValuePrivate::toNumber): |
|
3934 (QScriptValuePrivate::toBool): |
|
3935 (QScriptValuePrivate::toObject): |
|
3936 (QScriptValuePrivate::assignEngine): |
|
3937 (QScriptValuePrivate::isNumberBased): |
|
3938 |
|
3939 2010-06-03 Gavin Barraclough <barraclough@apple.com> |
|
3940 |
|
3941 Reviewed by NOBODY (Qt build fix). |
|
3942 |
|
3943 * wtf/Platform.h: |
|
3944 |
|
3945 2010-06-03 Gavin Barraclough <barraclough@apple.com> |
|
3946 |
|
3947 Reviewed by Mark Rowe. |
|
3948 |
|
3949 Bug 40150 - ENABLE_JIT_OPTIMIZE_NATIVE_CALL on all x86/x86_64 platforms |
|
3950 This was fixed in bug #40094. |
|
3951 |
|
3952 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
3953 * wtf/Platform.h: |
|
3954 |
|
3955 2010-06-03 Gavin Barraclough <barraclough@apple.com> |
|
3956 |
|
3957 Reviewed by NOBODY (Interpreter build fix). |
|
3958 |
|
3959 * JavaScriptCore.JSVALUE32_64only.exp: |
|
3960 * JavaScriptCore.JSVALUE32only.exp: |
|
3961 * JavaScriptCore.JSVALUE64only.exp: |
|
3962 * interpreter/Interpreter.cpp: |
|
3963 (JSC::Interpreter::privateExecute): |
|
3964 |
|
3965 2010-06-03 Gavin Barraclough <barraclough@apple.com> |
|
3966 |
|
3967 Reviewed by NOBODY (windows build fix II). |
|
3968 |
|
3969 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
3970 |
|
3971 2010-06-03 Gavin Barraclough <barraclough@apple.com> |
|
3972 |
|
3973 Reviewed by NOBODY (windows build fix). |
|
3974 |
|
3975 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
3976 |
|
3977 2010-06-02 Gavin Barraclough <barraclough@apple.com> |
|
3978 |
|
3979 Reviewed by Oliver Hunt. |
|
3980 |
|
3981 Bug 40094 - The return type of NativeFunction should be EncodedJSValue |
|
3982 On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not. |
|
3983 |
|
3984 * API/JSCallbackFunction.cpp: |
|
3985 (JSC::JSCallbackFunction::call): |
|
3986 * API/JSCallbackFunction.h: |
|
3987 * API/JSCallbackObject.h: |
|
3988 * API/JSCallbackObjectFunctions.h: |
|
3989 (JSC::::call): |
|
3990 * JavaScriptCore.exp: |
|
3991 * interpreter/Interpreter.cpp: |
|
3992 (JSC::Interpreter::executeCall): |
|
3993 * jit/JITStubs.cpp: |
|
3994 (JSC::DEFINE_STUB_FUNCTION): |
|
3995 * jit/JITStubs.h: |
|
3996 * jsc.cpp: |
|
3997 (functionPrint): |
|
3998 (functionDebug): |
|
3999 (functionGC): |
|
4000 (functionVersion): |
|
4001 (functionRun): |
|
4002 (functionLoad): |
|
4003 (functionCheckSyntax): |
|
4004 (functionSetSamplingFlags): |
|
4005 (functionClearSamplingFlags): |
|
4006 (functionReadline): |
|
4007 (functionQuit): |
|
4008 * runtime/ArrayConstructor.cpp: |
|
4009 (JSC::callArrayConstructor): |
|
4010 (JSC::arrayConstructorIsArray): |
|
4011 * runtime/ArrayPrototype.cpp: |
|
4012 (JSC::arrayProtoFuncToString): |
|
4013 (JSC::arrayProtoFuncToLocaleString): |
|
4014 (JSC::arrayProtoFuncJoin): |
|
4015 (JSC::arrayProtoFuncConcat): |
|
4016 (JSC::arrayProtoFuncPop): |
|
4017 (JSC::arrayProtoFuncPush): |
|
4018 (JSC::arrayProtoFuncReverse): |
|
4019 (JSC::arrayProtoFuncShift): |
|
4020 (JSC::arrayProtoFuncSlice): |
|
4021 (JSC::arrayProtoFuncSort): |
|
4022 (JSC::arrayProtoFuncSplice): |
|
4023 (JSC::arrayProtoFuncUnShift): |
|
4024 (JSC::arrayProtoFuncFilter): |
|
4025 (JSC::arrayProtoFuncMap): |
|
4026 (JSC::arrayProtoFuncEvery): |
|
4027 (JSC::arrayProtoFuncForEach): |
|
4028 (JSC::arrayProtoFuncSome): |
|
4029 (JSC::arrayProtoFuncReduce): |
|
4030 (JSC::arrayProtoFuncReduceRight): |
|
4031 (JSC::arrayProtoFuncIndexOf): |
|
4032 (JSC::arrayProtoFuncLastIndexOf): |
|
4033 * runtime/BooleanConstructor.cpp: |
|
4034 (JSC::callBooleanConstructor): |
|
4035 * runtime/BooleanPrototype.cpp: |
|
4036 (JSC::booleanProtoFuncToString): |
|
4037 (JSC::booleanProtoFuncValueOf): |
|
4038 * runtime/CallData.h: |
|
4039 * runtime/DateConstructor.cpp: |
|
4040 (JSC::callDate): |
|
4041 (JSC::dateParse): |
|
4042 (JSC::dateNow): |
|
4043 (JSC::dateUTC): |
|
4044 * runtime/DatePrototype.cpp: |
|
4045 (JSC::dateProtoFuncToString): |
|
4046 (JSC::dateProtoFuncToUTCString): |
|
4047 (JSC::dateProtoFuncToISOString): |
|
4048 (JSC::dateProtoFuncToDateString): |
|
4049 (JSC::dateProtoFuncToTimeString): |
|
4050 (JSC::dateProtoFuncToLocaleString): |
|
4051 (JSC::dateProtoFuncToLocaleDateString): |
|
4052 (JSC::dateProtoFuncToLocaleTimeString): |
|
4053 (JSC::dateProtoFuncGetTime): |
|
4054 (JSC::dateProtoFuncGetFullYear): |
|
4055 (JSC::dateProtoFuncGetUTCFullYear): |
|
4056 (JSC::dateProtoFuncToGMTString): |
|
4057 (JSC::dateProtoFuncGetMonth): |
|
4058 (JSC::dateProtoFuncGetUTCMonth): |
|
4059 (JSC::dateProtoFuncGetDate): |
|
4060 (JSC::dateProtoFuncGetUTCDate): |
|
4061 (JSC::dateProtoFuncGetDay): |
|
4062 (JSC::dateProtoFuncGetUTCDay): |
|
4063 (JSC::dateProtoFuncGetHours): |
|
4064 (JSC::dateProtoFuncGetUTCHours): |
|
4065 (JSC::dateProtoFuncGetMinutes): |
|
4066 (JSC::dateProtoFuncGetUTCMinutes): |
|
4067 (JSC::dateProtoFuncGetSeconds): |
|
4068 (JSC::dateProtoFuncGetUTCSeconds): |
|
4069 (JSC::dateProtoFuncGetMilliSeconds): |
|
4070 (JSC::dateProtoFuncGetUTCMilliseconds): |
|
4071 (JSC::dateProtoFuncGetTimezoneOffset): |
|
4072 (JSC::dateProtoFuncSetTime): |
|
4073 (JSC::dateProtoFuncSetMilliSeconds): |
|
4074 (JSC::dateProtoFuncSetUTCMilliseconds): |
|
4075 (JSC::dateProtoFuncSetSeconds): |
|
4076 (JSC::dateProtoFuncSetUTCSeconds): |
|
4077 (JSC::dateProtoFuncSetMinutes): |
|
4078 (JSC::dateProtoFuncSetUTCMinutes): |
|
4079 (JSC::dateProtoFuncSetHours): |
|
4080 (JSC::dateProtoFuncSetUTCHours): |
|
4081 (JSC::dateProtoFuncSetDate): |
|
4082 (JSC::dateProtoFuncSetUTCDate): |
|
4083 (JSC::dateProtoFuncSetMonth): |
|
4084 (JSC::dateProtoFuncSetUTCMonth): |
|
4085 (JSC::dateProtoFuncSetFullYear): |
|
4086 (JSC::dateProtoFuncSetUTCFullYear): |
|
4087 (JSC::dateProtoFuncSetYear): |
|
4088 (JSC::dateProtoFuncGetYear): |
|
4089 (JSC::dateProtoFuncToJSON): |
|
4090 * runtime/ErrorConstructor.cpp: |
|
4091 (JSC::callErrorConstructor): |
|
4092 * runtime/ErrorPrototype.cpp: |
|
4093 (JSC::errorProtoFuncToString): |
|
4094 * runtime/FunctionConstructor.cpp: |
|
4095 (JSC::callFunctionConstructor): |
|
4096 * runtime/FunctionPrototype.cpp: |
|
4097 (JSC::callFunctionPrototype): |
|
4098 (JSC::functionProtoFuncToString): |
|
4099 (JSC::functionProtoFuncApply): |
|
4100 (JSC::functionProtoFuncCall): |
|
4101 * runtime/JSCell.h: |
|
4102 (JSC::getCallData): |
|
4103 (JSC::getConstructData): |
|
4104 * runtime/JSFunction.cpp: |
|
4105 (JSC::callHostFunctionAsConstructor): |
|
4106 * runtime/JSFunction.h: |
|
4107 * runtime/JSGlobalObjectFunctions.cpp: |
|
4108 (JSC::globalFuncEval): |
|
4109 (JSC::globalFuncParseInt): |
|
4110 (JSC::globalFuncParseFloat): |
|
4111 (JSC::globalFuncIsNaN): |
|
4112 (JSC::globalFuncIsFinite): |
|
4113 (JSC::globalFuncDecodeURI): |
|
4114 (JSC::globalFuncDecodeURIComponent): |
|
4115 (JSC::globalFuncEncodeURI): |
|
4116 (JSC::globalFuncEncodeURIComponent): |
|
4117 (JSC::globalFuncEscape): |
|
4118 (JSC::globalFuncUnescape): |
|
4119 (JSC::globalFuncJSCPrint): |
|
4120 * runtime/JSGlobalObjectFunctions.h: |
|
4121 * runtime/JSONObject.cpp: |
|
4122 (JSC::JSONProtoFuncParse): |
|
4123 (JSC::JSONProtoFuncStringify): |
|
4124 * runtime/JSObject.cpp: |
|
4125 (JSC::callDefaultValueFunction): |
|
4126 * runtime/JSValue.h: |
|
4127 * runtime/MathObject.cpp: |
|
4128 (JSC::mathProtoFuncAbs): |
|
4129 (JSC::mathProtoFuncACos): |
|
4130 (JSC::mathProtoFuncASin): |
|
4131 (JSC::mathProtoFuncATan): |
|
4132 (JSC::mathProtoFuncATan2): |
|
4133 (JSC::mathProtoFuncCeil): |
|
4134 (JSC::mathProtoFuncCos): |
|
4135 (JSC::mathProtoFuncExp): |
|
4136 (JSC::mathProtoFuncFloor): |
|
4137 (JSC::mathProtoFuncLog): |
|
4138 (JSC::mathProtoFuncMax): |
|
4139 (JSC::mathProtoFuncMin): |
|
4140 (JSC::mathProtoFuncPow): |
|
4141 (JSC::mathProtoFuncRandom): |
|
4142 (JSC::mathProtoFuncRound): |
|
4143 (JSC::mathProtoFuncSin): |
|
4144 (JSC::mathProtoFuncSqrt): |
|
4145 (JSC::mathProtoFuncTan): |
|
4146 * runtime/NativeErrorConstructor.cpp: |
|
4147 (JSC::callNativeErrorConstructor): |
|
4148 * runtime/NumberConstructor.cpp: |
|
4149 (JSC::callNumberConstructor): |
|
4150 * runtime/NumberPrototype.cpp: |
|
4151 (JSC::numberProtoFuncToString): |
|
4152 (JSC::numberProtoFuncToLocaleString): |
|
4153 (JSC::numberProtoFuncValueOf): |
|
4154 (JSC::numberProtoFuncToFixed): |
|
4155 (JSC::numberProtoFuncToExponential): |
|
4156 (JSC::numberProtoFuncToPrecision): |
|
4157 * runtime/ObjectConstructor.cpp: |
|
4158 (JSC::callObjectConstructor): |
|
4159 (JSC::objectConstructorGetPrototypeOf): |
|
4160 (JSC::objectConstructorGetOwnPropertyDescriptor): |
|
4161 (JSC::objectConstructorGetOwnPropertyNames): |
|
4162 (JSC::objectConstructorKeys): |
|
4163 (JSC::toPropertyDescriptor): |
|
4164 (JSC::objectConstructorDefineProperty): |
|
4165 (JSC::objectConstructorDefineProperties): |
|
4166 (JSC::objectConstructorCreate): |
|
4167 * runtime/ObjectPrototype.cpp: |
|
4168 (JSC::objectProtoFuncValueOf): |
|
4169 (JSC::objectProtoFuncHasOwnProperty): |
|
4170 (JSC::objectProtoFuncIsPrototypeOf): |
|
4171 (JSC::objectProtoFuncDefineGetter): |
|
4172 (JSC::objectProtoFuncDefineSetter): |
|
4173 (JSC::objectProtoFuncLookupGetter): |
|
4174 (JSC::objectProtoFuncLookupSetter): |
|
4175 (JSC::objectProtoFuncPropertyIsEnumerable): |
|
4176 (JSC::objectProtoFuncToLocaleString): |
|
4177 (JSC::objectProtoFuncToString): |
|
4178 * runtime/ObjectPrototype.h: |
|
4179 * runtime/RegExpConstructor.cpp: |
|
4180 (JSC::callRegExpConstructor): |
|
4181 * runtime/RegExpObject.cpp: |
|
4182 (JSC::callRegExpObject): |
|
4183 * runtime/RegExpPrototype.cpp: |
|
4184 (JSC::regExpProtoFuncTest): |
|
4185 (JSC::regExpProtoFuncExec): |
|
4186 (JSC::regExpProtoFuncCompile): |
|
4187 (JSC::regExpProtoFuncToString): |
|
4188 * runtime/StringConstructor.cpp: |
|
4189 (JSC::stringFromCharCode): |
|
4190 (JSC::callStringConstructor): |
|
4191 * runtime/StringPrototype.cpp: |
|
4192 (JSC::stringProtoFuncReplace): |
|
4193 (JSC::stringProtoFuncToString): |
|
4194 (JSC::stringProtoFuncCharAt): |
|
4195 (JSC::stringProtoFuncCharCodeAt): |
|
4196 (JSC::stringProtoFuncConcat): |
|
4197 (JSC::stringProtoFuncIndexOf): |
|
4198 (JSC::stringProtoFuncLastIndexOf): |
|
4199 (JSC::stringProtoFuncMatch): |
|
4200 (JSC::stringProtoFuncSearch): |
|
4201 (JSC::stringProtoFuncSlice): |
|
4202 (JSC::stringProtoFuncSplit): |
|
4203 (JSC::stringProtoFuncSubstr): |
|
4204 (JSC::stringProtoFuncSubstring): |
|
4205 (JSC::stringProtoFuncToLowerCase): |
|
4206 (JSC::stringProtoFuncToUpperCase): |
|
4207 (JSC::stringProtoFuncLocaleCompare): |
|
4208 (JSC::stringProtoFuncBig): |
|
4209 (JSC::stringProtoFuncSmall): |
|
4210 (JSC::stringProtoFuncBlink): |
|
4211 (JSC::stringProtoFuncBold): |
|
4212 (JSC::stringProtoFuncFixed): |
|
4213 (JSC::stringProtoFuncItalics): |
|
4214 (JSC::stringProtoFuncStrike): |
|
4215 (JSC::stringProtoFuncSub): |
|
4216 (JSC::stringProtoFuncSup): |
|
4217 (JSC::stringProtoFuncFontcolor): |
|
4218 (JSC::stringProtoFuncFontsize): |
|
4219 (JSC::stringProtoFuncAnchor): |
|
4220 (JSC::stringProtoFuncLink): |
|
4221 (JSC::stringProtoFuncTrim): |
|
4222 (JSC::stringProtoFuncTrimLeft): |
|
4223 (JSC::stringProtoFuncTrimRight): |
|
4224 |
|
4225 2010-06-02 Mark Rowe <mrowe@apple.com> |
|
4226 |
|
4227 Reviewed by Gavin Barraclough. |
|
4228 |
|
4229 Add value-representation specific sections to the mac export file. |
|
4230 |
|
4231 * Configurations/JavaScriptCore.xcconfig: |
|
4232 * DerivedSources.make: |
|
4233 * JavaScriptCore.JSVALUE32_64only.exp: Added. |
|
4234 * JavaScriptCore.JSVALUE32only.exp: Added. |
|
4235 * JavaScriptCore.JSVALUE64only.exp: Added. |
|
4236 * JavaScriptCore.xcodeproj/project.pbxproj: |
|
4237 |
|
4238 2010-06-02 Mark Rowe <mrowe@apple.com> |
|
4239 |
|
4240 Reviewed by Gavin Barraclough. |
|
4241 |
|
4242 <rdar://problem/8054988> Work around an LLVM GCC code generation bug that results in crashes inside PCRE. |
|
4243 |
|
4244 * pcre/pcre_exec.cpp: |
|
4245 (repeatInformationFromInstructionOffset): Change the type of instructionOffset to int. There's no good |
|
4246 reason for it to be a short, and using int prevents this code from triggering the LLVM GCC bug. |
|
4247 |
|
4248 2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
4249 |
|
4250 Reviewed by Kenneth Rohde Christiansen. |
|
4251 |
|
4252 Fix the QScriptValue::strictlyEquals function. |
|
4253 |
|
4254 Handling for a few edge cases was added. |
|
4255 |
|
4256 New autotest that covers the QScriptValue::strictlyEquals function. |
|
4257 |
|
4258 [Qt] QScriptValue::strictlyEquals is broken |
|
4259 https://bugs.webkit.org/show_bug.cgi?id=36600 |
|
4260 |
|
4261 * qt/api/qscriptvalue.cpp: |
|
4262 (QScriptValue::strictlyEquals): |
|
4263 * qt/api/qscriptvalue_p.h: |
|
4264 (QScriptValuePrivate::strictlyEquals): |
|
4265 * qt/tests/qscriptvalue/qscriptvalue.pro: |
|
4266 * qt/tests/qscriptvalue/tst_qscriptvalue.h: |
|
4267 * qt/tests/qscriptvalue/tst_qscriptvalue_generated_comparison.cpp: Added. |
|
4268 (tst_QScriptValue::strictlyEquals_initData): |
|
4269 (tst_QScriptValue::strictlyEquals_makeData): |
|
4270 (tst_QScriptValue::strictlyEquals_test): |
|
4271 |
|
4272 2010-06-02 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
4273 |
|
4274 Reviewed by Kenneth Rohde Christiansen. |
|
4275 |
|
4276 New function QScriptEngine::newObject. |
|
4277 |
|
4278 The function creates a object of class Object and returns it |
|
4279 as a QScriptValue. |
|
4280 |
|
4281 [Qt] QScriptEngine API should contain a newObject function |
|
4282 https://bugs.webkit.org/show_bug.cgi?id=39114 |
|
4283 |
|
4284 * qt/api/qscriptengine.cpp: |
|
4285 (QScriptEngine::newObject): |
|
4286 * qt/api/qscriptengine.h: |
|
4287 * qt/api/qscriptengine_p.cpp: |
|
4288 (QScriptEnginePrivate::newObject): |
|
4289 * qt/api/qscriptengine_p.h: |
|
4290 * qt/tests/qscriptengine/tst_qscriptengine.cpp: |
|
4291 (tst_QScriptEngine::newObject): |
|
4292 |
|
4293 2010-06-02 Gabor Loki <loki@webkit.org> |
|
4294 |
|
4295 Reviewed by Gavin Barraclough. |
|
4296 https://bugs.webkit.org/show_bug.cgi?id=40011 |
|
4297 |
|
4298 Thumb-2 build fix: The offset parameter of ldrh should be encoded as an |
|
4299 imm12 immediate constant in load16. If it is not fit in the instruction |
|
4300 a temporary register has to be used. |
|
4301 |
|
4302 * assembler/MacroAssemblerARMv7.h: |
|
4303 (JSC::MacroAssemblerARMv7::load16): |
|
4304 |
|
4305 2010-06-02 Sterling Swigart <sswigart@google.com> |
|
4306 |
|
4307 Reviewed by David Levin. |
|
4308 |
|
4309 Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches. |
|
4310 https://bugs.webkit.org/show_bug.cgi?id=39906 |
|
4311 |
|
4312 * Configurations/FeatureDefines.xcconfig: |
|
4313 |
|
4314 2010-06-01 Gavin Barraclough <barraclough@apple.com> |
|
4315 |
|
4316 Reviewed by Sam Weinig. |
|
4317 |
|
4318 Bug 40021 - Refactor bytecode generation for calls so that register for this & args are allocated together |
|
4319 |
|
4320 This is a useful stepping stone towards reversing argument order. |
|
4321 |
|
4322 * bytecompiler/BytecodeGenerator.cpp: |
|
4323 (JSC::BytecodeGenerator::BytecodeGenerator): |
|
4324 (JSC::BytecodeGenerator::addParameter): |
|
4325 (JSC::BytecodeGenerator::emitCall): |
|
4326 (JSC::BytecodeGenerator::emitCallEval): |
|
4327 (JSC::BytecodeGenerator::emitConstruct): |
|
4328 * bytecompiler/BytecodeGenerator.h: |
|
4329 (JSC::CallArguments::thisRegister): |
|
4330 (JSC::CallArguments::argumentRegister): |
|
4331 (JSC::CallArguments::callFrame): |
|
4332 (JSC::CallArguments::count): |
|
4333 (JSC::BytecodeGenerator::shouldEmitProfileHooks): |
|
4334 * bytecompiler/NodesCodegen.cpp: |
|
4335 (JSC::NewExprNode::emitBytecode): |
|
4336 (JSC::CallArguments::CallArguments): |
|
4337 (JSC::EvalFunctionCallNode::emitBytecode): |
|
4338 (JSC::FunctionCallValueNode::emitBytecode): |
|
4339 (JSC::FunctionCallResolveNode::emitBytecode): |
|
4340 (JSC::FunctionCallBracketNode::emitBytecode): |
|
4341 (JSC::FunctionCallDotNode::emitBytecode): |
|
4342 (JSC::CallFunctionCallDotNode::emitBytecode): |
|
4343 (JSC::ApplyFunctionCallDotNode::emitBytecode): |
|
4344 |
|
4345 2010-06-01 Yong Li <yoli@rim.com> |
|
4346 |
|
4347 Reviewed by Darin Adler. |
|
4348 |
|
4349 Explicitly use PTHREAD_MUTEX_NORMAL to create pthread mutex. |
|
4350 https://bugs.webkit.org/show_bug.cgi?id=39893 |
|
4351 |
|
4352 * wtf/ThreadingPthreads.cpp: |
|
4353 (WTF::Mutex::Mutex): |
|
4354 |
|
4355 2010-06-01 Kwang Yul Seo <skyul@company100.net> |
|
4356 |
|
4357 Reviewed by Xan Lopez. |
|
4358 |
|
4359 [GTK] Use DEFINE_STATIC_LOCAL for threadMapMutex and threadMap |
|
4360 https://bugs.webkit.org/show_bug.cgi?id=39831 |
|
4361 |
|
4362 Use DEFINE_STATIC_LOCAL for static local variables. |
|
4363 |
|
4364 * wtf/gtk/ThreadingGtk.cpp: |
|
4365 (WTF::threadMapMutex): |
|
4366 (WTF::threadMap): |
|
4367 (WTF::identifierByGthreadHandle): |
|
4368 |
|
4369 2010-06-01 Kent Tamura <tkent@chromium.org> |
|
4370 |
|
4371 Reviewed by Shinichiro Hamaji. |
|
4372 |
|
4373 Fix style errors of dtoa |
|
4374 https://bugs.webkit.org/show_bug.cgi?id=39972 |
|
4375 |
|
4376 Fix all errors reported by check-webkit-style. |
|
4377 |
|
4378 * wtf/dtoa.cpp: |
|
4379 * wtf/dtoa.h: |
|
4380 |
|
4381 2010-05-30 Darin Adler <darin@apple.com> |
|
4382 |
|
4383 Reviewed by Sam Weinig. |
|
4384 |
|
4385 * wtf/OwnArrayPtr.h: |
|
4386 (WTF::OwnArrayPtr::set): Fix the assertion in here to match the one in OwnPtr. |
|
4387 At some point someone fixed the "asserts when assigning to 0 and the pointer is |
|
4388 already 0" issue in OwnPtr but forgot to do it here. |
|
4389 |
|
4390 2010-05-29 Geoffrey Garen <ggaren@apple.com> |
|
4391 |
|
4392 Windows build fix: Updated exported symbols. |
|
4393 |
|
4394 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
4395 |
|
4396 2010-05-29 Geoffrey Garen <ggaren@apple.com> |
|
4397 |
|
4398 Disabled ENABLE_JIT_OPTIMIZE_NATIVE_CALL on Windows for now, until I |
|
4399 can figure out why it's crashing. |
|
4400 |
|
4401 * wtf/Platform.h: |
|
4402 |
|
4403 2010-05-29 Geoffrey Garen <ggaren@apple.com> |
|
4404 |
|
4405 Fixed Windows crash seen on buildbot. |
|
4406 |
|
4407 * jit/JITOpcodes32_64.cpp: |
|
4408 (JSC::JIT::privateCompileCTINativeCall): __fastcall puts the first |
|
4409 argument in ecx. |
|
4410 |
|
4411 2010-05-28 Geoffrey Garen <ggaren@apple.com> |
|
4412 |
|
4413 Windows build fix: Updated exported symbols. |
|
4414 |
|
4415 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
4416 |
|
4417 2010-05-28 Geoffrey Garen <ggaren@apple.com> |
|
4418 |
|
4419 Qt build fix: disable a little more stuff when JIT_OPTIMIZE_NATIVE_CALL |
|
4420 is disabled. |
|
4421 |
|
4422 * runtime/Lookup.cpp: |
|
4423 (JSC::setUpStaticFunctionSlot): |
|
4424 * runtime/Lookup.h: |
|
4425 * wtf/Platform.h: |
|
4426 |
|
4427 2010-05-28 Geoffrey Garen <ggaren@apple.com> |
|
4428 |
|
4429 Windows build fix: Updated exported symbols. |
|
4430 |
|
4431 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: |
|
4432 |
|
4433 2010-05-28 Geoffrey Garen <ggaren@apple.com> |
|
4434 |
|
4435 Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt. |
|
4436 |
|
4437 Simplified the host calling convention. |
|
4438 |
|
4439 22.5% speedup on 32-bit host function calls. 9.5% speedup on 64-bit host |
|
4440 function calls. |
|
4441 |
|
4442 No change on SunSpider. |
|
4443 |
|
4444 All JS calls (but not constructs, yet) now go through the normal JS |
|
4445 calling convention via the RegisterFile. As a result, the host calling |
|
4446 convention, which used to be this |
|
4447 |
|
4448 JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*, JSObject*, JSValue thisValue, const ArgList&) |
|
4449 |
|
4450 is now this |
|
4451 |
|
4452 JSValue (JSC_HOST_CALL *NativeFunction)(ExecState*) |
|
4453 |
|
4454 Callee, 'this', and argument access all hapen relative to the ExecState*, |
|
4455 which is a pointer into the RegisterFile. |
|
4456 |
|
4457 This patch comes in two parts. |
|
4458 |
|
4459 PART ONE: Functional code changes. |
|
4460 |
|
4461 * wtf/Platform.h: Disabled optimized calls on platforms I didn't test. |
|
4462 We can re-enable once we verify that host calls on these platforms are |
|
4463 correct. |
|
4464 |
|
4465 * debugger/DebuggerCallFrame.cpp: |
|
4466 (JSC::DebuggerCallFrame::functionName): |
|
4467 (JSC::DebuggerCallFrame::calculatedFunctionName): Updated for change to |
|
4468 ExecState::callee(). |
|
4469 |
|
4470 (JSC::DebuggerCallFrame::thisObject): Updated for removal of ExecState::thisValue(). |
|
4471 |
|
4472 * interpreter/CallFrame.cpp: |
|
4473 * interpreter/CallFrame.h: |
|
4474 (JSC::ExecState::callee): |
|
4475 (JSC::ExecState::scopeChain): |
|
4476 (JSC::ExecState::init): Changed callee() to be JSObject* instead of |
|
4477 JSFunction* -- now, it might be some other callable host object. |
|
4478 |
|
4479 (JSC::ExecState::hostThisRegister): |
|
4480 (JSC::ExecState::hostThisValue): |
|
4481 (JSC::ExecState::argumentCount): |
|
4482 (JSC::ExecState::argumentCountIncludingThis): |
|
4483 (JSC::ExecState::argument): |
|
4484 (JSC::ExecState::setArgumentCountIncludingThis): |
|
4485 (JSC::ExecState::setCallee): Added convenient accessors for arguments |
|
4486 from within a host function. Removed thisValue() because it was too |
|
4487 tempting to use incorrectly, and it only had one or two clients, anyway. |
|
4488 |
|
4489 * interpreter/Interpreter.cpp: |
|
4490 (JSC::Interpreter::callEval): Updated for removal of ExecState::thisValue(). |
|
4491 |
|
4492 (JSC::Interpreter::throwException): Be sure to shrink the register file |
|
4493 before invoking the exception handler, to reduce the chances that the |
|
4494 handler will re-throw in the case of stack overflow. (Re-throwing is now |
|
4495 more likely than it used to be, since standardizing the calling convention |
|
4496 implicitly added stack overflow checks to some places where they used to be missing.) |
|
4497 |
|
4498 (JSC::Interpreter::execute): Clarified the scope of DynamicGlobalObjectScope. |
|
4499 Updated for CallFrame::init API change. |
|
4500 |
|
4501 (JSC::Interpreter::executeCall): Clarified scope of DynamicGlobalObjectScope. |
|
4502 Updated for CallFrame::init API change. Added support for calling a host |
|
4503 function. |
|
4504 |
|
4505 (JSC::Interpreter::executeConstruct): Clarified scope of DynamicGlobalObjectScope. |
|
4506 Updated for CallFrame::init API change. |
|
4507 |
|
4508 (JSC::Interpreter::prepareForRepeatCall): Updated for CallFrame::init API change. |
|
4509 |
|
4510 (JSC::Interpreter::privateExecute): Updated for CallFrame::init API change. |
|
4511 Added some explicit JSValue(JSObject*) initialization, since relaxing |
|
4512 the JSFunction* restriction on callee has made register types more ambiguous. |
|
4513 Removed toThisObject() conversion, since all callees do it themselves now. |
|
4514 Updated host function call for new host function signature. Updated for |
|
4515 change to ExecState::argumentCount() API. |
|
4516 |
|
4517 * interpreter/Register.h: |
|
4518 (JSC::Register::): |
|
4519 (JSC::Register::operator=): |
|
4520 (JSC::Register::function): Changed callee() to be JSObject* instead of |
|
4521 JSFunction* -- now, it might be some other callable host object. |
|
4522 |
|
4523 * jit/JITOpcodes.cpp: |
|
4524 (JSC::JIT::privateCompileCTINativeCall): |
|
4525 * jit/JITOpcodes32_64.cpp: |
|
4526 (JSC::JIT::privateCompileCTINativeCall): Deleted a bunch of code that |
|
4527 set up the arguments to host functions -- all but one of the arguments |
|
4528 are gone now. This is the actual optimization. |
|
4529 |
|
4530 * jit/JITStubs.cpp: |
|
4531 (JSC::DEFINE_STUB_FUNCTION): Updated for ExecState and Register API |
|
4532 changes noted above. Removed toThisObject() conversion, since all callees |
|
4533 do it themselves now. |
|
4534 |
|
4535 * runtime/ArgList.h: |
|
4536 (JSC::ArgList::ArgList): ArgList is getting close to unused. Added a |
|
4537 temporary shim for converting from ExecState* to ArgList where it's still |
|
4538 necessary. |
|
4539 |
|
4540 * runtime/Arguments.h: |
|
4541 (JSC::Arguments::getArgumentsData): |
|
4542 (JSC::Arguments::Arguments): Updated for ExecState and Register API |
|
4543 changes noted above. |
|
4544 |
|
4545 * runtime/CallData.cpp: |
|
4546 (JSC::call): Changed call always to call Interpreter::executeCall, even |
|
4547 for host functions. This ensures that the normal calling convention is |
|
4548 set up in the RegsiterFile when calling from C++ to host function. |
|
4549 |
|
4550 * runtime/CallData.h: Changed host function signature as described above. |
|
4551 |
|
4552 * runtime/ConstructData.cpp: |
|
4553 (JSC::construct): Moved JSFunction::construct code here so I could nix |
|
4554 JSFunction::call and JSFunction::call. We want a JSFunction-agnostic |
|
4555 way to call and construct, so that everything works naturally for non- |
|
4556 JSFunction objects. |
|
4557 |
|
4558 * runtime/JSFunction.cpp: |
|
4559 (JSC::callHostFunctionAsConstructor): |
|
4560 * runtime/JSFunction.h: Updated for ExecState and Register API changes |
|
4561 noted above. Nixed JSFunction::call and JSFunction::construct, noted above. |
|
4562 |
|
4563 * runtime/JSGlobalObject.cpp: |
|
4564 (JSC::JSGlobalObject::init): Ditto. |
|
4565 |
|
4566 PART TWO: Global search and replace. |
|
4567 |
|
4568 In the areas below, I used global search-and-replace to change |
|
4569 (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*) |
|
4570 args.size() => exec->argumentCount() |
|
4571 args.at(i) => exec->argument(i) |
|
4572 |
|
4573 * API/JSCallbackFunction.cpp: |
|
4574 (JSC::JSCallbackFunction::call): |
|
4575 * API/JSCallbackFunction.h: |
|
4576 * API/JSCallbackObject.h: |
|
4577 * API/JSCallbackObjectFunctions.h: |
|
4578 (JSC::::call): |
|
4579 * JavaScriptCore.exp: |
|
4580 * jsc.cpp: |
|
4581 (functionPrint): |
|
4582 (functionDebug): |
|
4583 (functionGC): |
|
4584 (functionVersion): |
|
4585 (functionRun): |
|
4586 (functionLoad): |
|
4587 (functionCheckSyntax): |
|
4588 (functionSetSamplingFlags): |
|
4589 (functionClearSamplingFlags): |
|
4590 (functionReadline): |
|
4591 (functionQuit): |
|
4592 * runtime/ArrayConstructor.cpp: |
|
4593 (JSC::callArrayConstructor): |
|
4594 (JSC::arrayConstructorIsArray): |
|
4595 * runtime/ArrayPrototype.cpp: |
|
4596 (JSC::arrayProtoFuncToString): |
|
4597 (JSC::arrayProtoFuncToLocaleString): |
|
4598 (JSC::arrayProtoFuncJoin): |
|
4599 (JSC::arrayProtoFuncConcat): |
|
4600 (JSC::arrayProtoFuncPop): |
|
4601 (JSC::arrayProtoFuncPush): |
|
4602 (JSC::arrayProtoFuncReverse): |
|
4603 (JSC::arrayProtoFuncShift): |
|
4604 (JSC::arrayProtoFuncSlice): |
|
4605 (JSC::arrayProtoFuncSort): |
|
4606 (JSC::arrayProtoFuncSplice): |
|
4607 (JSC::arrayProtoFuncUnShift): |
|
4608 (JSC::arrayProtoFuncFilter): |
|
4609 (JSC::arrayProtoFuncMap): |
|
4610 (JSC::arrayProtoFuncEvery): |
|
4611 (JSC::arrayProtoFuncForEach): |
|
4612 (JSC::arrayProtoFuncSome): |
|
4613 (JSC::arrayProtoFuncReduce): |
|
4614 (JSC::arrayProtoFuncReduceRight): |
|
4615 (JSC::arrayProtoFuncIndexOf): |
|
4616 (JSC::arrayProtoFuncLastIndexOf): |
|
4617 * runtime/BooleanConstructor.cpp: |
|
4618 (JSC::callBooleanConstructor): |
|
4619 * runtime/BooleanPrototype.cpp: |
|
4620 (JSC::booleanProtoFuncToString): |
|
4621 (JSC::booleanProtoFuncValueOf): |
|
4622 * runtime/DateConstructor.cpp: |
|
4623 (JSC::callDate): |
|
4624 (JSC::dateParse): |
|
4625 (JSC::dateNow): |
|
4626 (JSC::dateUTC): |
|
4627 * runtime/DatePrototype.cpp: |
|
4628 (JSC::formatLocaleDate): |
|
4629 (JSC::fillStructuresUsingTimeArgs): |
|
4630 (JSC::fillStructuresUsingDateArgs): |
|
4631 (JSC::dateProtoFuncToString): |
|
4632 (JSC::dateProtoFuncToUTCString): |
|
4633 (JSC::dateProtoFuncToISOString): |
|
4634 (JSC::dateProtoFuncToDateString): |
|
4635 (JSC::dateProtoFuncToTimeString): |
|
4636 (JSC::dateProtoFuncToLocaleString): |
|
4637 (JSC::dateProtoFuncToLocaleDateString): |
|
4638 (JSC::dateProtoFuncToLocaleTimeString): |
|
4639 (JSC::dateProtoFuncGetTime): |
|
4640 (JSC::dateProtoFuncGetFullYear): |
|
4641 (JSC::dateProtoFuncGetUTCFullYear): |
|
4642 (JSC::dateProtoFuncToGMTString): |
|
4643 (JSC::dateProtoFuncGetMonth): |
|
4644 (JSC::dateProtoFuncGetUTCMonth): |
|
4645 (JSC::dateProtoFuncGetDate): |
|
4646 (JSC::dateProtoFuncGetUTCDate): |
|
4647 (JSC::dateProtoFuncGetDay): |
|
4648 (JSC::dateProtoFuncGetUTCDay): |
|
4649 (JSC::dateProtoFuncGetHours): |
|
4650 (JSC::dateProtoFuncGetUTCHours): |
|
4651 (JSC::dateProtoFuncGetMinutes): |
|
4652 (JSC::dateProtoFuncGetUTCMinutes): |
|
4653 (JSC::dateProtoFuncGetSeconds): |
|
4654 (JSC::dateProtoFuncGetUTCSeconds): |
|
4655 (JSC::dateProtoFuncGetMilliSeconds): |
|
4656 (JSC::dateProtoFuncGetUTCMilliseconds): |
|
4657 (JSC::dateProtoFuncGetTimezoneOffset): |
|
4658 (JSC::dateProtoFuncSetTime): |
|
4659 (JSC::setNewValueFromTimeArgs): |
|
4660 (JSC::setNewValueFromDateArgs): |
|
4661 (JSC::dateProtoFuncSetMilliSeconds): |
|
4662 (JSC::dateProtoFuncSetUTCMilliseconds): |
|
4663 (JSC::dateProtoFuncSetSeconds): |
|
4664 (JSC::dateProtoFuncSetUTCSeconds): |
|
4665 (JSC::dateProtoFuncSetMinutes): |
|
4666 (JSC::dateProtoFuncSetUTCMinutes): |
|
4667 (JSC::dateProtoFuncSetHours): |
|
4668 (JSC::dateProtoFuncSetUTCHours): |
|
4669 (JSC::dateProtoFuncSetDate): |
|
4670 (JSC::dateProtoFuncSetUTCDate): |
|
4671 (JSC::dateProtoFuncSetMonth): |
|
4672 (JSC::dateProtoFuncSetUTCMonth): |
|
4673 (JSC::dateProtoFuncSetFullYear): |
|
4674 (JSC::dateProtoFuncSetUTCFullYear): |
|
4675 (JSC::dateProtoFuncSetYear): |
|
4676 (JSC::dateProtoFuncGetYear): |
|
4677 (JSC::dateProtoFuncToJSON): |
|
4678 * runtime/ErrorConstructor.cpp: |
|
4679 (JSC::callErrorConstructor): |
|
4680 * runtime/ErrorPrototype.cpp: |
|
4681 (JSC::errorProtoFuncToString): |
|
4682 * runtime/FunctionConstructor.cpp: |
|
4683 (JSC::callFunctionConstructor): |
|
4684 * runtime/FunctionPrototype.cpp: |
|
4685 (JSC::callFunctionPrototype): |
|
4686 (JSC::functionProtoFuncToString): |
|
4687 (JSC::functionProtoFuncApply): |
|
4688 (JSC::functionProtoFuncCall): |
|
4689 * runtime/JSGlobalObjectFunctions.cpp: |
|
4690 (JSC::encode): |
|
4691 (JSC::decode): |
|
4692 (JSC::globalFuncEval): |
|
4693 (JSC::globalFuncParseInt): |
|
4694 (JSC::globalFuncParseFloat): |
|
4695 (JSC::globalFuncIsNaN): |
|
4696 (JSC::globalFuncIsFinite): |
|
4697 (JSC::globalFuncDecodeURI): |
|
4698 (JSC::globalFuncDecodeURIComponent): |
|
4699 (JSC::globalFuncEncodeURI): |
|
4700 (JSC::globalFuncEncodeURIComponent): |
|
4701 (JSC::globalFuncEscape): |
|
4702 (JSC::globalFuncUnescape): |
|
4703 (JSC::globalFuncJSCPrint): |
|
4704 * runtime/JSGlobalObjectFunctions.h: |
|
4705 * runtime/JSONObject.cpp: |
|
4706 (JSC::JSONProtoFuncParse): |
|
4707 (JSC::JSONProtoFuncStringify): |
|
4708 * runtime/JSString.h: |
|
4709 * runtime/MathObject.cpp: |
|
4710 (JSC::mathProtoFuncAbs): |
|
4711 (JSC::mathProtoFuncACos): |
|
4712 (JSC::mathProtoFuncASin): |
|
4713 (JSC::mathProtoFuncATan): |
|
4714 (JSC::mathProtoFuncATan2): |
|
4715 (JSC::mathProtoFuncCeil): |
|
4716 (JSC::mathProtoFuncCos): |
|
4717 (JSC::mathProtoFuncExp): |
|
4718 (JSC::mathProtoFuncFloor): |
|
4719 (JSC::mathProtoFuncLog): |
|
4720 (JSC::mathProtoFuncMax): |
|
4721 (JSC::mathProtoFuncMin): |
|
4722 (JSC::mathProtoFuncPow): |
|
4723 (JSC::mathProtoFuncRandom): |
|
4724 (JSC::mathProtoFuncRound): |
|
4725 (JSC::mathProtoFuncSin): |
|
4726 (JSC::mathProtoFuncSqrt): |
|
4727 (JSC::mathProtoFuncTan): |
|
4728 * runtime/NativeErrorConstructor.cpp: |
|
4729 (JSC::callNativeErrorConstructor): |
|
4730 * runtime/NumberConstructor.cpp: |
|
4731 (JSC::callNumberConstructor): |
|
4732 * runtime/NumberPrototype.cpp: |
|
4733 (JSC::numberProtoFuncToString): |
|
4734 (JSC::numberProtoFuncToLocaleString): |
|
4735 (JSC::numberProtoFuncValueOf): |
|
4736 (JSC::numberProtoFuncToFixed): |
|
4737 (JSC::numberProtoFuncToExponential): |
|
4738 (JSC::numberProtoFuncToPrecision): |
|
4739 * runtime/ObjectConstructor.cpp: |
|
4740 (JSC::callObjectConstructor): |
|
4741 (JSC::objectConstructorGetPrototypeOf): |
|
4742 (JSC::objectConstructorGetOwnPropertyDescriptor): |
|
4743 (JSC::objectConstructorGetOwnPropertyNames): |
|
4744 (JSC::objectConstructorKeys): |
|
4745 (JSC::objectConstructorDefineProperty): |
|
4746 (JSC::objectConstructorDefineProperties): |
|
4747 (JSC::objectConstructorCreate): |
|
4748 * runtime/ObjectPrototype.cpp: |
|
4749 (JSC::objectProtoFuncValueOf): |
|
4750 (JSC::objectProtoFuncHasOwnProperty): |
|
4751 (JSC::objectProtoFuncIsPrototypeOf): |
|
4752 (JSC::objectProtoFuncDefineGetter): |
|
4753 (JSC::objectProtoFuncDefineSetter): |
|
4754 (JSC::objectProtoFuncLookupGetter): |
|
4755 (JSC::objectProtoFuncLookupSetter): |
|
4756 (JSC::objectProtoFuncPropertyIsEnumerable): |
|
4757 (JSC::objectProtoFuncToLocaleString): |
|
4758 (JSC::objectProtoFuncToString): |
|
4759 * runtime/ObjectPrototype.h: |
|
4760 * runtime/Operations.h: |
|
4761 (JSC::jsString): |
|
4762 * runtime/RegExpConstructor.cpp: |
|
4763 (JSC::callRegExpConstructor): |
|
4764 * runtime/RegExpObject.cpp: |
|
4765 (JSC::RegExpObject::test): |
|
4766 (JSC::RegExpObject::exec): |
|
4767 (JSC::callRegExpObject): |
|
4768 (JSC::RegExpObject::match): |
|
4769 * runtime/RegExpObject.h: |
|
4770 * runtime/RegExpPrototype.cpp: |
|
4771 (JSC::regExpProtoFuncTest): |
|
4772 (JSC::regExpProtoFuncExec): |
|
4773 (JSC::regExpProtoFuncCompile): |
|
4774 (JSC::regExpProtoFuncToString): |
|
4775 * runtime/StringConstructor.cpp: |
|
4776 (JSC::stringFromCharCodeSlowCase): |
|
4777 (JSC::stringFromCharCode): |
|
4778 (JSC::callStringConstructor): |
|
4779 * runtime/StringPrototype.cpp: |
|
4780 (JSC::stringProtoFuncReplace): |
|
4781 (JSC::stringProtoFuncToString): |
|
4782 (JSC::stringProtoFuncCharAt): |
|
4783 (JSC::stringProtoFuncCharCodeAt): |
|
4784 (JSC::stringProtoFuncConcat): |
|
4785 (JSC::stringProtoFuncIndexOf): |
|
4786 (JSC::stringProtoFuncLastIndexOf): |
|
4787 (JSC::stringProtoFuncMatch): |
|
4788 (JSC::stringProtoFuncSearch): |
|
4789 (JSC::stringProtoFuncSlice): |
|
4790 (JSC::stringProtoFuncSplit): |
|
4791 (JSC::stringProtoFuncSubstr): |
|
4792 (JSC::stringProtoFuncSubstring): |
|
4793 (JSC::stringProtoFuncToLowerCase): |
|
4794 (JSC::stringProtoFuncToUpperCase): |
|
4795 (JSC::stringProtoFuncLocaleCompare): |
|
4796 (JSC::stringProtoFuncBig): |
|
4797 (JSC::stringProtoFuncSmall): |
|
4798 (JSC::stringProtoFuncBlink): |
|
4799 (JSC::stringProtoFuncBold): |
|
4800 (JSC::stringProtoFuncFixed): |
|
4801 (JSC::stringProtoFuncItalics): |
|
4802 (JSC::stringProtoFuncStrike): |
|
4803 (JSC::stringProtoFuncSub): |
|
4804 (JSC::stringProtoFuncSup): |
|
4805 (JSC::stringProtoFuncFontcolor): |
|
4806 (JSC::stringProtoFuncFontsize): |
|
4807 (JSC::stringProtoFuncAnchor): |
|
4808 (JSC::stringProtoFuncLink): |
|
4809 (JSC::stringProtoFuncTrim): |
|
4810 (JSC::stringProtoFuncTrimLeft): |
|
4811 (JSC::stringProtoFuncTrimRight): |
|
4812 |
|
4813 2010-05-28 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> |
|
4814 |
|
4815 Reviewed by Geoffrey Garen. |
|
4816 |
|
4817 Fix the JSObjectSetPrototype function. |
|
4818 |
|
4819 A cycle in a prototype chain can cause an application hang or |
|
4820 even crash. |
|
4821 A check for a prototype chain cycles was added to |
|
4822 the JSObjectSetPrototype. |
|
4823 |
|
4824 JSObjectSetPrototype doesn't check for cycle in prototype chain. |
|
4825 https://bugs.webkit.org/show_bug.cgi?id=39360 |
|
4826 |
|
4827 * API/JSObjectRef.cpp: |
|
4828 (JSObjectSetPrototype): |
|
4829 * API/tests/testapi.c: |
|
4830 (assertTrue): |
|
4831 (checkForCycleInPrototypeChain): |
|
4832 (main): |
|
4833 * runtime/JSObject.cpp: |
|
4834 (JSC::JSObject::put): |
|
4835 * runtime/JSObject.h: |
|
4836 (JSC::JSObject::setPrototypeWithCycleCheck): |
|
4837 |
|
4838 2010-05-28 Chao-ying Fu <fu@mips.com> |
|
4839 |
|
4840 Reviewed by Eric Seidel. |
|
4841 |
|
4842 Fix MIPS JIT DoubleGreaterThanOrEqual Operands |
|
4843 https://bugs.webkit.org/show_bug.cgi?id=39504 |
|
4844 |
|
4845 Swapped two operands of left and right for DoubleGreaterThanOrEqual. |
|
4846 This patch fixed two layout tests as follows. |
|
4847 fast/js/comparison-operators-greater.html |
|
4848 fast/js/comparison-operators-less.html |
|
4849 |
|
4850 * assembler/MacroAssemblerMIPS.h: |
|
4851 (JSC::MacroAssemblerMIPS::branchDouble): |
|
4852 |
|
4853 2010-05-28 Gavin Barraclough <barraclough@apple.com> |
|
4854 |
|
4855 Reviewed by Geoff Garen. |
|
4856 |
|
4857 Move jit compilation from linking thunks into cti_vm_lazyLink methods. |
|
4858 |
|
4859 * jit/JITOpcodes.cpp: |
|
4860 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
4861 * jit/JITOpcodes32_64.cpp: |
|
4862 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
4863 * jit/JITStubs.cpp: |
|
4864 (JSC::DEFINE_STUB_FUNCTION): |
|
4865 |
|
4866 2010-05-28 Gavin Barraclough <barraclough@apple.com> |
|
4867 |
|
4868 Reviewed by Sam Weinig. |
|
4869 |
|
4870 Bug 39898 - Move arity check into callee. |
|
4871 |
|
4872 We can reduce the size of the virtual call trampolines by moving the arity check |
|
4873 into the callee functions. As a following step we will be able to remove the |
|
4874 check for native function / codeblocks by performing translation in a lazy stub. |
|
4875 |
|
4876 * interpreter/CallFrame.h: |
|
4877 (JSC::ExecState::init): |
|
4878 (JSC::ExecState::setReturnPC): |
|
4879 * jit/JIT.cpp: |
|
4880 (JSC::JIT::privateCompile): |
|
4881 (JSC::JIT::linkCall): |
|
4882 (JSC::JIT::linkConstruct): |
|
4883 * jit/JIT.h: |
|
4884 (JSC::JIT::compile): |
|
4885 * jit/JITOpcodes.cpp: |
|
4886 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
4887 * jit/JITOpcodes32_64.cpp: |
|
4888 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
4889 * jit/JITStubs.cpp: |
|
4890 (JSC::DEFINE_STUB_FUNCTION): |
|
4891 * runtime/Executable.cpp: |
|
4892 (JSC::FunctionExecutable::generateJITCodeForCall): |
|
4893 (JSC::FunctionExecutable::generateJITCodeForConstruct): |
|
4894 (JSC::FunctionExecutable::reparseExceptionInfo): |
|
4895 * runtime/Executable.h: |
|
4896 (JSC::NativeExecutable::NativeExecutable): |
|
4897 (JSC::FunctionExecutable::generatedJITCodeForCallWithArityCheck): |
|
4898 (JSC::FunctionExecutable::generatedJITCodeForConstructWithArityCheck): |
|
4899 |
|
4900 2010-05-27 Luiz Agostini <luiz.agostini@openbossa.org> |
|
4901 |
|
4902 Reviewed by Darin Adler. |
|
4903 |
|
4904 UTF-16 code points compare() for String objects |
|
4905 https://bugs.webkit.org/show_bug.cgi?id=39701 |
|
4906 |
|
4907 Moving compare() implementation from UString to StringImpl for it to be shared |
|
4908 with String. Adding overloaded free functions codePointCompare() in StringImpl |
|
4909 and WTFString. Renaming function compare in UString to codePointCompare to be |
|
4910 consistent. |
|
4911 |
|
4912 * runtime/JSArray.cpp: |
|
4913 (JSC::compareByStringPairForQSort): |
|
4914 * runtime/UString.cpp: |
|
4915 * runtime/UString.h: |
|
4916 (JSC::codePointCompare): |
|
4917 * wtf/text/StringImpl.cpp: |
|
4918 (WebCore::codePointCompare): |
|
4919 * wtf/text/StringImpl.h: |
|
4920 * wtf/text/WTFString.cpp: |
|
4921 (WebCore::codePointCompare): |
|
4922 * wtf/text/WTFString.h: |
|
4923 |
|
4924 2010-05-26 Darin Adler <darin@apple.com> |
|
4925 |
|
4926 Reviewed by Kent Tamura. |
|
4927 |
|
4928 Null characters handled incorrectly in ToNumber conversion |
|
4929 https://bugs.webkit.org/show_bug.cgi?id=38088 |
|
4930 |
|
4931 * runtime/JSGlobalObjectFunctions.cpp: |
|
4932 (JSC::parseInt): Changed code to use UTF8String().data() instead of |
|
4933 ascii() to fix the thread safety issue. Code path is covered by existing |
|
4934 tests in run-javascriptcore-tests. |
|
4935 (JSC::parseFloat): Moved comment to UString::toDouble since the issue |
|
4936 affects all clients, not just parseFloat. Specifically, this also affects |
|
4937 standard JavaScript numeric conversion, ToNumber. |
|
4938 |
|
4939 * runtime/UString.cpp: |
|
4940 (JSC::UString::toDouble): Added a comment about incorrect space skipping. |
|
4941 Changed trailing junk check to use the length of the CString instead of |
|
4942 checking for a null character. Also got rid of a little unneeded logic |
|
4943 in the case where we tolerate trailing junk. |
|
4944 |
|
4945 2010-05-27 Nathan Lawrence <nlawrence@apple.com> |
|
4946 |
|
4947 Reviewed by Geoffrey Garen. |
|
4948 |
|
4949 Search for the new allocation one word at a time. Improves |
|
4950 performance on SunSpider by approximately 1%. |
|
4951 http://bugs.webkit.org/show_bug.cgi?id=39758 |
|
4952 |
|
4953 * runtime/Collector.cpp: |
|
4954 (JSC::Heap::allocate): |
|
4955 * runtime/Collector.h: |
|
4956 (JSC::CollectorBitmap::advanceToNextPossibleFreeCell): |
|
4957 |
|
4958 2010-05-27 Kevin Ollivier <kevino@theolliviers.com> |
|
4959 |
|
4960 [wx] Build fixes for Windows after recent changes. |
|
4961 |
|
4962 * wscript: |
|
4963 |
|
4964 2010-05-27 Gustavo Noronha Silva <gns@gnome.org> |
|
4965 |
|
4966 More build fixage for make dist. |
|
4967 |
|
4968 * GNUmakefile.am: |
|
4969 |
|
4970 2010-05-27 Kwang Yul Seo <skyul@company100.net> |
|
4971 |
|
4972 Reviewed by Darin Adler. |
|
4973 |
|
4974 RVCT does not have strnstr. |
|
4975 https://bugs.webkit.org/show_bug.cgi?id=39719 |
|
4976 |
|
4977 Add COMPILER(RVCT) guard to strnstr in StringExtras.h as RVCT does not provide strnstr. |
|
4978 |
|
4979 * wtf/StringExtras.h: |
|
4980 |
|
4981 2010-05-26 Gavin Barraclough <barraclough@apple.com> |
|
4982 |
|
4983 Reviewed by Oliver Hunt. |
|
4984 |
|
4985 Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction. |
|
4986 (relanding r60267) |
|
4987 |
|
4988 If the last item in a main disjunction is a quantified set of parentheses, |
|
4989 this is easier to code generate for than the general case for quantified |
|
4990 parentheses. This is because we never need to backtrack into the parentheses |
|
4991 - the first match will be the final and accepted match. |
|
4992 |
|
4993 This patch also somewhat reverts a recent change to when fallback to PCRE |
|
4994 occurs. At the minute the compiler is tracking on patterns which will |
|
4995 require JIT fallback. This is handy from a performance perspective (it saves |
|
4996 the failed attempt at JIT compilation), but it means introducing knowledge |
|
4997 of the JITs capabilities into the other layers of the regex compilers. For |
|
4998 the specific feature of back-references, add a flag tracking their presence |
|
4999 on the pattern, and make these expressions fallback without attempting to |
|
5000 JIT. For parentheses, return to detecting which cases are have or have not |
|
5001 been handled during JIT compilation. |
|
5002 |
|
5003 18% progression on tagcloud, ~1.5% overall on sunspidey. |
|
5004 |
|
5005 * yarr/RegexCompiler.cpp: |
|
5006 (JSC::Yarr::RegexPatternConstructor::atomBackReference): |
|
5007 (JSC::Yarr::RegexPatternConstructor::quantifyAtom): |
|
5008 * yarr/RegexJIT.cpp: |
|
5009 (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm): |
|
5010 (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction): |
|
5011 (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack): |
|
5012 (JSC::Yarr::RegexGenerator::generateTerm): |
|
5013 (JSC::Yarr::RegexGenerator::RegexGenerator): |
|
5014 (JSC::Yarr::RegexGenerator::shouldFallBack): |
|
5015 (JSC::Yarr::jitCompileRegex): |
|
5016 * yarr/RegexPattern.h: |
|
5017 (JSC::Yarr::RegexPattern::RegexPattern): |
|
5018 (JSC::Yarr::RegexPattern::reset): |
|
5019 |
|
5020 2010-05-26 Gavin Barraclough <barraclough@apple.com> |
|
5021 |
|
5022 Reviewed by NOBODY (revert). |
|
5023 |
|
5024 Temporarily rolling out r60267, I appear to have hoesed perf at the last minute. :-/ Fixing. |
|
5025 |
|
5026 * yarr/RegexCompiler.cpp: |
|
5027 (JSC::Yarr::RegexPatternConstructor::atomBackReference): |
|
5028 (JSC::Yarr::RegexPatternConstructor::quantifyAtom): |
|
5029 * yarr/RegexJIT.cpp: |
|
5030 (JSC::Yarr::RegexGenerator::TermGenerationState::term): |
|
5031 (JSC::Yarr::RegexGenerator::generateParenthesesSingle): |
|
5032 (JSC::Yarr::RegexGenerator::generateTerm): |
|
5033 (JSC::Yarr::RegexGenerator::RegexGenerator): |
|
5034 (JSC::Yarr::jitCompileRegex): |
|
5035 * yarr/RegexPattern.h: |
|
5036 (JSC::Yarr::RegexPattern::RegexPattern): |
|
5037 (JSC::Yarr::RegexPattern::reset): |
|
5038 |
|
5039 2010-05-26 Gustavo Noronha Silva <gns@gnome.org> |
|
5040 |
|
5041 Build fixes for make distcheck. |
|
5042 |
|
5043 * GNUmakefile.am: |
|
5044 |
|
5045 2010-05-26 Gavin Barraclough <barraclough@apple.com> |
|
5046 |
|
5047 Reviewed by Oliver Hunt. |
|
5048 |
|
5049 Bug 39795 - Add support for YARR JIT generation of greedy quantified parens at the end of the main disjunction. |
|
5050 |
|
5051 If the last item in a main disjunction is a quantified set of parentheses, |
|
5052 this is easier to code generate for than the general case for quantified |
|
5053 parentheses. This is because we never need to backtrack into the parentheses |
|
5054 - the first match will be the final and accepted match. |
|
5055 |
|
5056 This patch also somewhat reverts a recent change to when fallback to PCRE |
|
5057 occurs. At the minute the compiler is tracking on patterns which will |
|
5058 require JIT fallback. This is handy from a performance perspective (it saves |
|
5059 the failed attempt at JIT compilation), but it means introducing knowledge |
|
5060 of the JITs capabilities into the other layers of the regex compilers. For |
|
5061 the specific feature of back-references, add a flag tracking their presence |
|
5062 on the pattern, and make these expressions fallback without attempting to |
|
5063 JIT. For parentheses, return to detecting which cases are have or have not |
|
5064 been handled during JIT compilation. |
|
5065 |
|
5066 18% progression on tagcloud, ~1.5% overall on sunspidey. |
|
5067 |
|
5068 * yarr/RegexCompiler.cpp: |
|
5069 (JSC::Yarr::RegexPatternConstructor::atomBackReference): |
|
5070 (JSC::Yarr::RegexPatternConstructor::quantifyAtom): |
|
5071 * yarr/RegexJIT.cpp: |
|
5072 (JSC::Yarr::RegexGenerator::TermGenerationState::isLastTerm): |
|
5073 (JSC::Yarr::RegexGenerator::TermGenerationState::isMainDisjunction): |
|
5074 (JSC::Yarr::RegexGenerator::generateParenthesesGreedyNoBacktrack): |
|
5075 (JSC::Yarr::RegexGenerator::generateTerm): |
|
5076 (JSC::Yarr::RegexGenerator::RegexGenerator): |
|
5077 (JSC::Yarr::RegexGenerator::shouldFallBack): |
|
5078 (JSC::Yarr::jitCompileRegex): |
|
5079 * yarr/RegexPattern.h: |
|
5080 (JSC::Yarr::RegexPattern::RegexPattern): |
|
5081 (JSC::Yarr::RegexPattern::reset): |
|
5082 |
|
5083 2010-05-26 Geoffrey Garen <ggaren@apple.com> |
|
5084 |
|
5085 Reviewed by Sam Weinig. |
|
5086 |
|
5087 Fixed a crash seen on the Leopard bot, caused by merge. |
|
5088 |
|
5089 * jit/JITStubs.cpp: |
|
5090 (JSC::DEFINE_STUB_FUNCTION): Get the return address from the callframe, |
|
5091 since it's no longer passed to us as an argument. |
|
5092 |
|
5093 2010-05-25 Geoffrey Garen <ggaren@apple.com> |
|
5094 |
|
5095 Fixed build failure caused by merge. |
|
5096 |
|
5097 * jit/JITStubs.cpp: |
|
5098 (JSC::DEFINE_STUB_FUNCTION): On error, return a single value, since this |
|
5099 function no longer returns a pair. |
|
5100 |
|
5101 2010-05-25 Geoffrey Garen <ggaren@apple.com> |
|
5102 |
|
5103 Reviewed by Oliver Hunt. |
|
5104 |
|
5105 <rdar://problem/8020221> |
|
5106 |
|
5107 Fixed a crash seen on Windows when calling a function with too many |
|
5108 arguments. |
|
5109 |
|
5110 SunSpider reports no change. |
|
5111 |
|
5112 No test because the ASSERT I added fires in existing tests. |
|
5113 |
|
5114 * jit/JITStubs.cpp: |
|
5115 (JSC::DEFINE_STUB_FUNCTION): Make sure to grow the registerFile when too |
|
5116 many arguments have been provided, since the caller only allocated enough |
|
5117 registerFile space for the arguments it provided, not enough for the extra |
|
5118 copy of arguments we're going to need. |
|
5119 |
|
5120 2010-05-25 Kwang Yul Seo <skyul@company100.net> |
|
5121 |
|
5122 Reviewed by Darin Adler. |
|
5123 |
|
5124 Build fix for JSFunction |
|
5125 https://bugs.webkit.org/show_bug.cgi?id=39658 |
|
5126 |
|
5127 MSVC can't compile one of JSFunction constructors when JIT is disabled. |
|
5128 "PassRefPtr<NativeExecutable>" causes the compile error as NativeExecutable is not defined. |
|
5129 Add ENABLE(JIT) guard to the constructor. |
|
5130 |
|
5131 * runtime/JSFunction.cpp: |
|
5132 (JSC::JSFunction::JSFunction): |
|
5133 * runtime/JSFunction.h: |
|
5134 |
|
5135 2010-05-24 Gavin Barraclough <barraclough@apple.com> |
|
5136 |
|
5137 Reviewed by Sam Weinig. |
|
5138 |
|
5139 Bug 39643 - Clean up code generation in the JIT of stub function calls for op_call. |
|
5140 |
|
5141 Presently, as soon as op-call strays off the hot path we set up a set of values on |
|
5142 the stack to be passed as arguments to cti functions, in case any should be called. |
|
5143 |
|
5144 Instead, hoist the setup of the callframe to happen slightly sooner, and make the |
|
5145 cti functions to compile & check arity read these values from the callframe. This |
|
5146 allows up to remove the deprecated methods to manually set up cti arguments, rather |
|
5147 than using JITStubCall.h. |
|
5148 |
|
5149 * interpreter/CallFrame.h: |
|
5150 * jit/JIT.h: |
|
5151 * jit/JITCall.cpp: |
|
5152 (JSC::JIT::compileOpCallInitializeCallFrame): |
|
5153 (JSC::JIT::compileOpCallVarargs): |
|
5154 (JSC::JIT::compileOpCallVarargsSlowCase): |
|
5155 (JSC::JIT::compileOpCall): |
|
5156 (JSC::JIT::compileOpCallSlowCase): |
|
5157 * jit/JITCall32_64.cpp: |
|
5158 (JSC::JIT::compileOpCallInitializeCallFrame): |
|
5159 (JSC::JIT::compileOpCallVarargs): |
|
5160 (JSC::JIT::compileOpCallVarargsSlowCase): |
|
5161 (JSC::JIT::compileOpCall): |
|
5162 (JSC::JIT::compileOpCallSlowCase): |
|
5163 * jit/JITInlineMethods.h: |
|
5164 * jit/JITOpcodes.cpp: |
|
5165 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
5166 * jit/JITOpcodes32_64.cpp: |
|
5167 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
5168 * jit/JITStubs.cpp: |
|
5169 (JSC::DEFINE_STUB_FUNCTION): |
|
5170 * jit/JITStubs.h: |
|
5171 (JSC::): |
|
5172 |
|
5173 2010-05-24 Gavin Barraclough <barraclough@apple.com> |
|
5174 |
|
5175 Reviewed by Sam Weinig. |
|
5176 Relanding r60075. |
|
5177 |
|
5178 * bytecode/CodeBlock.cpp: |
|
5179 (JSC::CodeBlock::dump): |
|
5180 (JSC::CodeBlock::getByIdExceptionInfoForBytecodeOffset): |
|
5181 * bytecode/CodeBlock.h: |
|
5182 * bytecode/Opcode.h: |
|
5183 * bytecompiler/BytecodeGenerator.cpp: |
|
5184 (JSC::BytecodeGenerator::BytecodeGenerator): |
|
5185 (JSC::BytecodeGenerator::emitConstruct): |
|
5186 * bytecompiler/BytecodeGenerator.h: |
|
5187 (JSC::BytecodeGenerator::emitGetByIdExceptionInfo): |
|
5188 * interpreter/Interpreter.cpp: |
|
5189 (JSC::Interpreter::privateExecute): |
|
5190 * jit/JIT.cpp: |
|
5191 (JSC::JIT::privateCompileMainPass): |
|
5192 * jit/JIT.h: |
|
5193 * jit/JITCall.cpp: |
|
5194 (JSC::JIT::compileOpCall): |
|
5195 (JSC::JIT::compileOpCallSlowCase): |
|
5196 * jit/JITCall32_64.cpp: |
|
5197 (JSC::JIT::compileOpCall): |
|
5198 (JSC::JIT::compileOpCallSlowCase): |
|
5199 * jit/JITOpcodes.cpp: |
|
5200 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
5201 (JSC::JIT::privateCompileCTINativeCall): |
|
5202 (JSC::JIT::emit_op_neq_null): |
|
5203 (JSC::JIT::emit_op_convert_this): |
|
5204 (JSC::JIT::emit_op_get_callee): |
|
5205 (JSC::JIT::emit_op_create_this): |
|
5206 * jit/JITOpcodes32_64.cpp: |
|
5207 (JSC::JIT::privateCompileCTIMachineTrampolines): |
|
5208 (JSC::JIT::privateCompileCTINativeCall): |
|
5209 (JSC::JIT::emit_op_get_callee): |
|
5210 (JSC::JIT::emit_op_create_this): |
|
5211 * jit/JITStubs.cpp: |
|
5212 (JSC::DEFINE_STUB_FUNCTION): |
|
5213 (JSC::JITThunks::hostFunctionStub): |
|
5214 * jit/JITStubs.h: |
|
5215 (JSC::JITThunks::ctiNativeConstruct): |
|
5216 (JSC::): |
|
5217 * runtime/ExceptionHelpers.cpp: |
|
5218 (JSC::createNotAnObjectError): |
|
5219 * runtime/Executable.h: |
|
5220 (JSC::NativeExecutable::create): |
|
5221 (JSC::NativeExecutable::NativeExecutable): |
|
5222 * runtime/JSFunction.cpp: |
|
5223 (JSC::callHostFunctionAsConstructor): |
|
5224 * runtime/JSFunction.h: |
|
5225 * wtf/Platform.h: |
|
5226 |
|
5227 == Rolled over to ChangeLog-2010-05-24 == |