1 2011-02-01 Sam Weinig <sam@webkit.org>
3 Reviewed by Beth Dakin.
5 Part 2 for <rdar://problem/8492788>
6 Adopt WKScrollbarPainterController
8 Use header detection to define scrollbar painting controller #define.
10 * DerivedSources.make:
11 * JavaScriptCore.xcodeproj/project.pbxproj:
13 2011-02-01 Geoffrey Garen <ggaren@apple.com>
15 Reviewed by Oliver Hunt.
17 REGRESSION(77082): GC-related crashes seen: on WebKit2 bot; on GTK 32bit
18 bot; loading trac pages; typing in search field
19 https://bugs.webkit.org/show_bug.cgi?id=53519
21 The crashes were all caused by failure to run an object's destructor.
23 * runtime/CollectorHeapIterator.h:
24 (JSC::ObjectIterator::ObjectIterator): Don't skip forward upon
25 construction. The iterator class used to do that when it was designed
26 for prior-to-beginning initialization. I forgot to remove this line
27 of code when I changed the iterator to normal initialization.
29 Skipping forward upon construction was causing the heap to skip running
30 the destructor for the very first object in a block when destroying the
31 block. This usually did not crash, since block destruction is rare and
32 most objects have pretty trivial destructors. However, in the rare case
33 when the heap would destroy a block whose first object was a global
34 object or a DOM node, BOOM.
36 2011-01-31 Oliver Hunt <oliver@apple.com>
38 Reviewed by Geoffrey Garen.
40 Update JSObject storage for new marking API
41 https://bugs.webkit.org/show_bug.cgi?id=53467
43 JSObject no longer uses EncodedJSValue for its property storage.
44 This produces a stream of mechanical changes to PropertySlot and
45 anonymous storage APIs.
48 * runtime/ArrayPrototype.cpp:
49 (JSC::ArrayPrototype::ArrayPrototype):
50 * runtime/BooleanConstructor.cpp:
51 (JSC::constructBoolean):
52 (JSC::constructBooleanFromImmediateBoolean):
53 * runtime/BooleanObject.cpp:
54 (JSC::BooleanObject::BooleanObject):
55 * runtime/BooleanObject.h:
56 * runtime/BooleanPrototype.cpp:
57 (JSC::BooleanPrototype::BooleanPrototype):
58 * runtime/DateInstance.cpp:
59 (JSC::DateInstance::DateInstance):
60 * runtime/DatePrototype.cpp:
61 (JSC::DatePrototype::DatePrototype):
62 * runtime/JSActivation.cpp:
63 (JSC::JSActivation::getOwnPropertySlot):
64 * runtime/JSArray.cpp:
65 (JSC::JSArray::getOwnPropertySlot):
66 * runtime/JSFunction.cpp:
67 (JSC::JSFunction::getOwnPropertySlot):
68 * runtime/JSGlobalObject.h:
69 (JSC::JSGlobalObject::JSGlobalObject):
70 * runtime/JSObject.cpp:
71 (JSC::JSObject::fillGetterPropertySlot):
73 (JSC::JSObject::getDirectLocation):
74 (JSC::JSObject::offsetForLocation):
75 (JSC::JSObject::putAnonymousValue):
76 (JSC::JSObject::clearAnonymousValue):
77 (JSC::JSObject::getAnonymousValue):
78 (JSC::JSObject::putThisToAnonymousValue):
79 (JSC::JSObject::locationForOffset):
80 (JSC::JSObject::inlineGetOwnPropertySlot):
81 * runtime/JSObjectWithGlobalObject.cpp:
82 (JSC::JSObjectWithGlobalObject::JSObjectWithGlobalObject):
83 * runtime/JSWrapperObject.h:
84 (JSC::JSWrapperObject::JSWrapperObject):
85 (JSC::JSWrapperObject::setInternalValue):
87 (JSC::setUpStaticFunctionSlot):
88 * runtime/NumberConstructor.cpp:
89 (JSC::constructWithNumberConstructor):
90 * runtime/NumberObject.cpp:
91 (JSC::NumberObject::NumberObject):
92 (JSC::constructNumber):
93 * runtime/NumberObject.h:
94 * runtime/NumberPrototype.cpp:
95 (JSC::NumberPrototype::NumberPrototype):
96 * runtime/PropertySlot.h:
97 (JSC::PropertySlot::getValue):
98 (JSC::PropertySlot::setValue):
99 (JSC::PropertySlot::setRegisterSlot):
100 * runtime/StringObject.cpp:
101 (JSC::StringObject::StringObject):
102 * runtime/StringPrototype.cpp:
103 (JSC::StringPrototype::StringPrototype):
104 * runtime/WriteBarrier.h:
105 (JSC::WriteBarrierBase::setWithoutWriteBarrier):
107 2011-02-01 Daniel Bates <dbates@rim.com>
109 Reviewed by Antonio Gomes.
111 Modify RandomNumberSeed.h to use USE(MERSENNE_TWISTER_19937)
112 https://bugs.webkit.org/show_bug.cgi?id=53506
114 Currently, use of the Mersenne Twister pseudorandom number generator
115 is hardcoded to the Windows CE port. With the passing of bug #53253,
116 we can generalize support for this PRNG to all ports that use srand(3)
117 and rand(3), including Windows CE.
119 * wtf/RandomNumberSeed.h:
120 (WTF::initializeRandomNumberGenerator):
122 2011-02-01 Dave Tapuska <dtapuska@rim.com>
124 Reviewed by Gavin Barraclough.
126 MacroAssemblerARM would generate code that did 32bit loads
127 on addresses that were not aligned. More specifically it would
128 generate a ldr r8,[r1, #7] which isn't valid on ARMv5 and lower.
129 The intended instruction really is ldrb r8,[r1, #7]; ensure we
130 call load8 instead of load32.
132 https://bugs.webkit.org/show_bug.cgi?id=46095
134 * assembler/MacroAssemblerARM.h:
135 (JSC::MacroAssemblerARM::set32Test32):
136 (JSC::MacroAssemblerARM::set32Test8):
138 2011-02-01 Darin Fisher <darin@chromium.org>
140 Reviewed by Eric Seidel.
142 Fix some Visual Studio compiler warnings.
143 https://bugs.webkit.org/show_bug.cgi?id=53476
147 (clampToPositiveInteger):
148 * wtf/ThreadingWin.cpp:
149 (WTF::absoluteTimeToWaitTimeoutInterval):
151 2011-01-31 Oliver Hunt <oliver@apple.com>
153 Reviewed by Sam Weinig.
155 Bogus callframe during stack unwinding
156 https://bugs.webkit.org/show_bug.cgi?id=53454
158 Trying to access a callframe's globalData after destroying its
159 ScopeChain is not a good thing. While we could access the
160 globalData directly through the (known valid) scopechain we're
161 holding on to, it feels fragile. Instead we push the valid
162 ScopeChain onto the callframe again to ensure that the callframe
163 itself remains valid.
165 * interpreter/Interpreter.cpp:
166 (JSC::Interpreter::unwindCallFrame):
168 2011-01-31 Michael Saboff <msaboff@apple.com>
170 Reviewed by Geoffrey Garen.
172 Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
173 https://bugs.webkit.org/show_bug.cgi?id=53271
175 Reapplying this change again.
176 Changed isValid() to use .get() as a result of change r77151.
178 Added new isValid() methods to check if a contained object in
179 a WeakGCMap is valid when using an unchecked iterator.
181 * runtime/WeakGCMap.h:
182 (JSC::WeakGCMap::isValid):
184 2011-01-31 Oliver Hunt <oliver@apple.com>
186 Convert markstack to a slot visitor API
187 https://bugs.webkit.org/show_bug.cgi?id=53219
189 rolling r77098, r77099, r77100, r77109, and
190 r77111 back in, along with a few more Qt fix attempts.
192 * API/JSCallbackObject.h:
193 (JSC::JSCallbackObjectData::setPrivateProperty):
194 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
195 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
196 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
197 (JSC::JSCallbackObject::setPrivateProperty):
198 * API/JSCallbackObjectFunctions.h:
200 (JSC::::staticFunctionGetter):
201 * API/JSObjectRef.cpp:
202 (JSObjectMakeConstructor):
203 (JSObjectSetPrivateProperty):
204 * API/JSWeakObjectMapRefInternal.h:
205 * JavaScriptCore.exp:
206 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
207 * JavaScriptCore.xcodeproj/project.pbxproj:
208 * bytecode/CodeBlock.cpp:
209 (JSC::CodeBlock::markAggregate):
210 * bytecode/CodeBlock.h:
211 (JSC::CodeBlock::globalObject):
212 * bytecompiler/BytecodeGenerator.cpp:
213 (JSC::BytecodeGenerator::BytecodeGenerator):
214 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
215 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
216 (JSC::BytecodeGenerator::findScopedProperty):
217 * debugger/Debugger.cpp:
218 (JSC::evaluateInGlobalCallFrame):
219 * debugger/DebuggerActivation.cpp:
220 (JSC::DebuggerActivation::DebuggerActivation):
221 (JSC::DebuggerActivation::markChildren):
222 * debugger/DebuggerActivation.h:
223 * debugger/DebuggerCallFrame.cpp:
224 (JSC::DebuggerCallFrame::evaluate):
225 * interpreter/CallFrame.h:
226 (JSC::ExecState::exception):
227 * interpreter/Interpreter.cpp:
228 (JSC::Interpreter::resolve):
229 (JSC::Interpreter::resolveSkip):
230 (JSC::Interpreter::resolveGlobal):
231 (JSC::Interpreter::resolveGlobalDynamic):
232 (JSC::Interpreter::resolveBaseAndProperty):
233 (JSC::Interpreter::unwindCallFrame):
234 (JSC::appendSourceToError):
235 (JSC::Interpreter::execute):
236 (JSC::Interpreter::tryCacheGetByID):
237 (JSC::Interpreter::privateExecute):
239 (JSC::JITThunks::tryCacheGetByID):
240 (JSC::DEFINE_STUB_FUNCTION):
242 (GlobalObject::GlobalObject):
243 * runtime/ArgList.cpp:
244 (JSC::MarkedArgumentBuffer::markLists):
245 * runtime/Arguments.cpp:
246 (JSC::Arguments::markChildren):
247 (JSC::Arguments::getOwnPropertySlot):
248 (JSC::Arguments::getOwnPropertyDescriptor):
249 (JSC::Arguments::put):
250 * runtime/Arguments.h:
251 (JSC::Arguments::setActivation):
252 (JSC::Arguments::Arguments):
253 * runtime/ArrayConstructor.cpp:
254 (JSC::ArrayConstructor::ArrayConstructor):
255 (JSC::constructArrayWithSizeQuirk):
256 * runtime/ArrayPrototype.cpp:
257 (JSC::arrayProtoFuncSplice):
258 * runtime/BatchedTransitionOptimizer.h:
259 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
260 (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
261 * runtime/BooleanConstructor.cpp:
262 (JSC::BooleanConstructor::BooleanConstructor):
263 (JSC::constructBoolean):
264 (JSC::constructBooleanFromImmediateBoolean):
265 * runtime/BooleanPrototype.cpp:
266 (JSC::BooleanPrototype::BooleanPrototype):
267 * runtime/ConservativeSet.cpp:
268 (JSC::ConservativeSet::grow):
269 * runtime/ConservativeSet.h:
270 (JSC::ConservativeSet::~ConservativeSet):
271 (JSC::ConservativeSet::mark):
272 * runtime/DateConstructor.cpp:
273 (JSC::DateConstructor::DateConstructor):
274 * runtime/DateInstance.cpp:
275 (JSC::DateInstance::DateInstance):
276 * runtime/DatePrototype.cpp:
277 (JSC::dateProtoFuncSetTime):
278 (JSC::setNewValueFromTimeArgs):
279 (JSC::setNewValueFromDateArgs):
280 (JSC::dateProtoFuncSetYear):
281 * runtime/ErrorConstructor.cpp:
282 (JSC::ErrorConstructor::ErrorConstructor):
283 * runtime/ErrorInstance.cpp:
284 (JSC::ErrorInstance::ErrorInstance):
285 * runtime/ErrorPrototype.cpp:
286 (JSC::ErrorPrototype::ErrorPrototype):
287 * runtime/FunctionConstructor.cpp:
288 (JSC::FunctionConstructor::FunctionConstructor):
289 * runtime/FunctionPrototype.cpp:
290 (JSC::FunctionPrototype::FunctionPrototype):
291 * runtime/GetterSetter.cpp:
292 (JSC::GetterSetter::markChildren):
293 * runtime/GetterSetter.h:
294 (JSC::GetterSetter::GetterSetter):
295 (JSC::GetterSetter::getter):
296 (JSC::GetterSetter::setGetter):
297 (JSC::GetterSetter::setter):
298 (JSC::GetterSetter::setSetter):
299 * runtime/GlobalEvalFunction.cpp:
300 (JSC::GlobalEvalFunction::GlobalEvalFunction):
301 (JSC::GlobalEvalFunction::markChildren):
302 * runtime/GlobalEvalFunction.h:
303 (JSC::GlobalEvalFunction::cachedGlobalObject):
305 (JSC::Heap::markProtectedObjects):
306 (JSC::Heap::markTempSortVectors):
307 (JSC::Heap::markRoots):
308 * runtime/InternalFunction.cpp:
309 (JSC::InternalFunction::InternalFunction):
310 * runtime/JSAPIValueWrapper.h:
311 (JSC::JSAPIValueWrapper::value):
312 (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
313 * runtime/JSActivation.cpp:
314 (JSC::JSActivation::markChildren):
315 (JSC::JSActivation::put):
316 * runtime/JSArray.cpp:
317 (JSC::JSArray::JSArray):
318 (JSC::JSArray::getOwnPropertySlot):
319 (JSC::JSArray::getOwnPropertyDescriptor):
321 (JSC::JSArray::putSlowCase):
322 (JSC::JSArray::deleteProperty):
323 (JSC::JSArray::increaseVectorLength):
324 (JSC::JSArray::setLength):
326 (JSC::JSArray::push):
327 (JSC::JSArray::unshiftCount):
328 (JSC::JSArray::sort):
329 (JSC::JSArray::fillArgList):
330 (JSC::JSArray::copyToRegisters):
331 (JSC::JSArray::compactForSorting):
333 (JSC::JSArray::getIndex):
334 (JSC::JSArray::setIndex):
335 (JSC::JSArray::uncheckedSetIndex):
336 (JSC::JSArray::markChildrenDirect):
337 * runtime/JSByteArray.cpp:
338 (JSC::JSByteArray::JSByteArray):
340 (JSC::JSCell::MarkStack::append):
341 (JSC::JSCell::MarkStack::internalAppend):
342 (JSC::JSCell::MarkStack::deprecatedAppend):
343 * runtime/JSFunction.cpp:
344 (JSC::JSFunction::JSFunction):
345 (JSC::JSFunction::getOwnPropertySlot):
346 * runtime/JSGlobalData.h:
347 * runtime/JSGlobalObject.cpp:
349 (JSC::JSGlobalObject::reset):
350 (JSC::JSGlobalObject::resetPrototype):
351 (JSC::JSGlobalObject::markChildren):
352 * runtime/JSGlobalObject.h:
353 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
354 (JSC::JSGlobalObject::regExpConstructor):
355 (JSC::JSGlobalObject::errorConstructor):
356 (JSC::JSGlobalObject::evalErrorConstructor):
357 (JSC::JSGlobalObject::rangeErrorConstructor):
358 (JSC::JSGlobalObject::referenceErrorConstructor):
359 (JSC::JSGlobalObject::syntaxErrorConstructor):
360 (JSC::JSGlobalObject::typeErrorConstructor):
361 (JSC::JSGlobalObject::URIErrorConstructor):
362 (JSC::JSGlobalObject::evalFunction):
363 (JSC::JSGlobalObject::objectPrototype):
364 (JSC::JSGlobalObject::functionPrototype):
365 (JSC::JSGlobalObject::arrayPrototype):
366 (JSC::JSGlobalObject::booleanPrototype):
367 (JSC::JSGlobalObject::stringPrototype):
368 (JSC::JSGlobalObject::numberPrototype):
369 (JSC::JSGlobalObject::datePrototype):
370 (JSC::JSGlobalObject::regExpPrototype):
371 (JSC::JSGlobalObject::methodCallDummy):
372 (JSC::Structure::prototypeForLookup):
373 (JSC::constructArray):
374 * runtime/JSONObject.cpp:
375 (JSC::Stringifier::Holder::object):
376 (JSC::Stringifier::Holder::objectSlot):
377 (JSC::Stringifier::markAggregate):
378 (JSC::Stringifier::stringify):
379 (JSC::Stringifier::Holder::appendNextProperty):
380 (JSC::Walker::callReviver):
382 * runtime/JSObject.cpp:
383 (JSC::JSObject::defineGetter):
384 (JSC::JSObject::defineSetter):
385 (JSC::JSObject::removeDirect):
386 (JSC::JSObject::putDirectFunction):
387 (JSC::JSObject::putDirectFunctionWithoutTransition):
388 (JSC::putDescriptor):
389 (JSC::JSObject::defineOwnProperty):
390 * runtime/JSObject.h:
391 (JSC::JSObject::getDirectOffset):
392 (JSC::JSObject::putDirectOffset):
393 (JSC::JSObject::putUndefinedAtDirectOffset):
394 (JSC::JSObject::flattenDictionaryObject):
395 (JSC::JSObject::putDirectInternal):
396 (JSC::JSObject::putDirect):
397 (JSC::JSObject::putDirectFunction):
398 (JSC::JSObject::putDirectWithoutTransition):
399 (JSC::JSObject::putDirectFunctionWithoutTransition):
400 (JSC::JSValue::putDirect):
401 (JSC::JSObject::allocatePropertyStorageInline):
402 (JSC::JSObject::markChildrenDirect):
403 * runtime/JSPropertyNameIterator.cpp:
404 (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
405 (JSC::JSPropertyNameIterator::get):
406 * runtime/JSPropertyNameIterator.h:
407 * runtime/JSStaticScopeObject.cpp:
408 (JSC::JSStaticScopeObject::markChildren):
409 * runtime/JSString.cpp:
410 (JSC::StringObject::create):
412 * runtime/JSWrapperObject.cpp:
413 (JSC::JSWrapperObject::markChildren):
414 * runtime/JSWrapperObject.h:
415 (JSC::JSWrapperObject::internalValue):
416 (JSC::JSWrapperObject::setInternalValue):
417 * runtime/LiteralParser.cpp:
418 (JSC::LiteralParser::parse):
419 * runtime/Lookup.cpp:
420 (JSC::setUpStaticFunctionSlot):
423 * runtime/MarkStack.h:
424 (JSC::MarkStack::MarkStack):
425 (JSC::MarkStack::deprecatedAppendValues):
426 (JSC::MarkStack::appendValues):
427 * runtime/MathObject.cpp:
428 (JSC::MathObject::MathObject):
429 * runtime/NativeErrorConstructor.cpp:
430 (JSC::NativeErrorConstructor::NativeErrorConstructor):
431 * runtime/NativeErrorPrototype.cpp:
432 (JSC::NativeErrorPrototype::NativeErrorPrototype):
433 * runtime/NumberConstructor.cpp:
434 (JSC::NumberConstructor::NumberConstructor):
435 (JSC::constructWithNumberConstructor):
436 * runtime/NumberObject.cpp:
437 (JSC::constructNumber):
438 * runtime/NumberPrototype.cpp:
439 (JSC::NumberPrototype::NumberPrototype):
440 * runtime/ObjectConstructor.cpp:
441 (JSC::ObjectConstructor::ObjectConstructor):
442 (JSC::objectConstructorGetOwnPropertyDescriptor):
443 * runtime/Operations.h:
444 (JSC::normalizePrototypeChain):
446 * runtime/PrototypeFunction.cpp:
447 (JSC::PrototypeFunction::PrototypeFunction):
448 * runtime/PutPropertySlot.h:
449 (JSC::PutPropertySlot::setExistingProperty):
450 (JSC::PutPropertySlot::setNewProperty):
451 (JSC::PutPropertySlot::base):
452 * runtime/RegExpConstructor.cpp:
453 (JSC::RegExpConstructor::RegExpConstructor):
454 * runtime/ScopeChain.cpp:
455 (JSC::ScopeChainNode::print):
456 * runtime/ScopeChain.h:
457 (JSC::ScopeChainNode::~ScopeChainNode):
458 (JSC::ScopeChainIterator::operator*):
459 (JSC::ScopeChainIterator::operator->):
460 (JSC::ScopeChain::top):
461 * runtime/ScopeChainMark.h:
462 (JSC::ScopeChain::markAggregate):
463 * runtime/SmallStrings.cpp:
465 (JSC::SmallStrings::markChildren):
466 * runtime/SmallStrings.h:
467 (JSC::SmallStrings::emptyString):
468 (JSC::SmallStrings::singleCharacterString):
469 (JSC::SmallStrings::singleCharacterStrings):
470 * runtime/StringConstructor.cpp:
471 (JSC::StringConstructor::StringConstructor):
472 * runtime/StringObject.cpp:
473 (JSC::StringObject::StringObject):
474 * runtime/StringObject.h:
475 * runtime/StringPrototype.cpp:
476 (JSC::StringPrototype::StringPrototype):
477 * runtime/Structure.cpp:
478 (JSC::Structure::Structure):
479 (JSC::Structure::addPropertyTransition):
480 (JSC::Structure::toDictionaryTransition):
481 (JSC::Structure::flattenDictionaryStructure):
482 * runtime/Structure.h:
483 (JSC::Structure::storedPrototype):
484 (JSC::Structure::storedPrototypeSlot):
485 * runtime/WeakGCMap.h:
486 (JSC::WeakGCMap::uncheckedGet):
487 (JSC::WeakGCMap::uncheckedGetSlot):
491 (JSC::::uncheckedRemove):
492 * runtime/WriteBarrier.h: Added.
493 (JSC::DeprecatedPtr::DeprecatedPtr):
494 (JSC::DeprecatedPtr::get):
495 (JSC::DeprecatedPtr::operator*):
496 (JSC::DeprecatedPtr::operator->):
497 (JSC::DeprecatedPtr::slot):
498 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
499 (JSC::DeprecatedPtr::operator!):
500 (JSC::WriteBarrierBase::set):
501 (JSC::WriteBarrierBase::get):
502 (JSC::WriteBarrierBase::operator*):
503 (JSC::WriteBarrierBase::operator->):
504 (JSC::WriteBarrierBase::clear):
505 (JSC::WriteBarrierBase::slot):
506 (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
507 (JSC::WriteBarrierBase::operator!):
508 (JSC::WriteBarrier::WriteBarrier):
511 2011-01-31 Dan Winship <danw@gnome.org>
513 Reviewed by Gustavo Noronha Silva.
515 wss (websockets ssl) support for gtk via new gio TLS support
516 https://bugs.webkit.org/show_bug.cgi?id=50344
518 Add a GPollableOutputStream typedef for TLS WebSockets support
520 * wtf/gobject/GTypedefs.h:
522 2011-01-31 Gavin Barraclough <barraclough@apple.com>
524 Reviewed by Geoff Garen.
526 https://bugs.webkit.org/show_bug.cgi?id=53352
527 Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH().
529 The FixedVMPoolAllocator currently uses a best fix policy -
530 switch to first fit, this is less prone to external fragmentation.
532 * jit/ExecutableAllocatorFixedVMPool.cpp:
533 (JSC::AllocationTableSizeClass::AllocationTableSizeClass):
534 (JSC::AllocationTableSizeClass::blockSize):
535 (JSC::AllocationTableSizeClass::blockCount):
536 (JSC::AllocationTableSizeClass::blockAlignment):
537 (JSC::AllocationTableSizeClass::size):
538 (JSC::AllocationTableLeaf::AllocationTableLeaf):
539 (JSC::AllocationTableLeaf::~AllocationTableLeaf):
540 (JSC::AllocationTableLeaf::allocate):
541 (JSC::AllocationTableLeaf::free):
542 (JSC::AllocationTableLeaf::isEmpty):
543 (JSC::AllocationTableLeaf::isFull):
544 (JSC::AllocationTableLeaf::size):
545 (JSC::AllocationTableLeaf::classForSize):
546 (JSC::AllocationTableLeaf::dump):
547 (JSC::LazyAllocationTable::LazyAllocationTable):
548 (JSC::LazyAllocationTable::~LazyAllocationTable):
549 (JSC::LazyAllocationTable::allocate):
550 (JSC::LazyAllocationTable::free):
551 (JSC::LazyAllocationTable::isEmpty):
552 (JSC::LazyAllocationTable::isFull):
553 (JSC::LazyAllocationTable::size):
554 (JSC::LazyAllocationTable::dump):
555 (JSC::LazyAllocationTable::classForSize):
556 (JSC::AllocationTableDirectory::AllocationTableDirectory):
557 (JSC::AllocationTableDirectory::~AllocationTableDirectory):
558 (JSC::AllocationTableDirectory::allocate):
559 (JSC::AllocationTableDirectory::free):
560 (JSC::AllocationTableDirectory::isEmpty):
561 (JSC::AllocationTableDirectory::isFull):
562 (JSC::AllocationTableDirectory::size):
563 (JSC::AllocationTableDirectory::classForSize):
564 (JSC::AllocationTableDirectory::dump):
565 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
566 (JSC::FixedVMPoolAllocator::alloc):
567 (JSC::FixedVMPoolAllocator::free):
568 (JSC::FixedVMPoolAllocator::allocated):
569 (JSC::FixedVMPoolAllocator::isValid):
570 (JSC::FixedVMPoolAllocator::classForSize):
571 (JSC::FixedVMPoolAllocator::offsetToPointer):
572 (JSC::FixedVMPoolAllocator::pointerToOffset):
573 (JSC::ExecutableAllocator::committedByteCount):
574 (JSC::ExecutableAllocator::isValid):
575 (JSC::ExecutableAllocator::underMemoryPressure):
576 (JSC::ExecutablePool::systemAlloc):
577 (JSC::ExecutablePool::systemRelease):
578 * wtf/PageReservation.h:
579 (WTF::PageReservation::PageReservation):
580 (WTF::PageReservation::commit):
581 (WTF::PageReservation::decommit):
582 (WTF::PageReservation::committed):
584 2011-01-31 Sheriff Bot <webkit.review.bot@gmail.com>
586 Unreviewed, rolling out r76969.
587 http://trac.webkit.org/changeset/76969
588 https://bugs.webkit.org/show_bug.cgi?id=53418
590 "It is causing crashes in GTK+ and Leopard bots" (Requested by
593 * runtime/WeakGCMap.h:
595 2011-01-30 Csaba Osztrogonác <ossy@webkit.org>
597 Unreviewed, rolling out r77098, r77099, r77100, r77109, and
599 http://trac.webkit.org/changeset/77098
600 http://trac.webkit.org/changeset/77099
601 http://trac.webkit.org/changeset/77100
602 http://trac.webkit.org/changeset/77109
603 http://trac.webkit.org/changeset/77111
604 https://bugs.webkit.org/show_bug.cgi?id=53219
608 * API/JSCallbackObject.h:
609 (JSC::JSCallbackObjectData::setPrivateProperty):
610 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
611 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
612 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
613 (JSC::JSCallbackObject::setPrivateProperty):
614 * API/JSCallbackObjectFunctions.h:
616 (JSC::::staticFunctionGetter):
617 * API/JSObjectRef.cpp:
618 (JSObjectMakeConstructor):
619 (JSObjectSetPrivateProperty):
620 * API/JSWeakObjectMapRefInternal.h:
621 * JavaScriptCore.exp:
622 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
623 * JavaScriptCore.xcodeproj/project.pbxproj:
624 * bytecode/CodeBlock.cpp:
625 (JSC::CodeBlock::markAggregate):
626 * bytecode/CodeBlock.h:
627 (JSC::CodeBlock::globalObject):
628 * bytecompiler/BytecodeGenerator.cpp:
629 (JSC::BytecodeGenerator::BytecodeGenerator):
630 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
631 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
632 (JSC::BytecodeGenerator::findScopedProperty):
633 * debugger/Debugger.cpp:
634 (JSC::evaluateInGlobalCallFrame):
635 * debugger/DebuggerActivation.cpp:
636 (JSC::DebuggerActivation::DebuggerActivation):
637 (JSC::DebuggerActivation::markChildren):
638 * debugger/DebuggerActivation.h:
639 * debugger/DebuggerCallFrame.cpp:
640 (JSC::DebuggerCallFrame::evaluate):
641 * interpreter/CallFrame.h:
642 (JSC::ExecState::exception):
643 * interpreter/Interpreter.cpp:
644 (JSC::Interpreter::resolve):
645 (JSC::Interpreter::resolveSkip):
646 (JSC::Interpreter::resolveGlobal):
647 (JSC::Interpreter::resolveGlobalDynamic):
648 (JSC::Interpreter::resolveBaseAndProperty):
649 (JSC::Interpreter::unwindCallFrame):
650 (JSC::appendSourceToError):
651 (JSC::Interpreter::execute):
652 (JSC::Interpreter::tryCacheGetByID):
653 (JSC::Interpreter::privateExecute):
655 (JSC::JITThunks::tryCacheGetByID):
656 (JSC::DEFINE_STUB_FUNCTION):
658 (GlobalObject::GlobalObject):
659 * runtime/ArgList.cpp:
660 (JSC::MarkedArgumentBuffer::markLists):
661 * runtime/Arguments.cpp:
662 (JSC::Arguments::markChildren):
663 (JSC::Arguments::getOwnPropertySlot):
664 (JSC::Arguments::getOwnPropertyDescriptor):
665 (JSC::Arguments::put):
666 * runtime/Arguments.h:
667 (JSC::Arguments::setActivation):
668 (JSC::Arguments::Arguments):
669 * runtime/ArrayConstructor.cpp:
670 (JSC::ArrayConstructor::ArrayConstructor):
671 (JSC::constructArrayWithSizeQuirk):
672 * runtime/ArrayPrototype.cpp:
673 (JSC::arrayProtoFuncSplice):
674 * runtime/BatchedTransitionOptimizer.h:
675 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
676 (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
677 * runtime/BooleanConstructor.cpp:
678 (JSC::BooleanConstructor::BooleanConstructor):
679 (JSC::constructBoolean):
680 (JSC::constructBooleanFromImmediateBoolean):
681 * runtime/BooleanPrototype.cpp:
682 (JSC::BooleanPrototype::BooleanPrototype):
683 * runtime/ConservativeSet.cpp:
684 (JSC::ConservativeSet::grow):
685 * runtime/ConservativeSet.h:
686 (JSC::ConservativeSet::~ConservativeSet):
687 (JSC::ConservativeSet::mark):
688 * runtime/DateConstructor.cpp:
689 (JSC::DateConstructor::DateConstructor):
690 * runtime/DateInstance.cpp:
691 (JSC::DateInstance::DateInstance):
692 * runtime/DatePrototype.cpp:
693 (JSC::dateProtoFuncSetTime):
694 (JSC::setNewValueFromTimeArgs):
695 (JSC::setNewValueFromDateArgs):
696 (JSC::dateProtoFuncSetYear):
697 * runtime/ErrorConstructor.cpp:
698 (JSC::ErrorConstructor::ErrorConstructor):
699 * runtime/ErrorInstance.cpp:
700 (JSC::ErrorInstance::ErrorInstance):
701 * runtime/ErrorPrototype.cpp:
702 (JSC::ErrorPrototype::ErrorPrototype):
703 * runtime/FunctionConstructor.cpp:
704 (JSC::FunctionConstructor::FunctionConstructor):
705 * runtime/FunctionPrototype.cpp:
706 (JSC::FunctionPrototype::FunctionPrototype):
707 * runtime/GetterSetter.cpp:
708 (JSC::GetterSetter::markChildren):
709 * runtime/GetterSetter.h:
710 (JSC::GetterSetter::GetterSetter):
711 (JSC::GetterSetter::getter):
712 (JSC::GetterSetter::setGetter):
713 (JSC::GetterSetter::setter):
714 (JSC::GetterSetter::setSetter):
715 * runtime/GlobalEvalFunction.cpp:
716 (JSC::GlobalEvalFunction::GlobalEvalFunction):
717 (JSC::GlobalEvalFunction::markChildren):
718 * runtime/GlobalEvalFunction.h:
719 (JSC::GlobalEvalFunction::cachedGlobalObject):
721 (JSC::Heap::markProtectedObjects):
722 (JSC::Heap::markTempSortVectors):
723 (JSC::Heap::markRoots):
724 * runtime/InternalFunction.cpp:
725 (JSC::InternalFunction::InternalFunction):
726 * runtime/JSAPIValueWrapper.h:
727 (JSC::JSAPIValueWrapper::value):
728 (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
729 * runtime/JSActivation.cpp:
730 (JSC::JSActivation::markChildren):
731 (JSC::JSActivation::put):
732 * runtime/JSArray.cpp:
733 (JSC::JSArray::JSArray):
734 (JSC::JSArray::getOwnPropertySlot):
735 (JSC::JSArray::getOwnPropertyDescriptor):
737 (JSC::JSArray::putSlowCase):
738 (JSC::JSArray::deleteProperty):
739 (JSC::JSArray::increaseVectorLength):
740 (JSC::JSArray::setLength):
742 (JSC::JSArray::push):
743 (JSC::JSArray::unshiftCount):
744 (JSC::JSArray::sort):
745 (JSC::JSArray::fillArgList):
746 (JSC::JSArray::copyToRegisters):
747 (JSC::JSArray::compactForSorting):
749 (JSC::JSArray::getIndex):
750 (JSC::JSArray::setIndex):
751 (JSC::JSArray::uncheckedSetIndex):
752 (JSC::JSArray::markChildrenDirect):
753 * runtime/JSByteArray.cpp:
754 (JSC::JSByteArray::JSByteArray):
756 (JSC::JSCell::JSValue::toThisObject):
757 (JSC::JSCell::MarkStack::append):
758 * runtime/JSFunction.cpp:
759 (JSC::JSFunction::JSFunction):
760 (JSC::JSFunction::getOwnPropertySlot):
761 * runtime/JSGlobalData.h:
762 * runtime/JSGlobalObject.cpp:
764 (JSC::JSGlobalObject::reset):
765 (JSC::JSGlobalObject::resetPrototype):
766 (JSC::JSGlobalObject::markChildren):
767 * runtime/JSGlobalObject.h:
768 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
769 (JSC::JSGlobalObject::regExpConstructor):
770 (JSC::JSGlobalObject::errorConstructor):
771 (JSC::JSGlobalObject::evalErrorConstructor):
772 (JSC::JSGlobalObject::rangeErrorConstructor):
773 (JSC::JSGlobalObject::referenceErrorConstructor):
774 (JSC::JSGlobalObject::syntaxErrorConstructor):
775 (JSC::JSGlobalObject::typeErrorConstructor):
776 (JSC::JSGlobalObject::URIErrorConstructor):
777 (JSC::JSGlobalObject::evalFunction):
778 (JSC::JSGlobalObject::objectPrototype):
779 (JSC::JSGlobalObject::functionPrototype):
780 (JSC::JSGlobalObject::arrayPrototype):
781 (JSC::JSGlobalObject::booleanPrototype):
782 (JSC::JSGlobalObject::stringPrototype):
783 (JSC::JSGlobalObject::numberPrototype):
784 (JSC::JSGlobalObject::datePrototype):
785 (JSC::JSGlobalObject::regExpPrototype):
786 (JSC::JSGlobalObject::methodCallDummy):
787 (JSC::Structure::prototypeForLookup):
788 (JSC::constructArray):
789 * runtime/JSONObject.cpp:
790 (JSC::Stringifier::Holder::object):
791 (JSC::Stringifier::markAggregate):
792 (JSC::Stringifier::stringify):
793 (JSC::Stringifier::Holder::appendNextProperty):
794 (JSC::Walker::callReviver):
796 * runtime/JSObject.cpp:
797 (JSC::JSObject::defineGetter):
798 (JSC::JSObject::defineSetter):
799 (JSC::JSObject::removeDirect):
800 (JSC::JSObject::putDirectFunction):
801 (JSC::JSObject::putDirectFunctionWithoutTransition):
802 (JSC::putDescriptor):
803 (JSC::JSObject::defineOwnProperty):
804 * runtime/JSObject.h:
805 (JSC::JSObject::getDirectOffset):
806 (JSC::JSObject::putDirectOffset):
807 (JSC::JSObject::flattenDictionaryObject):
808 (JSC::JSObject::putDirectInternal):
809 (JSC::JSObject::putDirect):
810 (JSC::JSObject::putDirectFunction):
811 (JSC::JSObject::putDirectWithoutTransition):
812 (JSC::JSObject::putDirectFunctionWithoutTransition):
813 (JSC::JSValue::putDirect):
814 (JSC::JSObject::allocatePropertyStorageInline):
815 (JSC::JSObject::markChildrenDirect):
816 * runtime/JSPropertyNameIterator.cpp:
817 (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
818 (JSC::JSPropertyNameIterator::get):
819 * runtime/JSPropertyNameIterator.h:
820 * runtime/JSStaticScopeObject.cpp:
821 (JSC::JSStaticScopeObject::markChildren):
822 * runtime/JSString.cpp:
823 (JSC::StringObject::create):
825 * runtime/JSWrapperObject.cpp:
826 (JSC::JSWrapperObject::markChildren):
827 * runtime/JSWrapperObject.h:
828 (JSC::JSWrapperObject::internalValue):
829 (JSC::JSWrapperObject::setInternalValue):
830 * runtime/LiteralParser.cpp:
831 (JSC::LiteralParser::parse):
832 * runtime/Lookup.cpp:
833 (JSC::setUpStaticFunctionSlot):
836 * runtime/MarkStack.h:
837 (JSC::MarkStack::appendValues):
838 * runtime/MathObject.cpp:
839 (JSC::MathObject::MathObject):
840 * runtime/NativeErrorConstructor.cpp:
841 (JSC::NativeErrorConstructor::NativeErrorConstructor):
842 * runtime/NativeErrorPrototype.cpp:
843 (JSC::NativeErrorPrototype::NativeErrorPrototype):
844 * runtime/NumberConstructor.cpp:
845 (JSC::NumberConstructor::NumberConstructor):
846 (JSC::constructWithNumberConstructor):
847 * runtime/NumberObject.cpp:
848 (JSC::constructNumber):
849 * runtime/NumberPrototype.cpp:
850 (JSC::NumberPrototype::NumberPrototype):
851 * runtime/ObjectConstructor.cpp:
852 (JSC::ObjectConstructor::ObjectConstructor):
853 (JSC::objectConstructorGetOwnPropertyDescriptor):
854 * runtime/Operations.h:
855 (JSC::normalizePrototypeChain):
857 * runtime/PrototypeFunction.cpp:
858 (JSC::PrototypeFunction::PrototypeFunction):
859 * runtime/PutPropertySlot.h:
860 (JSC::PutPropertySlot::setExistingProperty):
861 (JSC::PutPropertySlot::setNewProperty):
862 (JSC::PutPropertySlot::base):
863 * runtime/RegExpConstructor.cpp:
864 (JSC::RegExpConstructor::RegExpConstructor):
865 * runtime/ScopeChain.cpp:
866 (JSC::ScopeChainNode::print):
867 * runtime/ScopeChain.h:
868 (JSC::ScopeChainNode::~ScopeChainNode):
869 (JSC::ScopeChainIterator::operator*):
870 (JSC::ScopeChainIterator::operator->):
871 (JSC::ScopeChain::top):
872 * runtime/ScopeChainMark.h:
873 (JSC::ScopeChain::markAggregate):
874 * runtime/SmallStrings.cpp:
876 (JSC::SmallStrings::markChildren):
877 * runtime/SmallStrings.h:
878 (JSC::SmallStrings::emptyString):
879 (JSC::SmallStrings::singleCharacterString):
880 (JSC::SmallStrings::singleCharacterStrings):
881 * runtime/StringConstructor.cpp:
882 (JSC::StringConstructor::StringConstructor):
883 * runtime/StringObject.cpp:
884 (JSC::StringObject::StringObject):
885 * runtime/StringObject.h:
886 * runtime/StringPrototype.cpp:
887 (JSC::StringPrototype::StringPrototype):
888 * runtime/Structure.cpp:
889 (JSC::Structure::Structure):
890 (JSC::Structure::addPropertyTransition):
891 (JSC::Structure::toDictionaryTransition):
892 (JSC::Structure::flattenDictionaryStructure):
893 * runtime/Structure.h:
894 (JSC::Structure::storedPrototype):
895 * runtime/WeakGCMap.h:
896 (JSC::WeakGCMap::uncheckedGet):
897 (JSC::WeakGCMap::isValid):
901 (JSC::::uncheckedRemove):
902 * runtime/WriteBarrier.h: Removed.
904 2011-01-30 Simon Fraser <simon.fraser@apple.com>
906 Build fix the build fix. I assume Oliver meant m_cell, not m_value.
908 * runtime/WriteBarrier.h:
909 (JSC::WriteBarrierBase::clear):
911 2011-01-30 Oliver Hunt <oliver@apple.com>
915 * runtime/WriteBarrier.h:
916 (JSC::WriteBarrierBase::clear):
918 2011-01-30 Oliver Hunt <oliver@apple.com>
920 Convert markstack to a slot visitor API
921 https://bugs.webkit.org/show_bug.cgi?id=53219
923 rolling r77006 and r77020 back in.
925 * API/JSCallbackObject.h:
926 (JSC::JSCallbackObjectData::setPrivateProperty):
927 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
928 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
929 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
930 (JSC::JSCallbackObject::setPrivateProperty):
931 * API/JSCallbackObjectFunctions.h:
933 (JSC::::staticFunctionGetter):
934 * API/JSObjectRef.cpp:
935 (JSObjectMakeConstructor):
936 (JSObjectSetPrivateProperty):
937 * API/JSWeakObjectMapRefInternal.h:
938 * JavaScriptCore.exp:
939 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
940 * JavaScriptCore.xcodeproj/project.pbxproj:
941 * bytecode/CodeBlock.cpp:
942 (JSC::CodeBlock::markAggregate):
943 * bytecode/CodeBlock.h:
944 (JSC::CodeBlock::globalObject):
945 * bytecompiler/BytecodeGenerator.cpp:
946 (JSC::BytecodeGenerator::BytecodeGenerator):
947 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
948 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
949 (JSC::BytecodeGenerator::findScopedProperty):
950 * debugger/Debugger.cpp:
951 (JSC::evaluateInGlobalCallFrame):
952 * debugger/DebuggerActivation.cpp:
953 (JSC::DebuggerActivation::DebuggerActivation):
954 (JSC::DebuggerActivation::markChildren):
955 * debugger/DebuggerActivation.h:
956 * debugger/DebuggerCallFrame.cpp:
957 (JSC::DebuggerCallFrame::evaluate):
958 * interpreter/CallFrame.h:
959 (JSC::ExecState::exception):
960 * interpreter/Interpreter.cpp:
961 (JSC::Interpreter::resolve):
962 (JSC::Interpreter::resolveSkip):
963 (JSC::Interpreter::resolveGlobal):
964 (JSC::Interpreter::resolveGlobalDynamic):
965 (JSC::Interpreter::resolveBaseAndProperty):
966 (JSC::Interpreter::unwindCallFrame):
967 (JSC::appendSourceToError):
968 (JSC::Interpreter::execute):
969 (JSC::Interpreter::tryCacheGetByID):
970 (JSC::Interpreter::privateExecute):
972 (JSC::JITThunks::tryCacheGetByID):
973 (JSC::DEFINE_STUB_FUNCTION):
975 (GlobalObject::GlobalObject):
976 * runtime/ArgList.cpp:
977 (JSC::MarkedArgumentBuffer::markLists):
978 * runtime/Arguments.cpp:
979 (JSC::Arguments::markChildren):
980 (JSC::Arguments::getOwnPropertySlot):
981 (JSC::Arguments::getOwnPropertyDescriptor):
982 (JSC::Arguments::put):
983 * runtime/Arguments.h:
984 (JSC::Arguments::setActivation):
985 (JSC::Arguments::Arguments):
986 * runtime/ArrayConstructor.cpp:
987 (JSC::ArrayConstructor::ArrayConstructor):
988 (JSC::constructArrayWithSizeQuirk):
989 * runtime/ArrayPrototype.cpp:
990 (JSC::arrayProtoFuncSplice):
991 * runtime/BatchedTransitionOptimizer.h:
992 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
993 (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
994 * runtime/BooleanConstructor.cpp:
995 (JSC::BooleanConstructor::BooleanConstructor):
996 (JSC::constructBoolean):
997 (JSC::constructBooleanFromImmediateBoolean):
998 * runtime/BooleanPrototype.cpp:
999 (JSC::BooleanPrototype::BooleanPrototype):
1000 * runtime/ConservativeSet.cpp:
1001 (JSC::ConservativeSet::grow):
1002 * runtime/ConservativeSet.h:
1003 (JSC::ConservativeSet::~ConservativeSet):
1004 (JSC::ConservativeSet::mark):
1005 * runtime/DateConstructor.cpp:
1006 (JSC::DateConstructor::DateConstructor):
1007 * runtime/DateInstance.cpp:
1008 (JSC::DateInstance::DateInstance):
1009 * runtime/DatePrototype.cpp:
1010 (JSC::dateProtoFuncSetTime):
1011 (JSC::setNewValueFromTimeArgs):
1012 (JSC::setNewValueFromDateArgs):
1013 (JSC::dateProtoFuncSetYear):
1014 * runtime/ErrorConstructor.cpp:
1015 (JSC::ErrorConstructor::ErrorConstructor):
1016 * runtime/ErrorInstance.cpp:
1017 (JSC::ErrorInstance::ErrorInstance):
1018 * runtime/ErrorPrototype.cpp:
1019 (JSC::ErrorPrototype::ErrorPrototype):
1020 * runtime/FunctionConstructor.cpp:
1021 (JSC::FunctionConstructor::FunctionConstructor):
1022 * runtime/FunctionPrototype.cpp:
1023 (JSC::FunctionPrototype::FunctionPrototype):
1024 * runtime/GetterSetter.cpp:
1025 (JSC::GetterSetter::markChildren):
1026 * runtime/GetterSetter.h:
1027 (JSC::GetterSetter::GetterSetter):
1028 (JSC::GetterSetter::getter):
1029 (JSC::GetterSetter::setGetter):
1030 (JSC::GetterSetter::setter):
1031 (JSC::GetterSetter::setSetter):
1032 * runtime/GlobalEvalFunction.cpp:
1033 (JSC::GlobalEvalFunction::GlobalEvalFunction):
1034 (JSC::GlobalEvalFunction::markChildren):
1035 * runtime/GlobalEvalFunction.h:
1036 (JSC::GlobalEvalFunction::cachedGlobalObject):
1038 (JSC::Heap::markProtectedObjects):
1039 (JSC::Heap::markTempSortVectors):
1040 (JSC::Heap::markRoots):
1041 * runtime/InternalFunction.cpp:
1042 (JSC::InternalFunction::InternalFunction):
1043 * runtime/JSAPIValueWrapper.h:
1044 (JSC::JSAPIValueWrapper::value):
1045 (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
1046 * runtime/JSActivation.cpp:
1047 (JSC::JSActivation::markChildren):
1048 (JSC::JSActivation::put):
1049 * runtime/JSArray.cpp:
1050 (JSC::JSArray::JSArray):
1051 (JSC::JSArray::getOwnPropertySlot):
1052 (JSC::JSArray::getOwnPropertyDescriptor):
1053 (JSC::JSArray::put):
1054 (JSC::JSArray::putSlowCase):
1055 (JSC::JSArray::deleteProperty):
1056 (JSC::JSArray::increaseVectorLength):
1057 (JSC::JSArray::setLength):
1058 (JSC::JSArray::pop):
1059 (JSC::JSArray::push):
1060 (JSC::JSArray::unshiftCount):
1061 (JSC::JSArray::sort):
1062 (JSC::JSArray::fillArgList):
1063 (JSC::JSArray::copyToRegisters):
1064 (JSC::JSArray::compactForSorting):
1065 * runtime/JSArray.h:
1066 (JSC::JSArray::getIndex):
1067 (JSC::JSArray::setIndex):
1068 (JSC::JSArray::uncheckedSetIndex):
1069 (JSC::JSArray::markChildrenDirect):
1070 * runtime/JSByteArray.cpp:
1071 (JSC::JSByteArray::JSByteArray):
1073 (JSC::JSCell::MarkStack::append):
1074 (JSC::JSCell::MarkStack::internalAppend):
1075 (JSC::JSCell::MarkStack::deprecatedAppend):
1076 * runtime/JSFunction.cpp:
1077 (JSC::JSFunction::JSFunction):
1078 (JSC::JSFunction::getOwnPropertySlot):
1079 * runtime/JSGlobalData.h:
1080 * runtime/JSGlobalObject.cpp:
1081 (JSC::markIfNeeded):
1082 (JSC::JSGlobalObject::reset):
1083 (JSC::JSGlobalObject::resetPrototype):
1084 (JSC::JSGlobalObject::markChildren):
1085 * runtime/JSGlobalObject.h:
1086 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
1087 (JSC::JSGlobalObject::regExpConstructor):
1088 (JSC::JSGlobalObject::errorConstructor):
1089 (JSC::JSGlobalObject::evalErrorConstructor):
1090 (JSC::JSGlobalObject::rangeErrorConstructor):
1091 (JSC::JSGlobalObject::referenceErrorConstructor):
1092 (JSC::JSGlobalObject::syntaxErrorConstructor):
1093 (JSC::JSGlobalObject::typeErrorConstructor):
1094 (JSC::JSGlobalObject::URIErrorConstructor):
1095 (JSC::JSGlobalObject::evalFunction):
1096 (JSC::JSGlobalObject::objectPrototype):
1097 (JSC::JSGlobalObject::functionPrototype):
1098 (JSC::JSGlobalObject::arrayPrototype):
1099 (JSC::JSGlobalObject::booleanPrototype):
1100 (JSC::JSGlobalObject::stringPrototype):
1101 (JSC::JSGlobalObject::numberPrototype):
1102 (JSC::JSGlobalObject::datePrototype):
1103 (JSC::JSGlobalObject::regExpPrototype):
1104 (JSC::JSGlobalObject::methodCallDummy):
1105 (JSC::Structure::prototypeForLookup):
1106 (JSC::constructArray):
1107 * runtime/JSONObject.cpp:
1108 (JSC::Stringifier::Holder::object):
1109 (JSC::Stringifier::Holder::objectSlot):
1110 (JSC::Stringifier::markAggregate):
1111 (JSC::Stringifier::stringify):
1112 (JSC::Stringifier::Holder::appendNextProperty):
1113 (JSC::Walker::callReviver):
1114 (JSC::Walker::walk):
1115 * runtime/JSObject.cpp:
1116 (JSC::JSObject::defineGetter):
1117 (JSC::JSObject::defineSetter):
1118 (JSC::JSObject::removeDirect):
1119 (JSC::JSObject::putDirectFunction):
1120 (JSC::JSObject::putDirectFunctionWithoutTransition):
1121 (JSC::putDescriptor):
1122 (JSC::JSObject::defineOwnProperty):
1123 * runtime/JSObject.h:
1124 (JSC::JSObject::getDirectOffset):
1125 (JSC::JSObject::putDirectOffset):
1126 (JSC::JSObject::putUndefinedAtDirectOffset):
1127 (JSC::JSObject::flattenDictionaryObject):
1128 (JSC::JSObject::putDirectInternal):
1129 (JSC::JSObject::putDirect):
1130 (JSC::JSObject::putDirectFunction):
1131 (JSC::JSObject::putDirectWithoutTransition):
1132 (JSC::JSObject::putDirectFunctionWithoutTransition):
1133 (JSC::JSValue::putDirect):
1134 (JSC::JSObject::allocatePropertyStorageInline):
1135 (JSC::JSObject::markChildrenDirect):
1136 * runtime/JSPropertyNameIterator.cpp:
1137 (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
1138 (JSC::JSPropertyNameIterator::get):
1139 * runtime/JSPropertyNameIterator.h:
1140 * runtime/JSStaticScopeObject.cpp:
1141 (JSC::JSStaticScopeObject::markChildren):
1142 * runtime/JSString.cpp:
1143 (JSC::StringObject::create):
1144 * runtime/JSValue.h:
1145 * runtime/JSWrapperObject.cpp:
1146 (JSC::JSWrapperObject::markChildren):
1147 * runtime/JSWrapperObject.h:
1148 (JSC::JSWrapperObject::internalValue):
1149 (JSC::JSWrapperObject::setInternalValue):
1150 * runtime/LiteralParser.cpp:
1151 (JSC::LiteralParser::parse):
1152 * runtime/Lookup.cpp:
1153 (JSC::setUpStaticFunctionSlot):
1156 * runtime/MarkStack.h:
1157 (JSC::MarkStack::MarkStack):
1158 (JSC::MarkStack::deprecatedAppendValues):
1159 (JSC::MarkStack::appendValues):
1160 * runtime/MathObject.cpp:
1161 (JSC::MathObject::MathObject):
1162 * runtime/NativeErrorConstructor.cpp:
1163 (JSC::NativeErrorConstructor::NativeErrorConstructor):
1164 * runtime/NativeErrorPrototype.cpp:
1165 (JSC::NativeErrorPrototype::NativeErrorPrototype):
1166 * runtime/NumberConstructor.cpp:
1167 (JSC::NumberConstructor::NumberConstructor):
1168 (JSC::constructWithNumberConstructor):
1169 * runtime/NumberObject.cpp:
1170 (JSC::constructNumber):
1171 * runtime/NumberPrototype.cpp:
1172 (JSC::NumberPrototype::NumberPrototype):
1173 * runtime/ObjectConstructor.cpp:
1174 (JSC::ObjectConstructor::ObjectConstructor):
1175 (JSC::objectConstructorGetOwnPropertyDescriptor):
1176 * runtime/Operations.h:
1177 (JSC::normalizePrototypeChain):
1179 * runtime/PrototypeFunction.cpp:
1180 (JSC::PrototypeFunction::PrototypeFunction):
1181 * runtime/PutPropertySlot.h:
1182 (JSC::PutPropertySlot::setExistingProperty):
1183 (JSC::PutPropertySlot::setNewProperty):
1184 (JSC::PutPropertySlot::base):
1185 * runtime/RegExpConstructor.cpp:
1186 (JSC::RegExpConstructor::RegExpConstructor):
1187 * runtime/ScopeChain.cpp:
1188 (JSC::ScopeChainNode::print):
1189 * runtime/ScopeChain.h:
1190 (JSC::ScopeChainNode::~ScopeChainNode):
1191 (JSC::ScopeChainIterator::operator*):
1192 (JSC::ScopeChainIterator::operator->):
1193 (JSC::ScopeChain::top):
1194 * runtime/ScopeChainMark.h:
1195 (JSC::ScopeChain::markAggregate):
1196 * runtime/SmallStrings.cpp:
1198 (JSC::SmallStrings::markChildren):
1199 * runtime/SmallStrings.h:
1200 (JSC::SmallStrings::emptyString):
1201 (JSC::SmallStrings::singleCharacterString):
1202 (JSC::SmallStrings::singleCharacterStrings):
1203 * runtime/StringConstructor.cpp:
1204 (JSC::StringConstructor::StringConstructor):
1205 * runtime/StringObject.cpp:
1206 (JSC::StringObject::StringObject):
1207 * runtime/StringObject.h:
1208 * runtime/StringPrototype.cpp:
1209 (JSC::StringPrototype::StringPrototype):
1210 * runtime/Structure.cpp:
1211 (JSC::Structure::Structure):
1212 (JSC::Structure::addPropertyTransition):
1213 (JSC::Structure::toDictionaryTransition):
1214 (JSC::Structure::flattenDictionaryStructure):
1215 * runtime/Structure.h:
1216 (JSC::Structure::storedPrototype):
1217 (JSC::Structure::storedPrototypeSlot):
1218 * runtime/WeakGCMap.h:
1219 (JSC::WeakGCMap::uncheckedGet):
1220 (JSC::WeakGCMap::uncheckedGetSlot):
1221 (JSC::WeakGCMap::isValid):
1225 (JSC::::uncheckedRemove):
1226 * runtime/WriteBarrier.h: Added.
1227 (JSC::DeprecatedPtr::DeprecatedPtr):
1228 (JSC::DeprecatedPtr::get):
1229 (JSC::DeprecatedPtr::operator*):
1230 (JSC::DeprecatedPtr::operator->):
1231 (JSC::DeprecatedPtr::slot):
1232 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
1233 (JSC::DeprecatedPtr::operator!):
1234 (JSC::WriteBarrierBase::set):
1235 (JSC::WriteBarrierBase::get):
1236 (JSC::WriteBarrierBase::operator*):
1237 (JSC::WriteBarrierBase::operator->):
1238 (JSC::WriteBarrierBase::slot):
1239 (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
1240 (JSC::WriteBarrierBase::operator!):
1241 (JSC::WriteBarrier::WriteBarrier):
1244 2011-01-30 Geoffrey Garen <ggaren@apple.com>
1246 Reviewed by Oliver Hunt.
1248 Filter all Heap collection through a common reset function, in
1249 preparation for adding features triggered by collection.
1250 https://bugs.webkit.org/show_bug.cgi?id=53396
1252 SunSpider reports no change.
1255 (JSC::Heap::reportExtraMemoryCostSlowCase): When we're over the extraCost
1256 limit, just call collectAllGarbage() instead of rolling our own special
1257 way of resetting the heap. In theory, this may be slower in some cases,
1258 but it also fixes cases of pathological heap growth that we've seen,
1259 where the only objects being allocated are temporary and huge
1260 (<rdar://problem/8885843>).
1262 (JSC::Heap::allocate):
1263 (JSC::Heap::collectAllGarbage): Use the shared reset function.
1266 * runtime/Heap.h: Carved a new shared reset function out of the old
1269 2011-01-30 Sheriff Bot <webkit.review.bot@gmail.com>
1271 Unreviewed, rolling out r77025.
1272 http://trac.webkit.org/changeset/77025
1273 https://bugs.webkit.org/show_bug.cgi?id=53401
1275 It made js1_5/Regress/regress-159334.js fail on 64 bit Linux
1276 (Requested by Ossy on #webkit).
1278 * jit/ExecutableAllocatorFixedVMPool.cpp:
1279 (JSC::FreeListEntry::FreeListEntry):
1280 (JSC::AVLTreeAbstractorForFreeList::get_less):
1281 (JSC::AVLTreeAbstractorForFreeList::set_less):
1282 (JSC::AVLTreeAbstractorForFreeList::get_greater):
1283 (JSC::AVLTreeAbstractorForFreeList::set_greater):
1284 (JSC::AVLTreeAbstractorForFreeList::get_balance_factor):
1285 (JSC::AVLTreeAbstractorForFreeList::set_balance_factor):
1286 (JSC::AVLTreeAbstractorForFreeList::null):
1287 (JSC::AVLTreeAbstractorForFreeList::compare_key_key):
1288 (JSC::AVLTreeAbstractorForFreeList::compare_key_node):
1289 (JSC::AVLTreeAbstractorForFreeList::compare_node_node):
1290 (JSC::reverseSortFreeListEntriesByPointer):
1291 (JSC::reverseSortCommonSizedAllocations):
1292 (JSC::FixedVMPoolAllocator::release):
1293 (JSC::FixedVMPoolAllocator::reuse):
1294 (JSC::FixedVMPoolAllocator::addToFreeList):
1295 (JSC::FixedVMPoolAllocator::coalesceFreeSpace):
1296 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1297 (JSC::FixedVMPoolAllocator::alloc):
1298 (JSC::FixedVMPoolAllocator::free):
1299 (JSC::FixedVMPoolAllocator::isValid):
1300 (JSC::FixedVMPoolAllocator::allocInternal):
1301 (JSC::FixedVMPoolAllocator::isWithinVMPool):
1302 (JSC::FixedVMPoolAllocator::addToCommittedByteCount):
1303 (JSC::ExecutableAllocator::committedByteCount):
1304 (JSC::maybeModifyVMPoolSize):
1305 (JSC::ExecutableAllocator::isValid):
1306 (JSC::ExecutableAllocator::underMemoryPressure):
1307 (JSC::ExecutablePool::systemAlloc):
1308 (JSC::ExecutablePool::systemRelease):
1309 * wtf/PageReservation.h:
1310 (WTF::PageReservation::PageReservation):
1311 (WTF::PageReservation::commit):
1312 (WTF::PageReservation::decommit):
1314 2011-01-30 Leo Yang <leo.yang@torchmobile.com.cn>
1316 Reviewed by Daniel Bates.
1318 Code style issue in JavaScriptCore/wtf/CurrentTime.h
1319 https://bugs.webkit.org/show_bug.cgi?id=53394
1321 According to rule #3 at http://webkit.org/coding/coding-style.html,
1322 This patch fix style issue in CurrentTime.h.
1324 No functionality change, no new tests.
1326 * wtf/CurrentTime.h:
1327 (WTF::currentTimeMS):
1328 (WTF::getLocalTime):
1330 2011-01-30 Benjamin Poulain <ikipou@gmail.com>
1332 Reviewed by Kenneth Rohde Christiansen.
1334 [Qt] JavaScriptCore does not link on Mac if building WebKit 2
1335 https://bugs.webkit.org/show_bug.cgi?id=53377
1337 The option "-whole-archive" is not availabe with the libtool of Mac OS X,
1338 instead, we can use "-all_load" on Mac.
1340 * JavaScriptCore.pri:
1342 2011-01-29 Geoffrey Garen <ggaren@apple.com>
1344 Sorry Leopard bot -- I committed a change by accident.
1346 * JavaScriptCore.exp: You may have your symbols back now.
1348 2011-01-29 Geoffrey Garen <ggaren@apple.com>
1350 Reviewed by Cameron Zwarich.
1352 Simplified Heap iteration
1353 https://bugs.webkit.org/show_bug.cgi?id=53393
1355 * runtime/CollectorHeapIterator.h:
1356 (JSC::CollectorHeapIterator::isValid):
1357 (JSC::CollectorHeapIterator::isLive):
1358 (JSC::CollectorHeapIterator::advance): Removed "max" argument to
1359 advance because it's a constant.
1360 (JSC::LiveObjectIterator::LiveObjectIterator):
1361 (JSC::LiveObjectIterator::operator++):
1362 (JSC::DeadObjectIterator::DeadObjectIterator):
1363 (JSC::DeadObjectIterator::operator++):
1364 (JSC::ObjectIterator::ObjectIterator):
1365 (JSC::ObjectIterator::operator++): Factored out common checks into
1366 two helper functions -- isValid() for "Am I past the end?" and isLive()
1367 for "Is the cell I'm pointing to live?".
1369 * runtime/MarkedSpace.cpp:
1370 (JSC::MarkedSpace::freeBlock):
1371 (JSC::MarkedSpace::sweep): Always sweep from the beginning of the heap
1372 to the end, to avoid making sweep subtly reliant on internal Heap state.
1373 (JSC::MarkedSpace::primaryHeapBegin):
1374 (JSC::MarkedSpace::primaryHeapEnd): Always be explicit about where
1377 2011-01-29 Geoffrey Garen <ggaren@apple.com>
1379 Reviewed by Cameron Zwarich.
1381 Simplified heap destruction
1382 https://bugs.webkit.org/show_bug.cgi?id=53392
1384 * JavaScriptCore.exp:
1386 (JSC::Heap::destroy):
1388 * runtime/MarkedSpace.cpp:
1389 (JSC::MarkedSpace::destroy):
1390 * runtime/MarkedSpace.h: Don't go out of our way to destroy GC-protected
1391 cells last -- the difficult contortions required to do so just don't seem
1392 justified. We make no guarantees about GC protection after the client
1393 throws away JSGlobalData, and it doesn't seem like any meaningful
1394 guarantee is even possible.
1396 2011-01-29 Geoffrey Garen <ggaren@apple.com>
1398 Reviewed by Maciej Stachowiak.
1400 Switched heap to use the Bitmap class and removed CollectorBitmap
1401 https://bugs.webkit.org/show_bug.cgi?id=53391
1403 SunSpider says 1.005x as fast. Seems like a fluke.
1405 * runtime/MarkedSpace.cpp:
1406 (JSC::MarkedSpace::allocate): Updated for rename and returning a value
1407 rather than taking a value by reference.
1409 * runtime/MarkedSpace.h: Code reuse is good.
1412 (WTF::::testAndSet): Added, since this is the one thing Bitmap was missing
1413 which CollectorBitmap had. (Renamed from the less conventional "getset".)
1415 (WTF::::nextPossiblyUnset): Renamed and changed to return a value for
1416 clarity. It's all the same with inlining.
1418 2011-01-28 Geoffrey Garen <ggaren@apple.com>
1420 Reviewed by Maciej Stachowiak.
1422 Some more Heap cleanup.
1423 https://bugs.webkit.org/show_bug.cgi?id=53357
1425 * JavaScriptCore.exp:
1426 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Updated exported symbols.
1429 (JSC::Heap::reportExtraMemoryCostSlowCase): Renamed recordExtraCost to
1430 reportExtraMemoryCostSlowCase to match our naming conventions.
1432 (JSC::Heap::capacity): Renamed size to capacity because this function
1433 returns the capacity of the heap, including unused portions.
1436 (JSC::Heap::globalData):
1437 (JSC::Heap::markedSpace):
1438 (JSC::Heap::machineStackMarker):
1439 (JSC::Heap::reportExtraMemoryCost): Moved statics to the top of the file.
1440 Moved ctor and dtor to the beginning of the class definition. Grouped
1441 functions by purpose.
1443 * runtime/MarkedSpace.cpp:
1444 (JSC::MarkedSpace::capacity): Renamed size to capacity because this
1445 function returns the capacity of the heap, including unused portions.
1447 * runtime/MarkedSpace.h: Removed statistics and the Statistics class because
1448 the same information can be gotten just by calling size() and capacity().
1450 * runtime/MemoryStatistics.cpp:
1451 * runtime/MemoryStatistics.h: Ditto.
1453 2011-01-29 Daniel Bates <dbates@rim.com>
1455 Reviewed by Eric Seidel.
1457 Move wince/mt19937ar.c to ThirdParty and make it a policy choice
1458 https://bugs.webkit.org/show_bug.cgi?id=53253
1460 Make inclusion of MT19937 a policy decision.
1462 Currently, we hardcoded to use MT19937 when building for
1463 Windows CE. Instead, we should make this a policy decision
1464 with the Windows CE port using this by default.
1466 * JavaScriptCore.pri: Append Source/ThirdParty to the end
1467 of the list include directories.
1468 * wtf/CMakeLists.txt: Ditto.
1469 * wtf/Platform.h: Defined WTF_USE_MERSENNE_TWISTER_19937 when
1470 building for Windows CE.
1471 * wtf/RandomNumber.cpp:
1472 (WTF::randomNumber): Substituted USE(MERSENNE_TWISTER_19937) for OS(WINCE).
1474 2011-01-29 Cameron Zwarich <zwarich@apple.com>
1476 Reviewed by David Kilzer.
1478 Bug 53374 - Remove uses of unsafe string functions in debugging code
1479 https://bugs.webkit.org/show_bug.cgi?id=53374
1481 * runtime/RegExp.cpp:
1482 (JSC::RegExp::printTraceData):
1484 2011-01-29 Cameron Zwarich <zwarich@apple.com>
1486 Reviewed by Oliver Hunt.
1488 JavaScriptCoreUseJIT environment variable broken
1489 https://bugs.webkit.org/show_bug.cgi?id=53372
1491 * runtime/JSGlobalData.cpp:
1492 (JSC::JSGlobalData::JSGlobalData): Check the actual value in the string returned
1493 by getenv() rather than just doing a NULL check on the return value.
1495 2011-01-29 Patrick Gansterer <paroga@webkit.org>
1497 Reviewed by David Kilzer.
1499 Move CharacterNames.h into WTF directory
1500 https://bugs.webkit.org/show_bug.cgi?id=49618
1503 * JavaScriptCore.gypi:
1504 * JavaScriptCore.vcproj/WTF/WTF.vcproj:
1505 * JavaScriptCore.xcodeproj/project.pbxproj:
1506 * wtf/CMakeLists.txt:
1507 * wtf/unicode/CharacterNames.h: Renamed from WebCore/platform/text/CharacterNames.h.
1508 * wtf/unicode/UTF8.cpp:
1510 2011-01-28 Simon Fraser <simon.fraser@apple.com>
1512 Reviewed by Gavin Barraclough.
1514 Add various clampToInt() methods to MathExtras.h
1515 https://bugs.webkit.org/show_bug.cgi?id=52910
1517 Add functions for clamping doubles and floats to valid int
1518 ranges, for signed and positive integers.
1522 (clampToPositiveInteger):
1524 2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
1526 Unreviewed, rolling out r77006 and r77020.
1527 http://trac.webkit.org/changeset/77006
1528 http://trac.webkit.org/changeset/77020
1529 https://bugs.webkit.org/show_bug.cgi?id=53360
1531 "Broke Windows tests" (Requested by rniwa on #webkit).
1533 * API/JSCallbackObject.h:
1534 (JSC::JSCallbackObjectData::setPrivateProperty):
1535 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
1536 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
1537 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
1538 (JSC::JSCallbackObject::setPrivateProperty):
1539 * API/JSCallbackObjectFunctions.h:
1541 (JSC::::staticFunctionGetter):
1542 * API/JSObjectRef.cpp:
1543 (JSObjectMakeConstructor):
1544 (JSObjectSetPrivateProperty):
1545 * API/JSWeakObjectMapRefInternal.h:
1546 * JavaScriptCore.exp:
1547 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1548 * JavaScriptCore.xcodeproj/project.pbxproj:
1549 * bytecode/CodeBlock.cpp:
1550 (JSC::CodeBlock::markAggregate):
1551 * bytecode/CodeBlock.h:
1552 (JSC::CodeBlock::globalObject):
1553 * bytecompiler/BytecodeGenerator.cpp:
1554 (JSC::BytecodeGenerator::BytecodeGenerator):
1555 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
1556 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
1557 (JSC::BytecodeGenerator::findScopedProperty):
1558 * debugger/Debugger.cpp:
1559 (JSC::evaluateInGlobalCallFrame):
1560 * debugger/DebuggerActivation.cpp:
1561 (JSC::DebuggerActivation::DebuggerActivation):
1562 (JSC::DebuggerActivation::markChildren):
1563 * debugger/DebuggerActivation.h:
1564 * debugger/DebuggerCallFrame.cpp:
1565 (JSC::DebuggerCallFrame::evaluate):
1566 * interpreter/CallFrame.h:
1567 (JSC::ExecState::exception):
1568 * interpreter/Interpreter.cpp:
1569 (JSC::Interpreter::resolve):
1570 (JSC::Interpreter::resolveSkip):
1571 (JSC::Interpreter::resolveGlobal):
1572 (JSC::Interpreter::resolveGlobalDynamic):
1573 (JSC::Interpreter::resolveBaseAndProperty):
1574 (JSC::Interpreter::unwindCallFrame):
1575 (JSC::appendSourceToError):
1576 (JSC::Interpreter::execute):
1577 (JSC::Interpreter::tryCacheGetByID):
1578 (JSC::Interpreter::privateExecute):
1580 (JSC::JITThunks::tryCacheGetByID):
1581 (JSC::DEFINE_STUB_FUNCTION):
1583 (GlobalObject::GlobalObject):
1584 * runtime/ArgList.cpp:
1585 (JSC::MarkedArgumentBuffer::markLists):
1586 * runtime/Arguments.cpp:
1587 (JSC::Arguments::markChildren):
1588 (JSC::Arguments::getOwnPropertySlot):
1589 (JSC::Arguments::getOwnPropertyDescriptor):
1590 (JSC::Arguments::put):
1591 * runtime/Arguments.h:
1592 (JSC::Arguments::setActivation):
1593 (JSC::Arguments::Arguments):
1594 * runtime/ArrayConstructor.cpp:
1595 (JSC::ArrayConstructor::ArrayConstructor):
1596 (JSC::constructArrayWithSizeQuirk):
1597 * runtime/ArrayPrototype.cpp:
1598 (JSC::arrayProtoFuncSplice):
1599 * runtime/BatchedTransitionOptimizer.h:
1600 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
1601 (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
1602 * runtime/BooleanConstructor.cpp:
1603 (JSC::BooleanConstructor::BooleanConstructor):
1604 (JSC::constructBoolean):
1605 (JSC::constructBooleanFromImmediateBoolean):
1606 * runtime/BooleanPrototype.cpp:
1607 (JSC::BooleanPrototype::BooleanPrototype):
1608 * runtime/ConservativeSet.cpp:
1609 (JSC::ConservativeSet::grow):
1610 * runtime/ConservativeSet.h:
1611 (JSC::ConservativeSet::~ConservativeSet):
1612 (JSC::ConservativeSet::mark):
1613 * runtime/DateConstructor.cpp:
1614 (JSC::DateConstructor::DateConstructor):
1615 * runtime/DateInstance.cpp:
1616 (JSC::DateInstance::DateInstance):
1617 * runtime/DatePrototype.cpp:
1618 (JSC::dateProtoFuncSetTime):
1619 (JSC::setNewValueFromTimeArgs):
1620 (JSC::setNewValueFromDateArgs):
1621 (JSC::dateProtoFuncSetYear):
1622 * runtime/ErrorConstructor.cpp:
1623 (JSC::ErrorConstructor::ErrorConstructor):
1624 * runtime/ErrorInstance.cpp:
1625 (JSC::ErrorInstance::ErrorInstance):
1626 * runtime/ErrorPrototype.cpp:
1627 (JSC::ErrorPrototype::ErrorPrototype):
1628 * runtime/FunctionConstructor.cpp:
1629 (JSC::FunctionConstructor::FunctionConstructor):
1630 * runtime/FunctionPrototype.cpp:
1631 (JSC::FunctionPrototype::FunctionPrototype):
1632 * runtime/GetterSetter.cpp:
1633 (JSC::GetterSetter::markChildren):
1634 * runtime/GetterSetter.h:
1635 (JSC::GetterSetter::GetterSetter):
1636 (JSC::GetterSetter::getter):
1637 (JSC::GetterSetter::setGetter):
1638 (JSC::GetterSetter::setter):
1639 (JSC::GetterSetter::setSetter):
1640 * runtime/GlobalEvalFunction.cpp:
1641 (JSC::GlobalEvalFunction::GlobalEvalFunction):
1642 (JSC::GlobalEvalFunction::markChildren):
1643 * runtime/GlobalEvalFunction.h:
1644 (JSC::GlobalEvalFunction::cachedGlobalObject):
1646 (JSC::Heap::markProtectedObjects):
1647 (JSC::Heap::markTempSortVectors):
1648 (JSC::Heap::markRoots):
1649 * runtime/InternalFunction.cpp:
1650 (JSC::InternalFunction::InternalFunction):
1651 * runtime/JSAPIValueWrapper.h:
1652 (JSC::JSAPIValueWrapper::value):
1653 (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
1654 * runtime/JSActivation.cpp:
1655 (JSC::JSActivation::markChildren):
1656 (JSC::JSActivation::put):
1657 * runtime/JSArray.cpp:
1658 (JSC::JSArray::JSArray):
1659 (JSC::JSArray::getOwnPropertySlot):
1660 (JSC::JSArray::getOwnPropertyDescriptor):
1661 (JSC::JSArray::put):
1662 (JSC::JSArray::putSlowCase):
1663 (JSC::JSArray::deleteProperty):
1664 (JSC::JSArray::increaseVectorLength):
1665 (JSC::JSArray::setLength):
1666 (JSC::JSArray::pop):
1667 (JSC::JSArray::push):
1668 (JSC::JSArray::unshiftCount):
1669 (JSC::JSArray::sort):
1670 (JSC::JSArray::fillArgList):
1671 (JSC::JSArray::copyToRegisters):
1672 (JSC::JSArray::compactForSorting):
1673 * runtime/JSArray.h:
1674 (JSC::JSArray::getIndex):
1675 (JSC::JSArray::setIndex):
1676 (JSC::JSArray::uncheckedSetIndex):
1677 (JSC::JSArray::markChildrenDirect):
1678 * runtime/JSByteArray.cpp:
1679 (JSC::JSByteArray::JSByteArray):
1681 (JSC::JSCell::JSValue::toThisObject):
1682 (JSC::JSCell::MarkStack::append):
1683 * runtime/JSFunction.cpp:
1684 (JSC::JSFunction::JSFunction):
1685 (JSC::JSFunction::getOwnPropertySlot):
1686 * runtime/JSGlobalData.h:
1687 * runtime/JSGlobalObject.cpp:
1688 (JSC::markIfNeeded):
1689 (JSC::JSGlobalObject::reset):
1690 (JSC::JSGlobalObject::resetPrototype):
1691 (JSC::JSGlobalObject::markChildren):
1692 * runtime/JSGlobalObject.h:
1693 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
1694 (JSC::JSGlobalObject::regExpConstructor):
1695 (JSC::JSGlobalObject::errorConstructor):
1696 (JSC::JSGlobalObject::evalErrorConstructor):
1697 (JSC::JSGlobalObject::rangeErrorConstructor):
1698 (JSC::JSGlobalObject::referenceErrorConstructor):
1699 (JSC::JSGlobalObject::syntaxErrorConstructor):
1700 (JSC::JSGlobalObject::typeErrorConstructor):
1701 (JSC::JSGlobalObject::URIErrorConstructor):
1702 (JSC::JSGlobalObject::evalFunction):
1703 (JSC::JSGlobalObject::objectPrototype):
1704 (JSC::JSGlobalObject::functionPrototype):
1705 (JSC::JSGlobalObject::arrayPrototype):
1706 (JSC::JSGlobalObject::booleanPrototype):
1707 (JSC::JSGlobalObject::stringPrototype):
1708 (JSC::JSGlobalObject::numberPrototype):
1709 (JSC::JSGlobalObject::datePrototype):
1710 (JSC::JSGlobalObject::regExpPrototype):
1711 (JSC::JSGlobalObject::methodCallDummy):
1712 (JSC::Structure::prototypeForLookup):
1713 (JSC::constructArray):
1714 * runtime/JSONObject.cpp:
1715 (JSC::Stringifier::Holder::object):
1716 (JSC::Stringifier::markAggregate):
1717 (JSC::Stringifier::stringify):
1718 (JSC::Stringifier::Holder::appendNextProperty):
1719 (JSC::Walker::callReviver):
1720 (JSC::Walker::walk):
1721 * runtime/JSObject.cpp:
1722 (JSC::JSObject::defineGetter):
1723 (JSC::JSObject::defineSetter):
1724 (JSC::JSObject::removeDirect):
1725 (JSC::JSObject::putDirectFunction):
1726 (JSC::JSObject::putDirectFunctionWithoutTransition):
1727 (JSC::putDescriptor):
1728 (JSC::JSObject::defineOwnProperty):
1729 * runtime/JSObject.h:
1730 (JSC::JSObject::getDirectOffset):
1731 (JSC::JSObject::putDirectOffset):
1732 (JSC::JSObject::flattenDictionaryObject):
1733 (JSC::JSObject::putDirectInternal):
1734 (JSC::JSObject::putDirect):
1735 (JSC::JSObject::putDirectFunction):
1736 (JSC::JSObject::putDirectWithoutTransition):
1737 (JSC::JSObject::putDirectFunctionWithoutTransition):
1738 (JSC::JSValue::putDirect):
1739 (JSC::JSObject::allocatePropertyStorageInline):
1740 (JSC::JSObject::markChildrenDirect):
1741 * runtime/JSPropertyNameIterator.cpp:
1742 (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
1743 (JSC::JSPropertyNameIterator::get):
1744 * runtime/JSPropertyNameIterator.h:
1745 * runtime/JSStaticScopeObject.cpp:
1746 (JSC::JSStaticScopeObject::markChildren):
1747 * runtime/JSString.cpp:
1748 (JSC::StringObject::create):
1749 * runtime/JSValue.h:
1750 * runtime/JSWrapperObject.cpp:
1751 (JSC::JSWrapperObject::markChildren):
1752 * runtime/JSWrapperObject.h:
1753 (JSC::JSWrapperObject::internalValue):
1754 (JSC::JSWrapperObject::setInternalValue):
1755 * runtime/LiteralParser.cpp:
1756 (JSC::LiteralParser::parse):
1757 * runtime/Lookup.cpp:
1758 (JSC::setUpStaticFunctionSlot):
1761 * runtime/MarkStack.h:
1762 (JSC::MarkStack::appendValues):
1763 * runtime/MathObject.cpp:
1764 (JSC::MathObject::MathObject):
1765 * runtime/NativeErrorConstructor.cpp:
1766 (JSC::NativeErrorConstructor::NativeErrorConstructor):
1767 * runtime/NativeErrorPrototype.cpp:
1768 (JSC::NativeErrorPrototype::NativeErrorPrototype):
1769 * runtime/NumberConstructor.cpp:
1770 (JSC::NumberConstructor::NumberConstructor):
1771 (JSC::constructWithNumberConstructor):
1772 * runtime/NumberObject.cpp:
1773 (JSC::constructNumber):
1774 * runtime/NumberPrototype.cpp:
1775 (JSC::NumberPrototype::NumberPrototype):
1776 * runtime/ObjectConstructor.cpp:
1777 (JSC::ObjectConstructor::ObjectConstructor):
1778 (JSC::objectConstructorGetOwnPropertyDescriptor):
1779 * runtime/Operations.h:
1780 (JSC::normalizePrototypeChain):
1782 * runtime/PrototypeFunction.cpp:
1783 (JSC::PrototypeFunction::PrototypeFunction):
1784 * runtime/PutPropertySlot.h:
1785 (JSC::PutPropertySlot::setExistingProperty):
1786 (JSC::PutPropertySlot::setNewProperty):
1787 (JSC::PutPropertySlot::base):
1788 * runtime/RegExpConstructor.cpp:
1789 (JSC::RegExpConstructor::RegExpConstructor):
1790 * runtime/ScopeChain.cpp:
1791 (JSC::ScopeChainNode::print):
1792 * runtime/ScopeChain.h:
1793 (JSC::ScopeChainNode::~ScopeChainNode):
1794 (JSC::ScopeChainIterator::operator*):
1795 (JSC::ScopeChainIterator::operator->):
1796 (JSC::ScopeChain::top):
1797 * runtime/ScopeChainMark.h:
1798 (JSC::ScopeChain::markAggregate):
1799 * runtime/SmallStrings.cpp:
1801 (JSC::SmallStrings::markChildren):
1802 * runtime/SmallStrings.h:
1803 (JSC::SmallStrings::emptyString):
1804 (JSC::SmallStrings::singleCharacterString):
1805 (JSC::SmallStrings::singleCharacterStrings):
1806 * runtime/StringConstructor.cpp:
1807 (JSC::StringConstructor::StringConstructor):
1808 * runtime/StringObject.cpp:
1809 (JSC::StringObject::StringObject):
1810 * runtime/StringObject.h:
1811 * runtime/StringPrototype.cpp:
1812 (JSC::StringPrototype::StringPrototype):
1813 * runtime/Structure.cpp:
1814 (JSC::Structure::Structure):
1815 (JSC::Structure::addPropertyTransition):
1816 (JSC::Structure::toDictionaryTransition):
1817 (JSC::Structure::flattenDictionaryStructure):
1818 * runtime/Structure.h:
1819 (JSC::Structure::storedPrototype):
1820 * runtime/WeakGCMap.h:
1821 (JSC::WeakGCMap::uncheckedGet):
1822 (JSC::WeakGCMap::isValid):
1826 (JSC::::uncheckedRemove):
1827 * runtime/WriteBarrier.h: Removed.
1829 2011-01-28 Gavin Barraclough <barraclough@apple.com>
1831 Reviewed by Geoff Garen.
1833 https://bugs.webkit.org/show_bug.cgi?id=53352
1834 Heavy external fragmentation in FixedVMPoolAllocator can lead to a CRASH().
1836 The FixedVMPoolAllocator currently uses a best fix policy -
1837 switch to first fit, this is less prone to external fragmentation.
1839 * jit/ExecutableAllocatorFixedVMPool.cpp:
1840 (JSC::AllocationTableSizeClass::AllocationTableSizeClass):
1841 (JSC::AllocationTableSizeClass::blockSize):
1842 (JSC::AllocationTableSizeClass::blockCount):
1843 (JSC::AllocationTableSizeClass::blockAlignment):
1844 (JSC::AllocationTableSizeClass::size):
1845 (JSC::AllocationTableLeaf::AllocationTableLeaf):
1846 (JSC::AllocationTableLeaf::~AllocationTableLeaf):
1847 (JSC::AllocationTableLeaf::allocate):
1848 (JSC::AllocationTableLeaf::free):
1849 (JSC::AllocationTableLeaf::isEmpty):
1850 (JSC::AllocationTableLeaf::isFull):
1851 (JSC::AllocationTableLeaf::size):
1852 (JSC::AllocationTableLeaf::classForSize):
1853 (JSC::AllocationTableLeaf::dump):
1854 (JSC::LazyAllocationTable::LazyAllocationTable):
1855 (JSC::LazyAllocationTable::~LazyAllocationTable):
1856 (JSC::LazyAllocationTable::allocate):
1857 (JSC::LazyAllocationTable::free):
1858 (JSC::LazyAllocationTable::isEmpty):
1859 (JSC::LazyAllocationTable::isFull):
1860 (JSC::LazyAllocationTable::size):
1861 (JSC::LazyAllocationTable::dump):
1862 (JSC::LazyAllocationTable::classForSize):
1863 (JSC::AllocationTableDirectory::AllocationTableDirectory):
1864 (JSC::AllocationTableDirectory::~AllocationTableDirectory):
1865 (JSC::AllocationTableDirectory::allocate):
1866 (JSC::AllocationTableDirectory::free):
1867 (JSC::AllocationTableDirectory::isEmpty):
1868 (JSC::AllocationTableDirectory::isFull):
1869 (JSC::AllocationTableDirectory::size):
1870 (JSC::AllocationTableDirectory::classForSize):
1871 (JSC::AllocationTableDirectory::dump):
1872 (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
1873 (JSC::FixedVMPoolAllocator::alloc):
1874 (JSC::FixedVMPoolAllocator::free):
1875 (JSC::FixedVMPoolAllocator::allocated):
1876 (JSC::FixedVMPoolAllocator::isValid):
1877 (JSC::FixedVMPoolAllocator::classForSize):
1878 (JSC::FixedVMPoolAllocator::offsetToPointer):
1879 (JSC::FixedVMPoolAllocator::pointerToOffset):
1880 (JSC::ExecutableAllocator::committedByteCount):
1881 (JSC::ExecutableAllocator::isValid):
1882 (JSC::ExecutableAllocator::underMemoryPressure):
1883 (JSC::ExecutablePool::systemAlloc):
1884 (JSC::ExecutablePool::systemRelease):
1885 * wtf/PageReservation.h:
1886 (WTF::PageReservation::PageReservation):
1887 (WTF::PageReservation::commit):
1888 (WTF::PageReservation::decommit):
1889 (WTF::PageReservation::committed):
1891 2011-01-27 Oliver Hunt <oliver@apple.com>
1893 Reviewed by Geoffrey Garen.
1895 Convert markstack to a slot visitor API
1896 https://bugs.webkit.org/show_bug.cgi?id=53219
1898 Move the MarkStack over to a slot based marking API.
1900 In order to avoiding aliasing concerns there are two new types
1901 that need to be used when holding on to JSValues and JSCell that
1902 need to be marked: WriteBarrier and DeprecatedPtr. WriteBarrier
1903 is expected to be used for any JSValue or Cell that's lifetime and
1904 marking is controlled by another GC object. DeprecatedPtr is used
1905 for any value that we need to rework ownership for.
1907 The change over to this model has produced a large amount of
1908 code changes, but they are mostly mechanical (forwarding JSGlobalData,
1911 * API/JSCallbackObject.h:
1912 (JSC::JSCallbackObjectData::setPrivateProperty):
1913 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty):
1914 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty):
1915 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren):
1916 (JSC::JSCallbackObject::setPrivateProperty):
1917 * API/JSCallbackObjectFunctions.h:
1919 (JSC::::staticFunctionGetter):
1920 * API/JSObjectRef.cpp:
1921 (JSObjectMakeConstructor):
1922 (JSObjectSetPrivateProperty):
1923 * API/JSWeakObjectMapRefInternal.h:
1924 * JavaScriptCore.exp:
1925 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
1926 * JavaScriptCore.xcodeproj/project.pbxproj:
1927 * bytecode/CodeBlock.cpp:
1928 (JSC::CodeBlock::markAggregate):
1929 * bytecode/CodeBlock.h:
1930 (JSC::CodeBlock::globalObject):
1931 * bytecompiler/BytecodeGenerator.cpp:
1932 (JSC::BytecodeGenerator::BytecodeGenerator):
1933 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
1934 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
1935 (JSC::BytecodeGenerator::findScopedProperty):
1936 * debugger/DebuggerActivation.cpp:
1937 (JSC::DebuggerActivation::DebuggerActivation):
1938 (JSC::DebuggerActivation::markChildren):
1939 * debugger/DebuggerActivation.h:
1940 * interpreter/Interpreter.cpp:
1941 (JSC::Interpreter::resolve):
1942 (JSC::Interpreter::resolveSkip):
1943 (JSC::Interpreter::resolveGlobalDynamic):
1944 (JSC::Interpreter::resolveBaseAndProperty):
1945 (JSC::Interpreter::unwindCallFrame):
1946 (JSC::appendSourceToError):
1947 (JSC::Interpreter::execute):
1948 (JSC::Interpreter::privateExecute):
1949 * interpreter/Register.h:
1950 (JSC::Register::jsValueSlot):
1952 (JSC::JITThunks::tryCacheGetByID):
1953 (JSC::DEFINE_STUB_FUNCTION):
1955 (GlobalObject::GlobalObject):
1956 * runtime/Arguments.cpp:
1957 (JSC::Arguments::markChildren):
1958 (JSC::Arguments::getOwnPropertySlot):
1959 (JSC::Arguments::getOwnPropertyDescriptor):
1960 (JSC::Arguments::put):
1961 * runtime/Arguments.h:
1962 (JSC::Arguments::setActivation):
1963 (JSC::Arguments::Arguments):
1964 * runtime/ArrayConstructor.cpp:
1965 (JSC::ArrayConstructor::ArrayConstructor):
1966 (JSC::constructArrayWithSizeQuirk):
1967 * runtime/ArrayPrototype.cpp:
1968 (JSC::arrayProtoFuncSplice):
1969 * runtime/BatchedTransitionOptimizer.h:
1970 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
1971 (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):
1972 * runtime/BooleanConstructor.cpp:
1973 (JSC::BooleanConstructor::BooleanConstructor):
1974 (JSC::constructBoolean):
1975 (JSC::constructBooleanFromImmediateBoolean):
1976 * runtime/BooleanPrototype.cpp:
1977 (JSC::BooleanPrototype::BooleanPrototype):
1978 * runtime/ConservativeSet.h:
1979 (JSC::ConservativeSet::mark):
1980 * runtime/DateConstructor.cpp:
1981 (JSC::DateConstructor::DateConstructor):
1982 * runtime/DateInstance.cpp:
1983 (JSC::DateInstance::DateInstance):
1984 * runtime/DatePrototype.cpp:
1985 (JSC::dateProtoFuncSetTime):
1986 (JSC::setNewValueFromTimeArgs):
1987 (JSC::setNewValueFromDateArgs):
1988 (JSC::dateProtoFuncSetYear):
1989 * runtime/ErrorConstructor.cpp:
1990 (JSC::ErrorConstructor::ErrorConstructor):
1991 * runtime/ErrorInstance.cpp:
1992 (JSC::ErrorInstance::ErrorInstance):
1993 * runtime/ErrorPrototype.cpp:
1994 (JSC::ErrorPrototype::ErrorPrototype):
1995 * runtime/FunctionConstructor.cpp:
1996 (JSC::FunctionConstructor::FunctionConstructor):
1997 * runtime/FunctionPrototype.cpp:
1998 (JSC::FunctionPrototype::FunctionPrototype):
1999 * runtime/GetterSetter.cpp:
2000 (JSC::GetterSetter::markChildren):
2001 * runtime/GetterSetter.h:
2002 (JSC::GetterSetter::GetterSetter):
2003 (JSC::GetterSetter::getter):
2004 (JSC::GetterSetter::setGetter):
2005 (JSC::GetterSetter::setter):
2006 (JSC::GetterSetter::setSetter):
2007 * runtime/GlobalEvalFunction.cpp:
2008 (JSC::GlobalEvalFunction::GlobalEvalFunction):
2009 (JSC::GlobalEvalFunction::markChildren):
2010 * runtime/GlobalEvalFunction.h:
2011 (JSC::GlobalEvalFunction::cachedGlobalObject):
2013 (JSC::Heap::markProtectedObjects):
2014 (JSC::Heap::markTempSortVectors):
2015 (JSC::Heap::markRoots):
2016 * runtime/InternalFunction.cpp:
2017 (JSC::InternalFunction::InternalFunction):
2018 * runtime/JSAPIValueWrapper.h:
2019 (JSC::JSAPIValueWrapper::value):
2020 (JSC::JSAPIValueWrapper::JSAPIValueWrapper):
2021 * runtime/JSActivation.cpp:
2022 (JSC::JSActivation::put):
2023 * runtime/JSArray.cpp:
2024 (JSC::JSArray::JSArray):
2025 (JSC::JSArray::getOwnPropertySlot):
2026 (JSC::JSArray::getOwnPropertyDescriptor):
2027 (JSC::JSArray::put):
2028 (JSC::JSArray::putSlowCase):
2029 (JSC::JSArray::deleteProperty):
2030 (JSC::JSArray::increaseVectorLength):
2031 (JSC::JSArray::setLength):
2032 (JSC::JSArray::pop):
2033 (JSC::JSArray::push):
2034 (JSC::JSArray::unshiftCount):
2035 (JSC::JSArray::sort):
2036 (JSC::JSArray::fillArgList):
2037 (JSC::JSArray::copyToRegisters):
2038 (JSC::JSArray::compactForSorting):
2039 * runtime/JSArray.h:
2040 (JSC::JSArray::getIndex):
2041 (JSC::JSArray::setIndex):
2042 (JSC::JSArray::uncheckedSetIndex):
2043 (JSC::JSArray::markChildrenDirect):
2044 * runtime/JSByteArray.cpp:
2045 (JSC::JSByteArray::JSByteArray):
2047 (JSC::JSCell::MarkStack::append):
2048 (JSC::JSCell::MarkStack::appendCell):
2049 * runtime/JSFunction.cpp:
2050 (JSC::JSFunction::JSFunction):
2051 (JSC::JSFunction::getOwnPropertySlot):
2052 * runtime/JSGlobalObject.cpp:
2053 (JSC::markIfNeeded):
2054 (JSC::JSGlobalObject::reset):
2055 (JSC::JSGlobalObject::resetPrototype):
2056 (JSC::JSGlobalObject::markChildren):
2057 * runtime/JSGlobalObject.h:
2058 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
2059 (JSC::JSGlobalObject::regExpConstructor):
2060 (JSC::JSGlobalObject::errorConstructor):
2061 (JSC::JSGlobalObject::evalErrorConstructor):
2062 (JSC::JSGlobalObject::rangeErrorConstructor):
2063 (JSC::JSGlobalObject::referenceErrorConstructor):
2064 (JSC::JSGlobalObject::syntaxErrorConstructor):
2065 (JSC::JSGlobalObject::typeErrorConstructor):
2066 (JSC::JSGlobalObject::URIErrorConstructor):
2067 (JSC::JSGlobalObject::evalFunction):
2068 (JSC::JSGlobalObject::objectPrototype):
2069 (JSC::JSGlobalObject::functionPrototype):
2070 (JSC::JSGlobalObject::arrayPrototype):
2071 (JSC::JSGlobalObject::booleanPrototype):
2072 (JSC::JSGlobalObject::stringPrototype):
2073 (JSC::JSGlobalObject::numberPrototype):
2074 (JSC::JSGlobalObject::datePrototype):
2075 (JSC::JSGlobalObject::regExpPrototype):
2076 (JSC::JSGlobalObject::methodCallDummy):
2077 (JSC::constructArray):
2078 * runtime/JSONObject.cpp:
2079 (JSC::Stringifier::Holder::object):
2080 (JSC::Stringifier::Holder::objectSlot):
2081 (JSC::Stringifier::markAggregate):
2082 (JSC::Stringifier::stringify):
2083 (JSC::Stringifier::Holder::appendNextProperty):
2084 (JSC::Walker::callReviver):
2085 (JSC::Walker::walk):
2086 * runtime/JSObject.cpp:
2087 (JSC::JSObject::defineGetter):
2088 (JSC::JSObject::defineSetter):
2089 (JSC::JSObject::removeDirect):
2090 (JSC::JSObject::putDirectFunction):
2091 (JSC::JSObject::putDirectFunctionWithoutTransition):
2092 (JSC::putDescriptor):
2093 (JSC::JSObject::defineOwnProperty):
2094 * runtime/JSObject.h:
2095 (JSC::JSObject::putDirectOffset):
2096 (JSC::JSObject::putUndefinedAtDirectOffset):
2097 (JSC::JSObject::flattenDictionaryObject):
2098 (JSC::JSObject::putDirectInternal):
2099 (JSC::JSObject::putDirect):
2100 (JSC::JSObject::putDirectFunction):
2101 (JSC::JSObject::putDirectWithoutTransition):
2102 (JSC::JSObject::putDirectFunctionWithoutTransition):
2103 (JSC::JSValue::putDirect):
2104 (JSC::JSObject::allocatePropertyStorageInline):
2105 (JSC::JSObject::markChildrenDirect):
2106 * runtime/JSStaticScopeObject.cpp:
2107 (JSC::JSStaticScopeObject::markChildren):
2108 * runtime/JSString.cpp:
2109 (JSC::StringObject::create):
2110 * runtime/JSValue.h:
2111 * runtime/JSWrapperObject.cpp:
2112 (JSC::JSWrapperObject::markChildren):
2113 * runtime/JSWrapperObject.h:
2114 (JSC::JSWrapperObject::internalValue):
2115 (JSC::JSWrapperObject::setInternalValue):
2116 * runtime/LiteralParser.cpp:
2117 (JSC::LiteralParser::parse):
2118 * runtime/Lookup.cpp:
2119 (JSC::setUpStaticFunctionSlot):
2122 * runtime/MarkStack.h:
2123 * runtime/MathObject.cpp:
2124 (JSC::MathObject::MathObject):
2125 * runtime/NativeErrorConstructor.cpp:
2126 (JSC::NativeErrorConstructor::NativeErrorConstructor):
2127 * runtime/NativeErrorPrototype.cpp:
2128 (JSC::NativeErrorPrototype::NativeErrorPrototype):
2129 * runtime/NumberConstructor.cpp:
2130 (JSC::NumberConstructor::NumberConstructor):
2131 (JSC::constructWithNumberConstructor):
2132 * runtime/NumberObject.cpp:
2133 (JSC::constructNumber):
2134 * runtime/NumberPrototype.cpp:
2135 (JSC::NumberPrototype::NumberPrototype):
2136 * runtime/ObjectConstructor.cpp:
2137 (JSC::ObjectConstructor::ObjectConstructor):
2138 (JSC::objectConstructorGetOwnPropertyDescriptor):
2139 * runtime/Operations.h:
2140 (JSC::normalizePrototypeChain):
2142 * runtime/PrototypeFunction.cpp:
2143 (JSC::PrototypeFunction::PrototypeFunction):
2144 * runtime/PutPropertySlot.h:
2145 (JSC::PutPropertySlot::setExistingProperty):
2146 (JSC::PutPropertySlot::setNewProperty):
2147 (JSC::PutPropertySlot::base):
2148 * runtime/RegExpConstructor.cpp:
2149 (JSC::RegExpConstructor::RegExpConstructor):
2150 * runtime/ScopeChain.cpp:
2151 (JSC::ScopeChainNode::print):
2152 * runtime/ScopeChain.h:
2153 (JSC::ScopeChainNode::~ScopeChainNode):
2154 (JSC::ScopeChainIterator::operator*):
2155 (JSC::ScopeChainIterator::operator->):
2156 (JSC::ScopeChain::top):
2157 * runtime/ScopeChainMark.h:
2158 (JSC::ScopeChain::markAggregate):
2159 * runtime/SmallStrings.cpp:
2161 (JSC::SmallStrings::markChildren):
2162 * runtime/SmallStrings.h:
2163 (JSC::SmallStrings::emptyString):
2164 (JSC::SmallStrings::singleCharacterString):
2165 (JSC::SmallStrings::singleCharacterStrings):
2166 * runtime/StringConstructor.cpp:
2167 (JSC::StringConstructor::StringConstructor):
2168 * runtime/StringObject.cpp:
2169 (JSC::StringObject::StringObject):
2170 * runtime/StringObject.h:
2171 * runtime/StringPrototype.cpp:
2172 (JSC::StringPrototype::StringPrototype):
2173 * runtime/Structure.cpp:
2174 (JSC::Structure::flattenDictionaryStructure):
2175 * runtime/Structure.h:
2176 (JSC::Structure::storedPrototypeSlot):
2177 * runtime/WeakGCMap.h:
2178 (JSC::WeakGCMap::uncheckedGet):
2179 (JSC::WeakGCMap::uncheckedGetSlot):
2183 (JSC::::uncheckedRemove):
2184 * runtime/WriteBarrier.h: Added.
2185 (JSC::DeprecatedPtr::DeprecatedPtr):
2186 (JSC::DeprecatedPtr::get):
2187 (JSC::DeprecatedPtr::operator*):
2188 (JSC::DeprecatedPtr::operator->):
2189 (JSC::DeprecatedPtr::slot):
2190 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*):
2191 (JSC::DeprecatedPtr::operator!):
2192 (JSC::WriteBarrierBase::set):
2193 (JSC::WriteBarrierBase::get):
2194 (JSC::WriteBarrierBase::operator*):
2195 (JSC::WriteBarrierBase::operator->):
2196 (JSC::WriteBarrierBase::slot):
2197 (JSC::WriteBarrierBase::operator UnspecifiedBoolType*):
2198 (JSC::WriteBarrierBase::operator!):
2199 (JSC::WriteBarrier::WriteBarrier):
2202 2011-01-28 Adam Roben <aroben@apple.com>
2204 Chromium build fix after r76967
2206 * wtf/ThreadingPrimitives.h: Use OS(WINDOWS) instead of PLATFORM(WIN), to match other
2207 similar macros in this file.
2209 2011-01-28 Michael Saboff <msaboff@apple.com>
2211 Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
2212 https://bugs.webkit.org/show_bug.cgi?id=53271
2214 Reapplying this this change. No change from prior patch in
2217 Added new isValid() methods to check if a contained object in
2218 a WeakGCMap is valid when using an unchecked iterator.
2220 * runtime/WeakGCMap.h:
2221 (JSC::WeakGCMap::isValid):
2223 2011-01-27 Adam Roben <aroben@apple.com>
2225 Extract code to convert a WTF absolute time to a Win32 wait interval into a separate
2228 Fixes <http://webkit.org/b/53208> <rdar://problem/8922490> BinarySemaphore should wrap a
2231 Reviewed by Dave Hyatt.
2233 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export the new function.
2235 * wtf/ThreadingPrimitives.h: Declare the new function.
2237 * wtf/ThreadingWin.cpp:
2238 (WTF::ThreadCondition::timedWait): Moved code to convert the absolute time to a wait
2239 interval from here...
2240 (WTF::absoluteTimeToWaitTimeoutInterval): ...to here.
2242 2011-01-28 Sam Weinig <sam@webkit.org>
2244 Reviewed by Maciej Stachowiak.
2246 Add basic rubber banding support
2247 <rdar://problem/8219429>
2248 https://bugs.webkit.org/show_bug.cgi?id=53277
2250 * wtf/Platform.h: Add ENABLE for rubber banding.
2252 2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
2254 Unreviewed, rolling out r76893.
2255 http://trac.webkit.org/changeset/76893
2256 https://bugs.webkit.org/show_bug.cgi?id=53287
2258 It made some tests crash on GTK and Qt debug bots (Requested
2259 by Ossy on #webkit).
2261 * runtime/WeakGCMap.h:
2263 2011-01-27 Adam Barth <abarth@webkit.org>
2265 Reviewed by Eric Seidel.
2267 Add WTFString method to compare equality with Vector<UChar>
2268 https://bugs.webkit.org/show_bug.cgi?id=53266
2270 I'm planning to use this method in the new XSS filter implementation,
2271 but it seems generally useful.
2273 * wtf/text/StringImpl.h:
2274 (WTF::equalIgnoringNullity):
2275 * wtf/text/WTFString.h:
2276 (WTF::equalIgnoringNullity):
2278 2011-01-27 Michael Saboff <msaboff@apple.com>
2280 Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
2281 https://bugs.webkit.org/show_bug.cgi?id=53271
2283 Added new isValid() methods to check if a contained object in
2284 a WeakGCMap is valid when using an unchecked iterator.
2286 * runtime/WeakGCMap.h:
2287 (JSC::WeakGCMap::isValid):
2289 2011-01-26 Sam Weinig <sam@webkit.org>
2291 Reviewed by Maciej Stachowiak.
2293 Add events to represent the start/end of a gesture scroll
2294 https://bugs.webkit.org/show_bug.cgi?id=53215
2296 * wtf/Platform.h: Add ENABLE for gesture events.
2298 2011-01-26 Yael Aharon <yael.aharon@nokia.com>
2300 Reviewed by Laszlo Gombos.
2302 [Qt][Symbian] Fix --minimal build
2303 https://bugs.webkit.org/show_bug.cgi?id=52839
2305 Move definition of USE_SYSTEM_MALLOC out of pri file.
2306 Put it in platform.h instead.
2309 * wtf/TCSystemAlloc.cpp:
2312 2011-01-26 Patrick Gansterer <paroga@webkit.org>
2314 Reviewed by Andreas Kling.
2316 [WINCE] Add JIT support to build system
2317 https://bugs.webkit.org/show_bug.cgi?id=53079
2319 * CMakeListsWinCE.txt:
2321 2011-01-25 Adam Roben <aroben@apple.com>
2323 Windows Production build fix
2325 Reviewed by Steve Falkenburg.
2327 * JavaScriptCore.vcproj/JavaScriptCore.make: Set BUILDSTYLE to Release_PGO at the very start
2328 of the file so that ConfigurationBuildDir takes that into account. Also set it the right way
2329 (by redefining the macro) rather than the wrong way (by modifying the environment variable).
2331 2011-01-25 Steve Falkenburg <sfalken@apple.com>
2333 Rubber-stamped by Adam Roben.
2335 Windows production build fix.
2336 Use correct environment variable escaping
2338 * JavaScriptCore.vcproj/JavaScriptCore.make:
2339 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make:
2341 2011-01-25 Oliver Hunt <oliver@apple.com>
2343 Reviewed by Gavin Barraclough.
2345 JSON.stringify processing time exponentially grows with size of object
2346 https://bugs.webkit.org/show_bug.cgi?id=51922
2348 Remove last use of reserveCapacity from JSON stringification, as it results
2349 in appalling append behaviour when there are a large number of property names
2352 * runtime/JSONObject.cpp:
2353 (JSC::Stringifier::appendQuotedString):
2355 2011-01-25 Antti Koivisto <antti@apple.com>
2359 Try to fix windows build.
2361 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
2363 2011-01-25 Antti Koivisto <antti@apple.com>
2365 Reviewed by Oliver Hunt.
2367 REGRESSION: Leak in JSParser::Scope::copyCapturedVariablesToVector()
2368 https://bugs.webkit.org/show_bug.cgi?id=53061
2370 Cache did not know about the subclass so failed to fully delete the items.
2371 Got rid of the subclass and moved the classes to separate files.
2375 * JavaScriptCore.exp:
2376 * JavaScriptCore.gypi:
2377 * JavaScriptCore.pro:
2378 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2379 * JavaScriptCore.xcodeproj/project.pbxproj:
2380 * parser/JSParser.cpp:
2381 (JSC::JSParser::Scope::saveFunctionInfo):
2382 (JSC::JSParser::Scope::restoreFunctionInfo):
2383 (JSC::JSParser::findCachedFunctionInfo):
2384 (JSC::JSParser::parseFunctionInfo):
2385 * parser/SourceProvider.h:
2386 * parser/SourceProviderCache.cpp: Added.
2387 (JSC::SourceProviderCache::~SourceProviderCache):
2388 (JSC::SourceProviderCache::byteSize):
2389 * parser/SourceProviderCache.h: Added.
2390 (JSC::SourceProviderCache::SourceProviderCache):
2391 (JSC::SourceProviderCache::add):
2392 (JSC::SourceProviderCache::get):
2393 * parser/SourceProviderCacheItem.h: Added.
2394 (JSC::SourceProviderCacheItem::SourceProviderCacheItem):
2395 (JSC::SourceProviderCacheItem::approximateByteSize):
2396 (JSC::SourceProviderCacheItem::closeBraceToken):
2398 2011-01-25 Marcilio Mendonca <mamendonca@rim.com>
2400 Reviewed by Darin Adler.
2402 Bug 53087: Refactoring: replaced a hanging "else" with a "return"
2404 https://bugs.webkit.org/show_bug.cgi?id=53087.
2406 Refactoring work: Replaced a hanging "else" within an #if PLATFORM(M
2407 with a "return" so that the code is more readable and less error pro
2408 (e.g., "else" doesn't use braces so adding extra lines to the else
2409 block won't have any effect; even worse, code still compiles
2412 * wtf/Assertions.cpp:
2414 2011-01-24 Chris Marrin <cmarrin@apple.com>
2416 Reviewed by Eric Seidel.
2418 Change ENABLE_3D_CANVAS to ENABLE_WEBGL
2419 https://bugs.webkit.org/show_bug.cgi?id=53041
2421 * Configurations/FeatureDefines.xcconfig:
2423 2011-01-25 Adam Roben <aroben@apple.com>
2425 Windows Production build fix
2427 * JavaScriptCore.vcproj/JavaScriptCore.make: Added a missing "set".
2429 2011-01-25 Patrick Gansterer <paroga@webkit.org>
2431 Reviewed by Eric Seidel.
2433 Add missing defines for COMPILER(RVCT) && CPU(ARM_THUMB2)
2434 https://bugs.webkit.org/show_bug.cgi?id=52949
2438 2011-01-24 Adam Roben <aroben@apple.com>
2440 Windows Production build fix
2442 * JavaScriptCore.vcproj/JavaScriptCore.make: Update for move of JavaScriptCore into Source.
2444 2011-01-24 Peter Varga <pvarga@webkit.org>
2446 Reviewed by Oliver Hunt.
2448 Optimize regex patterns which contain empty alternatives
2449 https://bugs.webkit.org/show_bug.cgi?id=51395
2451 Eliminate the empty alternatives from the regex pattern and convert it to do
2452 the matching in an easier way.
2454 * yarr/YarrPattern.cpp:
2455 (JSC::Yarr::YarrPatternConstructor::atomParenthesesEnd):
2457 2011-01-24 Andras Becsi <abecsi@webkit.org>
2459 Reviewed by Csaba Osztrogonác.
2461 [Qt] Move project files into Source
2462 https://bugs.webkit.org/show_bug.cgi?id=52891
2464 * JavaScriptCore.pri:
2465 * JavaScriptCore.pro:
2468 2011-01-23 Mark Rowe <mrowe@apple.com>
2470 Follow-up to r76477.
2472 Fix the scripts that detect problematic code such as static initializers
2473 and destructors, weak vtables, inappropriate files in the framework wrappers,
2474 and public headers including private headers. These had all been broken
2475 since the projects were moved in to the Source directory as the paths to the
2476 scripts were not updated at that time.
2478 * JavaScriptCore.xcodeproj/project.pbxproj:
2480 2011-01-23 Patrick Gansterer <paroga@webkit.org>
2482 Reviewed by Darin Adler.
2484 Use WTF::StringHasher in WebCore
2485 https://bugs.webkit.org/show_bug.cgi?id=52934
2487 Add an additional function to calculate the hash
2488 of data with a runtimedependent size.
2490 * wtf/StringHasher.h:
2491 (WTF::StringHasher::createBlobHash):
2493 2011-01-23 Patrick Gansterer <paroga@webkit.org>
2495 Reviewed by David Kilzer.
2497 Fix comment in String::ascii()
2498 https://bugs.webkit.org/show_bug.cgi?id=52980
2500 * wtf/text/WTFString.cpp:
2501 (WTF::String::ascii):
2503 2011-01-23 Patrick Gansterer <paroga@webkit.org>
2505 Reviewed by David Kilzer.
2507 Add String::containsOnlyLatin1()
2508 https://bugs.webkit.org/show_bug.cgi?id=52979
2510 * wtf/text/WTFString.h:
2511 (WTF::String::containsOnlyLatin1):
2512 (WTF::charactersAreAllLatin1):
2514 2011-01-23 Patrick Gansterer <paroga@webkit.org>
2516 Reviewed by Oliver Hunt.
2518 Remove obsolete JSVALUE32 code
2519 https://bugs.webkit.org/show_bug.cgi?id=52948
2521 r70111 removed support for JSVALUE32.
2522 ARM, MIPS and X86 support JSVALUE32_64 only.
2526 2011-01-22 Geoffrey Garen <ggaren@apple.com>
2528 Reviewed by Dan Bernstein.
2530 ASSERT running run-webkit-tests --threaded.
2531 https://bugs.webkit.org/show_bug.cgi?id=52971
2533 SunSpider and v8 report no change.
2535 * runtime/ConservativeSet.cpp:
2536 (JSC::ConservativeSet::grow):
2537 (JSC::ConservativeSet::add):
2538 * runtime/ConservativeSet.h: Tweaked the inline capacity to 128, and
2539 the growth policy to 2X, to make SunSpider and v8 happy.
2540 (JSC::ConservativeSet::ConservativeSet):
2541 (JSC::ConservativeSet::~ConservativeSet):
2542 (JSC::ConservativeSet::mark): Use OSAllocator directly, instead of malloc.
2543 Malloc is forbidden during a multi-threaded mark phase because it can
2546 2011-01-22 Geoffrey Garen <ggaren@apple.com>
2548 Reviewed by Geoffrey Garen.
2550 Rubber-stamped by Maciej Stachowiak.
2552 A few of Maciej's review suggestions for my last patch.
2553 https://bugs.webkit.org/show_bug.cgi?id=52946
2555 SunSpider reports no change.
2560 * JavaScriptCore.gypi:
2561 * JavaScriptCore.pro:
2562 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
2563 * JavaScriptCore.xcodeproj/project.pbxproj: Updated build systems.
2565 * runtime/ConservativeSet.cpp: Added.
2566 (JSC::isPointerAligned):
2567 (JSC::ConservativeSet::add):
2568 * runtime/ConservativeSet.h: Added.
2569 (JSC::ConservativeSet::ConservativeSet):
2570 (JSC::ConservativeSet::mark): Split ConservativeSet out into its own
2571 file, and moved the conservative check into ConservativeSet::add, making
2572 ConservativeSet's responsibility clearer.
2575 (JSC::Heap::markRoots):
2576 * runtime/MachineStackMarker.cpp:
2577 (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
2578 (JSC::MachineStackMarker::markOtherThreadConservatively):
2579 * runtime/MachineStackMarker.h:
2580 * runtime/MarkStack.h: Updated for changes above.
2582 2011-01-22 Patrick Gansterer <paroga@webkit.org>
2584 Unreviewed WinCE build fix for r76430.
2586 * runtime/MachineStackMarker.cpp:
2587 (JSC::swapIfBackwards):
2589 2011-01-21 Geoffrey Garen <ggaren@apple.com>
2591 Reviewed by Beth Dakin.
2593 Reorganized MarkedSpace, making many of its functions private.
2596 (JSC::JSCell::Heap::heap):
2597 * runtime/MarkedSpace.h:
2598 (JSC::MarkedSpace::globalData):
2599 (JSC::MarkedSpace::heap):
2601 2011-01-21 Geoffrey Garen <ggaren@apple.com>
2603 Try to fix build: moved helper function out of #ifdef.
2605 * runtime/MachineStackMarker.cpp:
2606 (JSC::swapIfBackwards):
2608 2011-01-21 Geoffrey Garen <ggaren@apple.com>
2610 Rubber-stamped by Maciej Stachowiak.
2612 A few of Maciej's review suggestions for my last patch.
2613 https://bugs.webkit.org/show_bug.cgi?id=52946
2615 SunSpider reports no change.
2617 * runtime/MachineStackMarker.cpp:
2618 (JSC::swapIfBackwards): Added a helper function for handling platforms
2619 where the stack can grow in any direction.
2621 (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
2622 (JSC::MachineStackMarker::markOtherThreadConservatively): Use the helper
2625 (JSC::isPointerAligned): Use "!" instead of "==0" because a robot told me to.
2627 (JSC::MachineStackMarker::markConservatively): Changed to use a more
2628 standard looping idiom, and to use the helper function above.
2630 * runtime/MarkedSpace.h:
2631 (JSC::MarkedSpace::isCellAligned): Use "!" instead of "==0" because a robot told me to.
2633 2011-01-21 Geoffrey Garen <ggaren@apple.com>
2635 Reviewed by Maciej Stachowiak.
2637 Cleaned up some conservative marking code.
2638 https://bugs.webkit.org/show_bug.cgi?id=52946
2640 SunSpider reports no change.
2642 * interpreter/RegisterFile.h: No need for a special marking function,
2643 since we already expose a start() and end().
2646 (JSC::Heap::registerFile):
2647 (JSC::Heap::markRoots):
2649 (JSC::Heap::contains): Migrated markConservatively() to the machine stack
2650 marker class. Now, Heap just provides a contains() function, which the
2651 machine stack marker uses for checking whether a pointer points into the heap.
2653 * runtime/MachineStackMarker.cpp:
2654 (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
2655 (JSC::MachineStackMarker::markOtherThreadConservatively):
2656 (JSC::isPointerAligned):
2657 (JSC::MachineStackMarker::markConservatively):
2658 * runtime/MachineStackMarker.h: Move the conservative marking code here.
2660 * runtime/MarkStack.h:
2661 (JSC::ConservativeSet::add):
2662 (JSC::ConservativeSet::mark): Changed to using a vector instead of hash
2663 set. Vector seems to be a bit faster, and it generates smaller code.
2665 * runtime/MarkedSpace.cpp:
2666 (JSC::MarkedSpace::containsSlowCase):
2667 * runtime/MarkedSpace.h:
2668 (JSC::MarkedSpace::isCellAligned):
2669 (JSC::MarkedSpace::isPossibleCell):
2670 (JSC::MarkedSpace::contains): Kept the code for determining whether a
2671 pointer pointed into marked space, and moved the code for marking
2672 a set of conservative pointers into the machine stack marker.
2675 (WTF::::add): Added two missing inlines that I noticed while testing
2678 2011-01-21 Mark Rowe <mrowe@apple.com>
2680 Reviewed by Sam Weinig.
2682 Work around a Clang bug <rdar://problem/8876150> that leads to it incorrectly emitting an access
2683 control warning when a client tries to use operator bool exposed above via "using PageBlock::operator bool".
2685 * wtf/PageAllocation.h:
2686 (WTF::PageAllocation::operator bool):
2687 * wtf/PageReservation.h:
2688 (WTF::PageReservation::operator bool):
2690 2011-01-21 Michael Saboff <msaboff@apple.com>
2692 Reviewed by Oliver Hunt.
2694 [RegexFuzz] Hang with forward assertion
2695 https://bugs.webkit.org/show_bug.cgi?id=52825
2696 <rdar://problem/8894332>
2698 The backtrackTo label from the first term in a list of terms is
2699 being overwritten by processing of subsequent terms. Changed
2700 copyBacktrackToLabel() to check for an existing bcaktrackTo label
2701 before copying and renamed it to propagateBacktrackToLabel() since
2702 it no longer copies.
2705 (JSC::Yarr::YarrGenerator::BacktrackDestination::propagateBacktrackToLabel):
2706 (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
2708 2011-01-21 Geoffrey Garen <ggaren@apple.com>
2710 Reviewed by Sam Weinig.
2712 Moved the mark stack from global data to the heap, since it pertains
2713 to the heap, and not the virtual machine as a whole.
2714 https://bugs.webkit.org/show_bug.cgi?id=52930
2716 SunSpider reports no change.
2720 (JSC::Heap::markRoots):
2722 * runtime/JSGlobalData.cpp:
2723 (JSC::JSGlobalData::JSGlobalData):
2724 * runtime/JSGlobalData.h:
2726 2011-01-21 Peter Gal <galpeter@inf.u-szeged.hu>
2728 Reviewed by Darin Adler.
2730 REGRESSION(r76177): All JavaScriptCore tests fail on ARM
2731 https://bugs.webkit.org/show_bug.cgi?id=52814
2733 Get the approximateByteSize value before releasing the OwnPtr.
2735 * parser/JSParser.cpp:
2736 (JSC::JSParser::parseFunctionInfo):
2738 2011-01-21 Xan Lopez <xlopez@igalia.com>
2740 Reviewed by Martin Robinson.
2742 Remove unnecessary <stdio.h> include
2743 https://bugs.webkit.org/show_bug.cgi?id=52884
2745 * jit/JIT.cpp: remove unnecessary include.
2747 2011-01-20 Ryosuke Niwa <rniwa@webkit.org>
2749 Reviewed by Maciej Stachowiak.
2751 Added OwnPtrCommon.h because OwnArrayPtr::set calls deleteOwnedPtr.
2753 * wtf/OwnArrayPtr.h:
2755 2011-01-20 Patrick Gansterer <paroga@webkit.org>
2757 Reviewed by Oliver Hunt.
2759 [WINCE] Remove obsolete JSVALUE32 code
2760 https://bugs.webkit.org/show_bug.cgi?id=52450
2762 Remove the "offset hack" in create_jit_stubs, since we
2763 only support JSVALUE32_64 in the meantime.
2765 * create_jit_stubs: Removed offset argument
2768 2011-01-20 Geoffrey Garen <ggaren@apple.com>
2770 Reviewed by Oliver Hunt.
2772 When marking conservatively, guard against reviving dead objects.
2773 https://bugs.webkit.org/show_bug.cgi?id=52840
2775 SunSpider and v8 say no change.
2777 * interpreter/RegisterFile.h:
2778 (JSC::RegisterFile::markCallFrames): Updated to use the ConservativeSet API.
2781 (JSC::Heap::recordExtraCost): No need to guard against conservative
2782 marking reviving dead objects anymore, since the conservative marking
2783 mechanism guards against this now.
2785 (JSC::Heap::markConservatively):
2786 (JSC::Heap::markProtectedObjects):
2787 (JSC::Heap::markTempSortVectors): Don't drain the mark stack inside a
2788 marking function. We want to establish a separation of concerns between
2789 visiting roots and draining the mark stack.
2791 (JSC::Heap::markRoots): Gather the set of conservative references before
2792 clearning mark bits, because conservative marking now uses the mark bits
2793 to determine if a reference is valid, and avoid reviving dead objects.
2795 (JSC::Heap::collectAllGarbage): No need to guard against conservative
2796 marking reviving dead objects anymore, since the conservative marking
2797 mechanism guards against this now.
2799 * runtime/Heap.h: Updated to use the ConservativeSet API.
2801 * runtime/MachineStackMarker.cpp:
2802 (JSC::MachineStackMarker::markCurrentThreadConservativelyInternal):
2803 (JSC::MachineStackMarker::markCurrentThreadConservatively):
2804 (JSC::MachineStackMarker::markOtherThreadConservatively):
2805 (JSC::MachineStackMarker::markMachineStackConservatively):
2806 * runtime/MachineStackMarker.h: Ditto.
2808 * runtime/MarkStack.h:
2809 (JSC::ConservativeSet::add):
2810 (JSC::ConservativeSet::mark): Added ConservativeSet, for gathering the
2811 set of conservative references. This is different from MarkStack, since
2812 we don't mark the set until it is completely gathered.
2814 * runtime/MarkedSpace.cpp:
2815 (JSC::MarkedSpace::freeBlock):
2816 (JSC::MarkedSpace::resizeBlocks):
2817 (JSC::MarkedSpace::markConservatively):
2818 * runtime/MarkedSpace.h: When marking conservatively, guard against
2819 reviving dead objects.
2821 2011-01-20 Siddharth Mathur <siddharth.mathur@nokia.com>
2823 Reviewed by Geoffrey Garen.
2825 [Symbian] Fix StackBounds::initialize()
2826 https://bugs.webkit.org/show_bug.cgi?id=52842
2828 * wtf/StackBounds.cpp:
2829 (WTF::StackBounds::initialize): Use TThreadStackInfo.iLimit for stack limit
2831 2011-01-20 Michael Saboff <msaboff@apple.com>
2833 Reviewed by Oliver Hunt.
2835 <rdar://problem/8890203> [RegexFuzz] Crash in generated code (52773)
2836 https://bugs.webkit.org/show_bug.cgi?id=52773
2838 Fixed case where an existing DataLabelPtr is overwritten. The
2839 replacing DataLabelPtr is now resolved immediately in
2840 linkDataLabelToBacktrackIfExists(). Cleanup - eliminated bool
2841 return value for the routine as it was never used.
2844 (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists):
2846 2011-01-20 Andras Becsi <abecsi@webkit.org>
2848 Reviewed by Csaba Osztrogonác.
2850 [Qt][WK2] WebKit2 enabled build fails to link
2852 Work around undefined reference linking issues until the buildsystem gets redesigned.
2853 These issues first occured in minimal builds (see BUG 50519).
2855 * JavaScriptCore.pri: link as whole-archive for WebKit2 builds
2857 2011-01-20 Zoltan Horvath <zoltan@webkit.org>
2859 Reviewed by Csaba Osztrogonác.
2861 Refactoring of the custom allocation framework
2862 https://bugs.webkit.org/show_bug.cgi?id=49897
2864 Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
2865 The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
2866 equivalent macro implementation at the necessary places.
2868 * wtf/FastAllocBase.h: Turn FastAllocBase's implementation into a macro.
2870 2011-01-20 Mark Rowe <mrowe@apple.com>
2872 Reviewed by Maciej Stachowiak.
2874 Follow-up to r75766 / <rdar://problem/5469576>.
2876 We were failing to initialize the key, causing all sorts of unexpected behavior.
2878 * wtf/FastMalloc.cpp:
2879 (WTF::setThreadHeap):
2880 (WTF::TCMalloc_ThreadCache::GetThreadHeap):
2881 (WTF::TCMalloc_ThreadCache::InitTSD): Ensure that the key is initialized.
2883 2011-01-18 Geoffrey Garen <ggaren@apple.com>
2885 Reviewed by Darin Adler.
2887 Rolled back in r76078, with crash fixed.
2888 https://bugs.webkit.org/show_bug.cgi?id=52668
2890 * runtime/JSGlobalObject.cpp:
2891 (JSC::JSGlobalObject::markChildren): Account for the fact that the global
2892 object moves its variables into and out of the register file. While out
2893 of the register file, the symbol table's size is not an accurate count
2894 for the size of the register array, since the BytecodeGenerator might
2895 be compiling, adding items to the symbol table.
2897 2011-01-18 Darin Adler <darin@apple.com>
2899 Reviewed by Geoffrey Garen.
2901 Stack overflow when converting an Error object to string
2902 https://bugs.webkit.org/show_bug.cgi?id=46410
2904 * Android.mk: Added StringRecursionChecker.cpp and
2905 StringRecursionChecker.h.
2906 * CMakeLists.txt: Ditto.
2907 * GNUmakefile.am: Ditto.
2908 * JavaScriptCore.gypi: Ditto.
2909 * JavaScriptCore.pro: Ditto.
2910 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Ditto.
2911 * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
2913 * runtime/ArrayPrototype.cpp:
2914 (JSC::arrayProtoFuncToString): Use StringRecursionChecker instead
2915 of the older hand-written code to do the same thing.
2916 (JSC::arrayProtoFuncToLocaleString): Ditto.
2917 (JSC::arrayProtoFuncJoin): Ditto.
2919 * runtime/ErrorPrototype.cpp:
2920 (JSC::errorProtoFuncToString): Use StringRecursionChecker.
2922 * runtime/JSGlobalData.h: Renamed arrayVisitedElements to
2923 stringRecursionCheckVisitedObjects.
2925 * runtime/RegExpPrototype.cpp:
2926 (JSC::regExpProtoFuncToString): Use StringRecursionChecker.
2928 * runtime/StringRecursionChecker.cpp: Added.
2929 * runtime/StringRecursionChecker.h: Added.
2931 2011-01-19 Oliver Hunt <oliver@apple.com>
2933 Reviewed by Gavin Barraclough.
2935 Remove non-spec support for callable RegExp
2936 https://bugs.webkit.org/show_bug.cgi?id=28285
2938 Remove support for callable regexps. If it breaks sites we can
2941 * runtime/RegExpObject.cpp:
2942 * runtime/RegExpObject.h:
2943 * tests/mozilla/expected.html: update results.
2945 2011-01-19 Antti Koivisto <antti@apple.com>
2947 Reviewed by Oliver Hunt.
2949 Cache function offsets to speed up javascript parsing
2950 https://bugs.webkit.org/show_bug.cgi?id=52622
2952 Use cache to save function offsets and some other info.
2953 This avoids quite a bit of work when reparsing the source.
2955 * parser/ASTBuilder.h:
2956 * parser/JSParser.cpp:
2957 (JSC::JSParser::CachedFunctionInfo::CachedFunctionInfo):
2958 (JSC::JSParser::CachedFunctionInfo::approximateByteSize):
2959 (JSC::JSParser::CachedFunctionInfo::closeBraceToken):
2960 (JSC::JSParser::Scope::copyCapturedVariablesToVector):
2961 (JSC::JSParser::Scope::saveFunctionInfo):
2962 (JSC::JSParser::Scope::restoreFunctionInfo):
2963 (JSC::JSParser::findCachedFunctionInfo):
2964 (JSC::JSParser::JSParser):
2965 (JSC::JSParser::parseProgram):
2966 (JSC::JSParser::parseFunctionInfo):
2968 (JSC::Lexer::setOffset):
2969 (JSC::Lexer::setLineNumber):
2970 (JSC::Lexer::sourceProvider):
2971 * parser/SourceProvider.h:
2972 (JSC::SourceProviderCache::SourceProviderCache):
2973 (JSC::SourceProviderCache::~SourceProviderCache):
2974 (JSC::SourceProviderCache::byteSize):
2975 (JSC::SourceProviderCache::add):
2976 (JSC::SourceProviderCache::get):
2977 (JSC::SourceProvider::SourceProvider):
2978 (JSC::SourceProvider::~SourceProvider):
2979 (JSC::SourceProvider::cache):
2980 (JSC::SourceProvider::notifyCacheSizeChanged):
2981 (JSC::SourceProvider::cacheSizeChanged):
2982 * parser/SyntaxChecker.h:
2984 2011-01-19 Mark Rowe <mrowe@apple.com>
2986 Reviewed by Darin Adler.
2988 Follow-up to r75766 / <rdar://problem/5469576>.
2990 * DerivedSources.make: Evaluate the SDKROOT variable correctly.
2992 2011-01-19 Oliver Hunt <oliver@apple.com>
2994 Reviewed by Gavin Barraclough.
2996 [jsfunfuzz] Defining a function called __proto__ inside an eval triggers an assertion
2997 https://bugs.webkit.org/show_bug.cgi?id=52672
2999 Rather than coming up with a somewhat convoluted mechanism to ensure that
3000 developers can override the global objects prototype with a function named
3001 __proto__ and expect it to work, we just disallow it at the syntax level.
3003 * parser/JSParser.cpp:
3004 (JSC::JSParser::parseFunctionInfo):
3006 2011-01-19 Michael Saboff <msaboff@apple.com>
3008 Reviewed by Darin Adler.
3010 <rdar://problem/8882994> Regression: Simple nested backtrack hangs
3011 https://bugs.webkit.org/show_bug.cgi?id=52675
3013 The changeset (r76076) for https://bugs.webkit.org/show_bug.cgi?id=52540
3014 broke simple backtracking in some cases. Reworked that change to
3015 link both jumps and labels.
3018 (JSC::Yarr::YarrGenerator::BacktrackDestination::hasBacktrackToLabel):
3019 (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom):
3020 (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
3022 2011-01-19 Pavel Podivilov <podivilov@chromium.org>
3024 Reviewed by Yury Semikhatsky.
3026 Web Inspector: [JSC] scripts have incorrect starting line (always 1).
3027 https://bugs.webkit.org/show_bug.cgi?id=52721
3029 * debugger/Debugger.cpp:
3030 (JSC::Debugger::recompileAllJSFunctions):
3031 * debugger/Debugger.h:
3033 (JSC::Parser::parse):
3034 * parser/SourceCode.h:
3035 (JSC::SourceCode::SourceCode):
3036 * parser/SourceProvider.h:
3037 (JSC::SourceProvider::startPosition):
3039 2011-01-19 Csaba Osztrogonác <ossy@webkit.org>
3041 Reviewed by Laszlo Gombos and Tor Arne Vestbø.
3043 [Qt] Remove unnecessary "../Source" from paths
3044 after moving source files into Source is finished.
3046 * JavaScriptCore.pri:
3048 2011-01-19 Benjamin Kalman <kalman@chromium.org>
3050 Reviewed by Darin Adler.
3052 Don't return void from void function String::split
3053 https://bugs.webkit.org/show_bug.cgi?id=52684
3055 * wtf/text/WTFString.cpp:
3056 (WTF::String::split):
3058 2011-01-18 Kenneth Russell <kbr@google.com>
3060 Unreviewed, rolling out r76078.
3061 http://trac.webkit.org/changeset/76078
3062 https://bugs.webkit.org/show_bug.cgi?id=52668
3064 Caused crashes of fast/canvas/webgl/constants.html,
3065 fast/canvas/webgl/gl-enum-tests.html, and possibly other layout
3066 test crashes in Release mode. WebGL crashes were observed with
3067 "run-webkit-tests fast/canvas/webgl". It was necessary to run
3068 multiple tests to provoke the crash.
3070 * interpreter/RegisterFile.h:
3071 (JSC::RegisterFile::markGlobals):
3072 * runtime/JSActivation.cpp:
3073 (JSC::JSActivation::markChildren):
3074 * runtime/JSGlobalObject.cpp:
3075 (JSC::JSGlobalObject::markChildren):
3077 2011-01-18 Oliver Hunt <oliver@apple.com>
3079 Reviewed by Gavin Barraclough.
3081 [jsfunfuzz] Assertion asking activation for arguments when arguments is overridden
3082 https://bugs.webkit.org/show_bug.cgi?id=52690
3084 Clean up code to retrieve arguments from activation and function objects.
3085 Remove the incorrect assertion from JSActivation's argumentsGetter.
3087 * interpreter/Interpreter.cpp:
3088 (JSC::Interpreter::retrieveArguments):
3089 * runtime/JSActivation.cpp:
3090 (JSC::JSActivation::argumentsGetter):
3092 2011-01-18 Geoffrey Garen <ggaren@apple.com>
3094 Reviewed by Darin Adler.
3096 Removed RegisterFile::markGlobals because it was obtuse, and it
3097 unnecessarily relied on conservative marking.
3098 https://bugs.webkit.org/show_bug.cgi?id=52668
3100 * interpreter/RegisterFile.h: Removed markGlobals.
3102 * runtime/JSActivation.cpp:
3103 (JSC::JSActivation::markChildren): Added a comment explaning why some
3104 JSActivations don't always mark their registers arrays.
3106 * runtime/JSGlobalObject.cpp:
3107 (JSC::JSGlobalObject::markChildren): Instead of calling markGlobals, mark
3108 the registers array directly.
3110 2011-01-18 Michael Saboff <msaboff@apple.com>
3112 Reviewed by Oliver Hunt.
3114 <rdar://problem/8875432> Regression: Some text-only e-mails cause hang beneath RegExp::match (52540)
3115 https://bugs.webkit.org/show_bug.cgi?id=52540
3116 https://bugs.webkit.org/show_bug.cgi?id=52662
3118 Directly use backtrack label with parentheses nested under a
3119 non-capturing parentheses. Also linked current parentheses
3120 tail code object for possible parens nested within a non-capturing
3124 (JSC::Yarr::YarrGenerator::BacktrackDestination::linkBacktrackToLabel):
3125 (JSC::Yarr::YarrGenerator::generateParenthesesSingle):
3127 2011-01-18 Daniel Bates <dbates@rim.com>
3129 Reviewed by Gavin Barraclough.
3131 Only use moving memory model assumption in ExecutableAllocator::intializePageSize() for Symbian OS
3132 https://bugs.webkit.org/show_bug.cgi?id=52517
3134 Patch by David Tapuska
3136 Currently, we compile code with respect to the Symbian-specific moving memory model
3137 assumption for all ARMv5 or lower architectures. Instead, we should only compile
3138 such code when building for Symbian OS on those architectures because this model
3139 is Symbian-specific.
3141 * jit/ExecutableAllocator.cpp:
3142 (JSC::ExecutableAllocator::intializePageSize):
3144 2011-01-18 Dimitry Andric <dim@freebsd.org>
3146 Reviewed by Andreas Kling.
3148 Fix linking JavaScriptCore on FreeBSD/amd64
3149 https://bugs.webkit.org/show_bug.cgi?id=52591
3151 Linking of JavaScriptCore on FreeBSD/amd64 fails, for the same reason as
3152 in bug 28422: cti_vm_throw needs a "@plt" suffix, otherwise the linker
3153 complains about the relocation type.
3155 * jit/JITStubs.cpp: use @plt suffix on x86_64 platforms, for both Linux
3158 2011-01-18 Oliver Hunt <oliver@apple.com>
3160 Reviewed by Antti Koivisto.
3162 [jsfunfuzz] Assertion in codegen for array of NaN constants
3163 https://bugs.webkit.org/show_bug.cgi?id=52643
3165 Don't cache NaN literals in the code generator, as NaN doesn't compare
3166 as equal to itself it causes problems when rehashing the number cache.
3168 * bytecompiler/BytecodeGenerator.cpp:
3169 (JSC::BytecodeGenerator::emitLoad):
3171 2011-01-17 Jarred Nicholls <jarred@sencha.com>
3173 Reviewed by Csaba Osztrogonác.
3175 REGRESSION(r75709): Return value of fscanf() shouldn't be ignored.
3176 https://bugs.webkit.org/show_bug.cgi?id=52585
3178 gcc 4.4.4+ has warn_unused_value attribute on fscanf, so we should check
3179 the return value to get around the gcc warning
3181 * jit/ExecutableAllocatorFixedVMPool.cpp:
3182 (JSC::maybeModifyVMPoolSize):
3184 2011-01-17 Michael Saboff <msaboff@apple.com>
3186 Reviewed by Oliver Hunt.
3188 [regexfuzz] Crash running regex with lookahead
3189 https://bugs.webkit.org/show_bug.cgi?id=52548
3191 Eliminated agressive chaining of backtracks. This code was overwriting
3192 already valid backtrack information.
3195 (JSC::Yarr::YarrGenerator::ParenthesesTail::processBacktracks):
3197 2011-01-17 Tony Gentilcore <tonyg@chromium.org>
3199 Reviewed by Alexey Proskuryakov.
3201 Fix some headers with missing or misspelled #ifndef guards
3202 https://bugs.webkit.org/show_bug.cgi?id=52545
3204 * wtf/RefPtrHashMap.h:
3206 2011-01-17 Dan Bernstein <mitz@apple.com>
3208 Rubber-stamped by Mark Rowe.
3210 Update xcodeproj svn:ignore to include xcuserdata.
3212 * JavaScriptCore.xcodeproj: Modified property svn:ignore.
3214 2011-01-16 Adam Barth <abarth@webkit.org>
3216 Rubber-stamped by Eric Seidel.
3218 Move WebKit into Source
3219 https://bugs.webkit.org/show_bug.cgi?id=52530
3221 * JavaScriptCore.gyp/JavaScriptCore.gyp:
3223 2011-01-16 Oliver Hunt <oliver@apple.com>
3225 Reviewed by Sam Weinig.
3227 [jsfunfuzz] Parser doesn't correctly validate for-loop syntax
3228 https://bugs.webkit.org/show_bug.cgi?id=52516
3230 Ensure that we always check for a semicolon after encountering
3231 multiple declarations in the initialiser portion of a for-loop.
3233 * parser/JSParser.cpp:
3234 (JSC::JSParser::parseForStatement):
3236 2011-01-16 Oliver Hunt <oliver@apple.com>
3238 Reviewed by Geoffrey Garen.
3240 Strict mode restrictions on arguments and eval usage aren't complete
3241 https://bugs.webkit.org/show_bug.cgi?id=52528
3243 Fix a few bugs in strict mode where we incorrect allow mutation of
3244 arguments and eval in the parser.
3246 Alas the "optimisation" used by the syntax checker for validating
3247 binary and unary expressions was too aggressive: we do actually need
3248 a stack for operations and operands although it needn't be as complete
3249 as that used for the full AST builder.
3251 Also disallow assignment to arguments in all cases as allowing arguments
3252 to be assignable is always an error in strict mode, regardless of context.
3254 * parser/ASTBuilder.h:
3255 (JSC::ASTBuilder::BinaryExprContext::BinaryExprContext):
3256 (JSC::ASTBuilder::UnaryExprContext::UnaryExprContext):
3257 * parser/JSParser.cpp:
3258 (JSC::JSParser::parseAssignmentExpression):
3259 (JSC::JSParser::parseBinaryExpression):
3260 (JSC::JSParser::parseUnaryExpression):
3261 * parser/SyntaxChecker.h:
3262 (JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
3263 (JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
3264 (JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
3265 (JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
3266 (JSC::SyntaxChecker::appendBinaryExpressionInfo):
3267 (JSC::SyntaxChecker::operatorStackPop):
3269 2011-01-15 Geoffrey Garen <ggaren@apple.com>
3271 Reviewed by Oliver Hunt.
3273 Rolled back in r75886.
3274 https://bugs.webkit.org/show_bug.cgi?id=52527
3276 r75886 broke the GTK Linux bot because Linux was -- quite surprisingly --
3277 set up to use the constants for embedded devices.
3279 * jit/ExecutableAllocatorFixedVMPool.cpp:
3280 (JSC::maybeModifyVMPoolSize): Separated Linux constants from embedded
3283 2011-01-15 Sheriff Bot <webkit.review.bot@gmail.com>
3285 Unreviewed, rolling out r75886.
3286 http://trac.webkit.org/changeset/75886
3287 https://bugs.webkit.org/show_bug.cgi?id=52526
3289 "Broke GTK+ 64bit" (Requested by xan_ on #webkit).
3291 * jit/ExecutableAllocatorFixedVMPool.cpp:
3293 2011-01-15 Geoffrey Garen <ggaren@apple.com>
3295 Reviewed by Sam Weinig.
3297 <rdar://problem/8870429> Shrink the executable pool on embedded devices
3299 * jit/ExecutableAllocatorFixedVMPool.cpp: Dropped the pool size from 32MB
3302 2011-01-15 Oliver Hunt <oliver@apple.com>
3304 Reviewed by Maciej Stachowiak.
3306 Incorrect behavior changing attributes of an accessor
3307 https://bugs.webkit.org/show_bug.cgi?id=52515
3309 defineProperty doesn't correctly handle changing attributes of an accessor
3310 property. This is because we don't pass the full descriptor to the
3311 putDescriptor helper function, which means we have insufficient information
3312 to do the right thing. Once that's passed the correct behavior is relatively
3313 simple to implement.
3315 * runtime/JSObject.cpp:
3316 (JSC::putDescriptor):
3317 (JSC::JSObject::defineOwnProperty):
3319 2011-01-14 Oliver Hunt <oliver@apple.com>
3321 Reviewed by Maciej Stachowiak.
3323 [jsfunfuzz] Incorrect handling of consecutive duplicate labels
3324 https://bugs.webkit.org/show_bug.cgi?id=52505
3326 Compare StringImpl*'s instead of Identifier*'s when looking for duplicate
3329 * parser/JSParser.cpp:
3330 (JSC::JSParser::parseExpressionOrLabelStatement):
3332 2011-01-14 Simon Fraser <simon.fraser@apple.com>
3336 Initialize m_operationInProgress after r75855.
3341 2011-01-14 Geoffrey Garen <ggaren@apple.com>
3343 Reverted accidentally committed code from my last checkin.
3346 (JSC::Heap::markRoots):
3348 2011-01-14 Geoffrey Garen <ggaren@apple.com>
3350 Reviewed by Sam Weinig.
3352 Try to fix the GTK bot.
3356 (JSC::Heap::markRoots): Kids, remember to initialize your data members.
3357 Knowing is half the battle.
3359 2011-01-14 Oliver Hunt <oliver@apple.com>
3361 Reviewed by Stephanie Lewis.
3363 [jsfunfuzz] We should be clearing the lexers temporary character buffers when switching to strict mode
3364 https://bugs.webkit.org/show_bug.cgi?id=52501
3366 Clear the temporary character buffers used for reading escaped characters and
3370 (JSC::Lexer::setOffset):
3372 2011-01-14 Geoffrey Garen <ggaren@apple.com>
3374 Try to fix non-Dtrace builds: #include Tracing.h instead of TracingDtrace.h.
3378 2011-01-13 Geoffrey Garen <ggaren@apple.com>
3380 Reviewed by Oliver Hunt.
3382 Split out a MarkedSpace strategy object from Heap.
3383 https://bugs.webkit.org/show_bug.cgi?id=52421
3385 SunSpider reports no change.
3390 * JavaScriptCore.gypi:
3391 * JavaScriptCore.pro:
3392 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
3393 * JavaScriptCore.xcodeproj/project.pbxproj: Updated our 7 build systems. Which is cool.
3397 (JSC::Heap::destroy):
3398 (JSC::Heap::recordExtraCost):
3399 (JSC::Heap::allocate):
3400 (JSC::Heap::markConservatively):
3401 (JSC::Heap::markRoots):
3402 (JSC::Heap::objectCount):
3403 (JSC::Heap::statistics):
3405 (JSC::Heap::isBusy):
3406 (JSC::Heap::collectAllGarbage):
3407 (JSC::Heap::primaryHeapBegin):
3408 (JSC::Heap::primaryHeapEnd):
3410 (JSC::Heap::globalData):
3411 (JSC::Heap::markedSpace):
3412 (JSC::Heap::isCellMarked):
3413 (JSC::Heap::checkMarkCell):
3414 (JSC::Heap::markCell): Moved all code pertaining to managing chunks of
3415 collector memory out of this class. Heap now just delegates to MarkedSpace.
3418 (JSC::JSCell::Heap::heap): Updated for MarkedSpace delegation.
3420 * runtime/JSValue.h: Moved the ValueStringPair typedef to help with #includes.
3422 * runtime/MarkedSpace.cpp: Copied from runtime/Heap.cpp.
3423 (JSC::MarkedSpace::MarkedSpace):
3424 (JSC::MarkedSpace::destroy):
3425 (JSC::MarkedSpace::allocateBlock):
3426 (JSC::MarkedSpace::freeBlock):
3427 (JSC::MarkedSpace::allocate):
3428 (JSC::MarkedSpace::resizeBlocks):
3429 (JSC::MarkedSpace::growBlocks):
3430 (JSC::MarkedSpace::shrinkBlocks):
3431 (JSC::MarkedSpace::markConservatively):
3432 (JSC::MarkedSpace::clearMarkBits):
3433 (JSC::MarkedSpace::markedCells):
3434 (JSC::MarkedSpace::sweep):
3435 (JSC::MarkedSpace::objectCount):
3436 (JSC::MarkedSpace::addToStatistics):
3437 (JSC::MarkedSpace::statistics):
3438 (JSC::MarkedSpace::size):
3439 (JSC::MarkedSpace::reset):
3440 (JSC::MarkedSpace::primaryHeapBegin):
3441 (JSC::MarkedSpace::primaryHeapEnd):
3442 * runtime/MarkedSpace.h: Copied from runtime/Heap.h.
3443 (JSC::MarkedSpace::globalData):
3444 (JSC::MarkedSpace::didShrink):
3445 (JSC::MarkedSpace::cellBlock):
3446 (JSC::MarkedSpace::cellOffset):
3447 (JSC::MarkedSpace::isCellMarked):
3448 (JSC::MarkedSpace::checkMarkCell):
3449 (JSC::MarkedSpace::markCell): Moved all code pertaining to managing chunks of
3450 collector memory into this class.
3452 * runtime/MemoryStatistics.cpp:
3453 (JSC::heapStatistics):
3454 * runtime/MemoryStatistics.h: Updated for MarkedSpace delegation.
3456 2011-01-14 Oliver Hunt <oliver@apple.com>
3458 Reviewed by Gavin Barraclough.
3460 [jsfunfuzz] parser doesn't enforce continue restrictions correctly.
3461 https://bugs.webkit.org/show_bug.cgi?id=52493
3463 This patch reworks handling of break, continue and label statements
3464 to correctly handle all the valid and invalid cases. Previously certain
3465 errors would be missed by the parser in strict mode, but the bytecode
3466 generator needed to handle those cases for non-strict code so nothing
3467 failed, it simply became non-standard behaviour.