Fix super property assignment for namedaccessor properties (#3654)

Tha patch also updates the [[Put]] internal method with the new steps from the ES6 standard.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
Robert Fancsik
2020-04-09 17:08:08 +02:00
committed by GitHub
parent 901e57c7d0
commit 60db840cf4
9 changed files with 306 additions and 16 deletions
+12 -2
View File
@@ -496,6 +496,12 @@
VM_OC_MOV_IDENT | VM_OC_GET_STACK | VM_OC_PUT_IDENT) \
CBC_OPCODE (CBC_ASSIGN_LET_CONST, CBC_HAS_LITERAL_ARG, -1, \
VM_OC_ASSIGN_LET_CONST | VM_OC_GET_STACK) \
CBC_OPCODE (CBC_ASSIGN_SUPER, CBC_NO_FLAG, -3, \
VM_OC_ASSIGN_SUPER) \
CBC_OPCODE (CBC_ASSIGN_SUPER_PUSH_RESULT, CBC_NO_FLAG, -2, \
VM_OC_ASSIGN_SUPER | VM_OC_PUT_STACK) \
CBC_OPCODE (CBC_ASSIGN_SUPER_BLOCK, CBC_NO_FLAG, -3, \
VM_OC_ASSIGN_SUPER | VM_OC_PUT_BLOCK) \
\
/* Last opcode (not a real opcode). */ \
CBC_OPCODE (CBC_END, CBC_NO_FLAG, 0, \
@@ -616,11 +622,15 @@
VM_OC_PUSH_SUPER_CONSTRUCTOR) \
CBC_OPCODE (CBC_EXT_PUSH_SUPER_PROP, CBC_NO_FLAG, 0, \
VM_OC_SUPER_REFERENCE | VM_OC_GET_STACK) \
CBC_OPCODE (CBC_EXT_SUPER_PROP_CALL_REFERENCE, CBC_NO_FLAG, 2, \
CBC_OPCODE (CBC_EXT_SUPER_PROP_REFERENCE, CBC_NO_FLAG, 2, \
VM_OC_SUPER_REFERENCE | VM_OC_GET_STACK) \
CBC_OPCODE (CBC_EXT_PUSH_SUPER_PROP_LITERAL, CBC_HAS_LITERAL_ARG, 1, \
VM_OC_SUPER_REFERENCE | VM_OC_GET_LITERAL) \
CBC_OPCODE (CBC_EXT_SUPER_PROP_LITERAL_CALL_REFERENCE, CBC_HAS_LITERAL_ARG, 3, \
CBC_OPCODE (CBC_EXT_SUPER_PROP_LITERAL_REFERENCE, CBC_HAS_LITERAL_ARG, 3, \
VM_OC_SUPER_REFERENCE | VM_OC_GET_LITERAL) \
CBC_OPCODE (CBC_EXT_SUPER_PROP_ASSIGNMENT_REFERENCE, CBC_NO_FLAG, 1, \
VM_OC_SUPER_REFERENCE | VM_OC_GET_STACK) \
CBC_OPCODE (CBC_EXT_SUPER_PROP_LITERAL_ASSIGNMENT_REFERENCE, CBC_HAS_LITERAL_ARG, 2, \
VM_OC_SUPER_REFERENCE | VM_OC_GET_LITERAL) \
CBC_OPCODE (CBC_EXT_RESOLVE_LEXICAL_THIS, CBC_NO_FLAG, 1, \
VM_OC_RESOLVE_LEXICAL_THIS | VM_OC_PUT_STACK) \