Changeset 154120 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Aug 15, 2013, 12:44:16 PM (12 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r154119 r154120 1 2013-08-15 Oliver Hunt <[email protected]> 2 3 <https://webkit.org/b/119830> Assigning to a readonly global results in DFG byte code parse failure 4 5 Reviewed by Filip Pizlo. 6 7 Make sure dfgCapabilities doesn't report a Dynamic put as 8 being compilable when we don't actually support it. 9 10 * bytecode/CodeBlock.cpp: 11 (JSC::CodeBlock::dumpBytecode): 12 * dfg/DFGCapabilities.cpp: 13 (JSC::DFG::capabilityLevel): 14 1 15 2013-08-15 Brent Fulgham <[email protected]> 2 16 -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r153962 r154120 1292 1292 int r0 = (++it)->u.operand; 1293 1293 int id0 = (++it)->u.operand; 1294 ++it; // ResolveType1294 int resolveModeAndType = (++it)->u.operand; 1295 1295 ++it; // depth 1296 out.printf("[%4d] resolve_scope\t %s, %s ", location, registerName(r0).data(), idName(id0, identifier(id0)).data());1296 out.printf("[%4d] resolve_scope\t %s, %s, %d", location, registerName(r0).data(), idName(id0, identifier(id0)).data(), resolveModeAndType); 1297 1297 break; 1298 1298 } -
trunk/Source/JavaScriptCore/dfg/DFGCapabilities.cpp
r153248 r154120 171 171 case op_in: 172 172 case op_get_from_scope: 173 case op_put_to_scope:174 173 return CanCompileAndInline; 174 175 case op_put_to_scope: { 176 ResolveType resolveType = ResolveModeAndType(pc[4].u.operand).type(); 177 // If we're writing to a readonly property we emit a Dynamic put that 178 // the DFG can't currently handle. 179 if (resolveType == Dynamic) 180 return CannotCompile; 181 return CanCompileAndInline; 182 } 175 183 176 184 case op_resolve_scope: { 177 185 // We don't compile 'catch' or 'with', so there's no point in compiling variable resolution within them. 178 ResolveType resolveType = static_cast<ResolveType>(pc[3].u.operand);186 ResolveType resolveType = ResolveModeAndType(pc[4].u.operand).type(); 179 187 if (resolveType == Dynamic) 180 188 return CannotCompile;
Note:
See TracChangeset
for help on using the changeset viewer.