-
-
Notifications
You must be signed in to change notification settings - Fork 424
Parse wordcodes in Python 3.6 #621
Parse wordcodes in Python 3.6 #621
Conversation
fc762b9
to
89269f3
Compare
Just a heads-up I've been tinkering with this in #536. I didn't get very far, but I did get the new dict opcode change done. (It's most other things that are still broken in my PR). |
By all means please feel free to take anything that might be useful from my PR. I have very little time available to work on this. |
Thanks cjrh, I have not touched the dict changes yet, so it works out. |
89269f3
to
80c9d7b
Compare
Single wordcode is 2 bytes wide and consists of an opcode and its argument (or 0 if no argument is used)
Prior to 3.6 it was called CALL_FUNCTION_VAR_KW and operated in a slightly different manner
80c9d7b
to
046b97c
Compare
@abonie Sorry for the delay! No credit necessary, just go for it 👍 |
42ab2ef
to
a65bac8
Compare
this.push(dict) | ||
return | ||
} | ||
|
||
VirtualMachine.prototype.byte_STORE_MAP = function() { | ||
switch (constants.BATAVIA_MAGIC) { | ||
case constants.BATAVIA_MAGIC_35: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At column 5: (no-useless-return) Unnecessary return statement.
1dcc649
to
31a441e
Compare
this.push(dict) | ||
return | ||
} | ||
|
||
VirtualMachine.prototype.byte_STORE_MAP = function() { | ||
switch (constants.BATAVIA_MAGIC) { | ||
case constants.BATAVIA_MAGIC_35: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At column 5: (no-useless-return) Unnecessary return statement.
31a441e
to
7807adc
Compare
7807adc
to
be5024d
Compare
b90385b
to
42ab063
Compare
Python 3.6 uses 2 bytes for each instruction (instead of varying number of bytes as in previous versions). This PR will introduce changes to VM that check for Python version to parse bytecode appropriately.
Single wordcode is 2 bytes wide and consists of an opcode and its
argument (or 0 if no argument is used)
TODO opcodes:
EXTENDED_ARG
???