Changeset 50254 in webkit for trunk/JavaScriptCore/ChangeLog
- Timestamp:
- Oct 28, 2009, 6:25:02 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r50248 r50254 1 2009-10-28 Oliver Hunt <[email protected]> 2 3 Reviewed by Geoff Garen. 4 5 Improve for..in enumeration performance 6 https://bugs.webkit.org/show_bug.cgi?id=30887 7 8 Improve indexing of an object with a for..in iterator by 9 identifying cases where get_by_val is being used with a iterator 10 as the subscript and replace it with a new get_by_pname 11 bytecode. get_by_pname then optimizes lookups that directly access 12 the base object. 13 14 * bytecode/CodeBlock.cpp: 15 (JSC::CodeBlock::dump): 16 * bytecode/Opcode.h: 17 * bytecompiler/BytecodeGenerator.cpp: 18 (JSC::BytecodeGenerator::emitGetByVal): 19 * bytecompiler/BytecodeGenerator.h: 20 (JSC::BytecodeGenerator::pushOptimisedForIn): 21 (JSC::BytecodeGenerator::popOptimisedForIn): 22 * interpreter/Interpreter.cpp: 23 (JSC::Interpreter::privateExecute): 24 * jit/JIT.cpp: 25 (JSC::JIT::privateCompileMainPass): 26 (JSC::JIT::privateCompileSlowCases): 27 * jit/JIT.h: 28 * jit/JITPropertyAccess.cpp: 29 (JSC::JIT::compileGetDirectOffset): 30 (JSC::JIT::emit_op_get_by_pname): 31 (JSC::JIT::emitSlow_op_get_by_pname): 32 * parser/Nodes.cpp: 33 (JSC::ForInNode::emitBytecode): 34 * runtime/JSObject.h: 35 * runtime/JSPropertyNameIterator.cpp: 36 (JSC::JSPropertyNameIterator::create): 37 * runtime/JSPropertyNameIterator.h: 38 (JSC::JSPropertyNameIterator::getOffset): 39 (JSC::JSPropertyNameIterator::JSPropertyNameIterator): 40 * runtime/JSValue.h: 41 (JSC::JSValue::): 42 * runtime/Structure.cpp: 43 (JSC::Structure::addPropertyTransition): 44 (JSC::Structure::changePrototypeTransition): 45 (JSC::Structure::despecifyFunctionTransition): 46 (JSC::Structure::addAnonymousSlotsTransition): 47 (JSC::Structure::getterSetterTransition): 48 (JSC::Structure::toDictionaryTransition): 49 (JSC::Structure::addPropertyWithoutTransition): 50 Track the existence (or not) of non-enumerable properties. 51 * runtime/Structure.h: 52 (JSC::Structure::propertyStorageCapacity): 53 (JSC::Structure::propertyStorageSize): 54 (JSC::Structure::hasNonEnumerableProperties): 55 (JSC::Structure::hasAnonymousSlots): 56 1 57 2009-10-28 Dmitry Titov <[email protected]> 2 58
Note:
See TracChangeset
for help on using the changeset viewer.