summaryrefslogtreecommitdiffstatshomepage
path: root/py/vm.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-01-03 17:03:19 -0800
committerDamien George <damien.p.george@gmail.com>2014-01-03 17:03:19 -0800
commitb95d90b2f37e00a39a7cca46c24c9d496bb1e342 (patch)
treedee120c28b998e528b1ba9f7a72d7dee2df7e12f /py/vm.c
parent9ba9589ef71920132cd6ec5c3a948e9c605b50f7 (diff)
parentf8b9d3c41addea79851c355f014db9f0f256cdaf (diff)
downloadmicropython-b95d90b2f37e00a39a7cca46c24c9d496bb1e342.tar.gz
micropython-b95d90b2f37e00a39a7cca46c24c9d496bb1e342.zip
Merge pull request #59 from pfalcon/slice
Implement basic slice object and string slicing
Diffstat (limited to 'py/vm.c')
-rw-r--r--py/vm.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/py/vm.c b/py/vm.c
index c549e2b490..382780640b 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -410,6 +410,20 @@ bool mp_execute_byte_code_2(const byte **ip_in_out, mp_obj_t *fastn, mp_obj_t **
sp++;
break;
+#if MICROPY_ENABLE_SLICE
+ case MP_BC_BUILD_SLICE:
+ DECODE_UINT;
+ if (unum == 2) {
+ obj2 = POP();
+ obj1 = TOP();
+ SET_TOP(mp_obj_new_slice(obj1, obj2, NULL));
+ } else {
+ printf("3-argument slice is not supported\n");
+ assert(0);
+ }
+ break;
+#endif
+
case MP_BC_UNPACK_SEQUENCE:
DECODE_UINT;
rt_unpack_sequence(sp[0], unum, sp - unum + 1);