Changeset 153074 in webkit
- Timestamp:
- Jul 23, 2013 6:10:02 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r153073 r153074 1 2013-07-10 Mark Lam <mark.lam@apple.com> 2 3 Need ExpressionRangeInfo before ResolveForPuts in strict mode. 4 https://bugs.webkit.org/show_bug.cgi?id=118997. 5 6 Reviewed by Oliver Hunt. 7 8 If we add an assertion in UnlinkedCodeBlock::expressionRangeForBytecodeOffset() 9 to ensure that we are able to find an ExpressionRangeInfo for any given bytecode 10 offset, the following tests will fails: 11 fast/js/basic-strict-mode.html 12 fast/js/mozilla/strict/8.7.2.html 13 With this fix, those tests will no longer fail. 14 15 * bytecompiler/NodesCodegen.cpp: 16 (JSC::AssignResolveNode::emitBytecode): 17 (JSC::ForInNode::emitBytecode): 18 - Emit expression info before calls to emitResolveBaseForPut() when in strict mode. 19 1 20 2013-07-23 Mark Lam <mark.lam@apple.com> 2 21 -
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r153073 r153074 1362 1362 1363 1363 NonlocalResolveInfo resolveVerifier; 1364 if (generator.isStrictMode()) 1365 generator.emitExpressionInfo(divot(), divotStartOffset(), divotEndOffset(), divotLine(), divotLineStart()); 1364 1366 RefPtr<RegisterID> base = generator.emitResolveBaseForPut(generator.newTemporary(), resolveResult, m_ident, resolveVerifier); 1365 1367 if (dst == generator.ignoredResult()) … … 1740 1742 RefPtr<RegisterID> protect = propertyName; 1741 1743 NonlocalResolveInfo resolveVerifier; 1744 if (generator.isStrictMode()) 1745 generator.emitExpressionInfo(divot(), divotStartOffset(), divotEndOffset(), divotLine(), divotLineStart()); 1742 1746 RegisterID* base = generator.emitResolveBaseForPut(generator.newTemporary(), resolveResult, ident, resolveVerifier); 1743 1747
Note: See TracChangeset
for help on using the changeset viewer.