Changeset 77006 in webkit for trunk/Source/JavaScriptCore/ChangeLog
- Timestamp:
- Jan 28, 2011, 3:39:54 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r76975 r77006 1 2011-01-27 Oliver Hunt <[email protected]> 2 3 Reviewed by Geoffrey Garen. 4 5 Convert markstack to a slot visitor API 6 https://bugs.webkit.org/show_bug.cgi?id=53219 7 8 Move the MarkStack over to a slot based marking API. 9 10 In order to avoiding aliasing concerns there are two new types 11 that need to be used when holding on to JSValues and JSCell that 12 need to be marked: WriteBarrier and DeprecatedPtr. WriteBarrier 13 is expected to be used for any JSValue or Cell that's lifetime and 14 marking is controlled by another GC object. DeprecatedPtr is used 15 for any value that we need to rework ownership for. 16 17 The change over to this model has produced a large amount of 18 code changes, but they are mostly mechanical (forwarding JSGlobalData, 19 etc). 20 21 * API/JSCallbackObject.h: 22 (JSC::JSCallbackObjectData::setPrivateProperty): 23 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::getPrivateProperty): 24 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::setPrivateProperty): 25 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::markChildren): 26 (JSC::JSCallbackObject::setPrivateProperty): 27 * API/JSCallbackObjectFunctions.h: 28 (JSC::::put): 29 (JSC::::staticFunctionGetter): 30 * API/JSObjectRef.cpp: 31 (JSObjectMakeConstructor): 32 (JSObjectSetPrivateProperty): 33 * API/JSWeakObjectMapRefInternal.h: 34 * JavaScriptCore.exp: 35 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 36 * JavaScriptCore.xcodeproj/project.pbxproj: 37 * bytecode/CodeBlock.cpp: 38 (JSC::CodeBlock::markAggregate): 39 * bytecode/CodeBlock.h: 40 (JSC::CodeBlock::globalObject): 41 * bytecompiler/BytecodeGenerator.cpp: 42 (JSC::BytecodeGenerator::BytecodeGenerator): 43 (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall): 44 (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply): 45 (JSC::BytecodeGenerator::findScopedProperty): 46 * debugger/DebuggerActivation.cpp: 47 (JSC::DebuggerActivation::DebuggerActivation): 48 (JSC::DebuggerActivation::markChildren): 49 * debugger/DebuggerActivation.h: 50 * interpreter/Interpreter.cpp: 51 (JSC::Interpreter::resolve): 52 (JSC::Interpreter::resolveSkip): 53 (JSC::Interpreter::resolveGlobalDynamic): 54 (JSC::Interpreter::resolveBaseAndProperty): 55 (JSC::Interpreter::unwindCallFrame): 56 (JSC::appendSourceToError): 57 (JSC::Interpreter::execute): 58 (JSC::Interpreter::privateExecute): 59 * interpreter/Register.h: 60 (JSC::Register::jsValueSlot): 61 * jit/JITStubs.cpp: 62 (JSC::JITThunks::tryCacheGetByID): 63 (JSC::DEFINE_STUB_FUNCTION): 64 * jsc.cpp: 65 (GlobalObject::GlobalObject): 66 * runtime/Arguments.cpp: 67 (JSC::Arguments::markChildren): 68 (JSC::Arguments::getOwnPropertySlot): 69 (JSC::Arguments::getOwnPropertyDescriptor): 70 (JSC::Arguments::put): 71 * runtime/Arguments.h: 72 (JSC::Arguments::setActivation): 73 (JSC::Arguments::Arguments): 74 * runtime/ArrayConstructor.cpp: 75 (JSC::ArrayConstructor::ArrayConstructor): 76 (JSC::constructArrayWithSizeQuirk): 77 * runtime/ArrayPrototype.cpp: 78 (JSC::arrayProtoFuncSplice): 79 * runtime/BatchedTransitionOptimizer.h: 80 (JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer): 81 (JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer): 82 * runtime/BooleanConstructor.cpp: 83 (JSC::BooleanConstructor::BooleanConstructor): 84 (JSC::constructBoolean): 85 (JSC::constructBooleanFromImmediateBoolean): 86 * runtime/BooleanPrototype.cpp: 87 (JSC::BooleanPrototype::BooleanPrototype): 88 * runtime/ConservativeSet.h: 89 (JSC::ConservativeSet::mark): 90 * runtime/DateConstructor.cpp: 91 (JSC::DateConstructor::DateConstructor): 92 * runtime/DateInstance.cpp: 93 (JSC::DateInstance::DateInstance): 94 * runtime/DatePrototype.cpp: 95 (JSC::dateProtoFuncSetTime): 96 (JSC::setNewValueFromTimeArgs): 97 (JSC::setNewValueFromDateArgs): 98 (JSC::dateProtoFuncSetYear): 99 * runtime/ErrorConstructor.cpp: 100 (JSC::ErrorConstructor::ErrorConstructor): 101 * runtime/ErrorInstance.cpp: 102 (JSC::ErrorInstance::ErrorInstance): 103 * runtime/ErrorPrototype.cpp: 104 (JSC::ErrorPrototype::ErrorPrototype): 105 * runtime/FunctionConstructor.cpp: 106 (JSC::FunctionConstructor::FunctionConstructor): 107 * runtime/FunctionPrototype.cpp: 108 (JSC::FunctionPrototype::FunctionPrototype): 109 * runtime/GetterSetter.cpp: 110 (JSC::GetterSetter::markChildren): 111 * runtime/GetterSetter.h: 112 (JSC::GetterSetter::GetterSetter): 113 (JSC::GetterSetter::getter): 114 (JSC::GetterSetter::setGetter): 115 (JSC::GetterSetter::setter): 116 (JSC::GetterSetter::setSetter): 117 * runtime/GlobalEvalFunction.cpp: 118 (JSC::GlobalEvalFunction::GlobalEvalFunction): 119 (JSC::GlobalEvalFunction::markChildren): 120 * runtime/GlobalEvalFunction.h: 121 (JSC::GlobalEvalFunction::cachedGlobalObject): 122 * runtime/Heap.cpp: 123 (JSC::Heap::markProtectedObjects): 124 (JSC::Heap::markTempSortVectors): 125 (JSC::Heap::markRoots): 126 * runtime/InternalFunction.cpp: 127 (JSC::InternalFunction::InternalFunction): 128 * runtime/JSAPIValueWrapper.h: 129 (JSC::JSAPIValueWrapper::value): 130 (JSC::JSAPIValueWrapper::JSAPIValueWrapper): 131 * runtime/JSActivation.cpp: 132 (JSC::JSActivation::put): 133 * runtime/JSArray.cpp: 134 (JSC::JSArray::JSArray): 135 (JSC::JSArray::getOwnPropertySlot): 136 (JSC::JSArray::getOwnPropertyDescriptor): 137 (JSC::JSArray::put): 138 (JSC::JSArray::putSlowCase): 139 (JSC::JSArray::deleteProperty): 140 (JSC::JSArray::increaseVectorLength): 141 (JSC::JSArray::setLength): 142 (JSC::JSArray::pop): 143 (JSC::JSArray::push): 144 (JSC::JSArray::unshiftCount): 145 (JSC::JSArray::sort): 146 (JSC::JSArray::fillArgList): 147 (JSC::JSArray::copyToRegisters): 148 (JSC::JSArray::compactForSorting): 149 * runtime/JSArray.h: 150 (JSC::JSArray::getIndex): 151 (JSC::JSArray::setIndex): 152 (JSC::JSArray::uncheckedSetIndex): 153 (JSC::JSArray::markChildrenDirect): 154 * runtime/JSByteArray.cpp: 155 (JSC::JSByteArray::JSByteArray): 156 * runtime/JSCell.h: 157 (JSC::JSCell::MarkStack::append): 158 (JSC::JSCell::MarkStack::appendCell): 159 * runtime/JSFunction.cpp: 160 (JSC::JSFunction::JSFunction): 161 (JSC::JSFunction::getOwnPropertySlot): 162 * runtime/JSGlobalObject.cpp: 163 (JSC::markIfNeeded): 164 (JSC::JSGlobalObject::reset): 165 (JSC::JSGlobalObject::resetPrototype): 166 (JSC::JSGlobalObject::markChildren): 167 * runtime/JSGlobalObject.h: 168 (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData): 169 (JSC::JSGlobalObject::regExpConstructor): 170 (JSC::JSGlobalObject::errorConstructor): 171 (JSC::JSGlobalObject::evalErrorConstructor): 172 (JSC::JSGlobalObject::rangeErrorConstructor): 173 (JSC::JSGlobalObject::referenceErrorConstructor): 174 (JSC::JSGlobalObject::syntaxErrorConstructor): 175 (JSC::JSGlobalObject::typeErrorConstructor): 176 (JSC::JSGlobalObject::URIErrorConstructor): 177 (JSC::JSGlobalObject::evalFunction): 178 (JSC::JSGlobalObject::objectPrototype): 179 (JSC::JSGlobalObject::functionPrototype): 180 (JSC::JSGlobalObject::arrayPrototype): 181 (JSC::JSGlobalObject::booleanPrototype): 182 (JSC::JSGlobalObject::stringPrototype): 183 (JSC::JSGlobalObject::numberPrototype): 184 (JSC::JSGlobalObject::datePrototype): 185 (JSC::JSGlobalObject::regExpPrototype): 186 (JSC::JSGlobalObject::methodCallDummy): 187 (JSC::constructArray): 188 * runtime/JSONObject.cpp: 189 (JSC::Stringifier::Holder::object): 190 (JSC::Stringifier::Holder::objectSlot): 191 (JSC::Stringifier::markAggregate): 192 (JSC::Stringifier::stringify): 193 (JSC::Stringifier::Holder::appendNextProperty): 194 (JSC::Walker::callReviver): 195 (JSC::Walker::walk): 196 * runtime/JSObject.cpp: 197 (JSC::JSObject::defineGetter): 198 (JSC::JSObject::defineSetter): 199 (JSC::JSObject::removeDirect): 200 (JSC::JSObject::putDirectFunction): 201 (JSC::JSObject::putDirectFunctionWithoutTransition): 202 (JSC::putDescriptor): 203 (JSC::JSObject::defineOwnProperty): 204 * runtime/JSObject.h: 205 (JSC::JSObject::putDirectOffset): 206 (JSC::JSObject::putUndefinedAtDirectOffset): 207 (JSC::JSObject::flattenDictionaryObject): 208 (JSC::JSObject::putDirectInternal): 209 (JSC::JSObject::putDirect): 210 (JSC::JSObject::putDirectFunction): 211 (JSC::JSObject::putDirectWithoutTransition): 212 (JSC::JSObject::putDirectFunctionWithoutTransition): 213 (JSC::JSValue::putDirect): 214 (JSC::JSObject::allocatePropertyStorageInline): 215 (JSC::JSObject::markChildrenDirect): 216 * runtime/JSStaticScopeObject.cpp: 217 (JSC::JSStaticScopeObject::markChildren): 218 * runtime/JSString.cpp: 219 (JSC::StringObject::create): 220 * runtime/JSValue.h: 221 * runtime/JSWrapperObject.cpp: 222 (JSC::JSWrapperObject::markChildren): 223 * runtime/JSWrapperObject.h: 224 (JSC::JSWrapperObject::internalValue): 225 (JSC::JSWrapperObject::setInternalValue): 226 * runtime/LiteralParser.cpp: 227 (JSC::LiteralParser::parse): 228 * runtime/Lookup.cpp: 229 (JSC::setUpStaticFunctionSlot): 230 * runtime/Lookup.h: 231 (JSC::lookupPut): 232 * runtime/MarkStack.h: 233 * runtime/MathObject.cpp: 234 (JSC::MathObject::MathObject): 235 * runtime/NativeErrorConstructor.cpp: 236 (JSC::NativeErrorConstructor::NativeErrorConstructor): 237 * runtime/NativeErrorPrototype.cpp: 238 (JSC::NativeErrorPrototype::NativeErrorPrototype): 239 * runtime/NumberConstructor.cpp: 240 (JSC::NumberConstructor::NumberConstructor): 241 (JSC::constructWithNumberConstructor): 242 * runtime/NumberObject.cpp: 243 (JSC::constructNumber): 244 * runtime/NumberPrototype.cpp: 245 (JSC::NumberPrototype::NumberPrototype): 246 * runtime/ObjectConstructor.cpp: 247 (JSC::ObjectConstructor::ObjectConstructor): 248 (JSC::objectConstructorGetOwnPropertyDescriptor): 249 * runtime/Operations.h: 250 (JSC::normalizePrototypeChain): 251 (JSC::resolveBase): 252 * runtime/PrototypeFunction.cpp: 253 (JSC::PrototypeFunction::PrototypeFunction): 254 * runtime/PutPropertySlot.h: 255 (JSC::PutPropertySlot::setExistingProperty): 256 (JSC::PutPropertySlot::setNewProperty): 257 (JSC::PutPropertySlot::base): 258 * runtime/RegExpConstructor.cpp: 259 (JSC::RegExpConstructor::RegExpConstructor): 260 * runtime/ScopeChain.cpp: 261 (JSC::ScopeChainNode::print): 262 * runtime/ScopeChain.h: 263 (JSC::ScopeChainNode::~ScopeChainNode): 264 (JSC::ScopeChainIterator::operator*): 265 (JSC::ScopeChainIterator::operator->): 266 (JSC::ScopeChain::top): 267 * runtime/ScopeChainMark.h: 268 (JSC::ScopeChain::markAggregate): 269 * runtime/SmallStrings.cpp: 270 (JSC::isMarked): 271 (JSC::SmallStrings::markChildren): 272 * runtime/SmallStrings.h: 273 (JSC::SmallStrings::emptyString): 274 (JSC::SmallStrings::singleCharacterString): 275 (JSC::SmallStrings::singleCharacterStrings): 276 * runtime/StringConstructor.cpp: 277 (JSC::StringConstructor::StringConstructor): 278 * runtime/StringObject.cpp: 279 (JSC::StringObject::StringObject): 280 * runtime/StringObject.h: 281 * runtime/StringPrototype.cpp: 282 (JSC::StringPrototype::StringPrototype): 283 * runtime/Structure.cpp: 284 (JSC::Structure::flattenDictionaryStructure): 285 * runtime/Structure.h: 286 (JSC::Structure::storedPrototypeSlot): 287 * runtime/WeakGCMap.h: 288 (JSC::WeakGCMap::uncheckedGet): 289 (JSC::WeakGCMap::uncheckedGetSlot): 290 (JSC::::get): 291 (JSC::::take): 292 (JSC::::set): 293 (JSC::::uncheckedRemove): 294 * runtime/WriteBarrier.h: Added. 295 (JSC::DeprecatedPtr::DeprecatedPtr): 296 (JSC::DeprecatedPtr::get): 297 (JSC::DeprecatedPtr::operator*): 298 (JSC::DeprecatedPtr::operator->): 299 (JSC::DeprecatedPtr::slot): 300 (JSC::DeprecatedPtr::operator UnspecifiedBoolType*): 301 (JSC::DeprecatedPtr::operator!): 302 (JSC::WriteBarrierBase::set): 303 (JSC::WriteBarrierBase::get): 304 (JSC::WriteBarrierBase::operator*): 305 (JSC::WriteBarrierBase::operator->): 306 (JSC::WriteBarrierBase::slot): 307 (JSC::WriteBarrierBase::operator UnspecifiedBoolType*): 308 (JSC::WriteBarrierBase::operator!): 309 (JSC::WriteBarrier::WriteBarrier): 310 (JSC::operator==): 311 1 312 2011-01-28 Adam Roben <[email protected]> 2 313
Note:
See TracChangeset
for help on using the changeset viewer.