espruino / Espruino

The Espruino JavaScript interpreter - Official Repo
http://www.espruino.com/
Other
2.75k stars 739 forks source link

ASSERT(!a || jsvIsName(a)) FAILED AT src/jsparse.c:1604 #2365

Closed Limesss closed 1 year ago

Limesss commented 1 year ago

Reproduce: make Debug=1 POC:

{
  let z = ({x: {y} = {y: 42}} = {}) => y;
  assertEquals(42, z());
}

{
  let z = ({x: [y] = [42]} = {}) => y;
  assertEquals(42, z());
}

details: ASSERT(!a || jsvIsName(a)) FAILED AT src/jsparse.c:1604

1[r1,l2] Object {

#2[r1,l2] Name String [1 blocks] "\xFF"      #3[r1,l1] Object { 
    #6[r1,l2] Name String [1 blocks] "timers"          #7[r2,l0] Array(0) [ ] 
    #8[r1,l2] Name String [1 blocks] "watches"          #9[r2,l0] Array(0) [ ] 
    #51[r1,l2] Name String [1 blocks] "except"          #45[r1,l0] Object { 
        #46[r1,l2] Name String [2 blocks] "__proto__"              #42[r2,l0] ...

        #48[r1,l2] Name String [1 blocks] "message"              #36[r1,l0] String [1 blocks] "\"y\" is not defined"  
        #50[r1,l2] Name String [1 blocks] "type"              #49[r1,l0] String [1 blocks] "ReferenceError"  
      } 
    #52[r1,l2] Name String [1 blocks] "sTrace"          #53[r1,l0] String [4 blocks] " at line 6 col 17\n  let z = ({x: {y} = {y: 42}} = {}) => y;\n                ^\n"  
  } 
#11[r1,l2] Name String [1 blocks] "quit"      #10[r1,l0] NativeFunction 0x7c7bc100 (0) { } 
#37[r1,l2] Name String [2 blocks] "ReferenceError"      #39[r2,l0] NativeFunction 0x7c7c5730 (9) { 
    #40[r1,l2] Name String [2 blocks] "prototype"          #42[r2,l0] Object { 
        #43[r1,l2] Name String [2 blocks] "constructor"              #39[r2,l0] ...

      } 
  } 

} EXITING.