Ignore:
Timestamp:
Mar 25, 2014, 11:00:30 AM (11 years ago)
Author:
[email protected]
Message:

ASSERTION FAILED in Parser: dst != localReg
https://bugs.webkit.org/show_bug.cgi?id=130710

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Just make sure we don't try to write to a captured constant,
following the change to track captured variables separately.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):

LayoutTests:

New testcases.

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

    r166107 r166240  
    741741            generator.emitReadOnlyExceptionIfNeeded();
    742742            localReg = generator.emitMove(generator.tempDestination(dst), localReg);
    743         }
    744         if (local.isCaptured()) {
     743        } else if (local.isCaptured()) {
    745744            RefPtr<RegisterID> tempDst = generator.finalDestination(dst);
    746745            ASSERT(dst != localReg);
     
    917916            generator.emitReadOnlyExceptionIfNeeded();
    918917            localReg = generator.emitMove(generator.tempDestination(dst), localReg);
    919         }
    920         if (local.isCaptured()) {
     918        } else if (local.isCaptured()) {
    921919            RefPtr<RegisterID> tempDst = generator.tempDestination(dst);
    922920            generator.emitMove(tempDst.get(), localReg);
Note: See TracChangeset for help on using the changeset viewer.