@lewin671/python-vm 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/vm/handlers.ts"],"names":[],"mappings":";;AAUA,kDAybC;AAlcD,oCAAkC;AAClC,mDAAqH;AAErH,2DAI6B;AAE7B,SAAgB,mBAAmB,CAEjC,MAAc,EACd,GAAuB,EACvB,KAAY,EACZ,KAAgB;IAEhB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,EAAE,GAAG,GAAI,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,EAAE,GAAG,GAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,EAAE,GAAG,GAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACzB,KAAK,CAAC,EAAE,IAAI,GAAI,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,GAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,uCAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,wCAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAc,CAAC,CAAC;YACpE,IAAI,KAAK,CAAC,MAAM,KAAK,GAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,2BAAW,CAAC,YAAY,EAAE,yCAAyC,GAAI,SAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7G,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAc,CAAC,CAAC;YACpE,MAAM,WAAW,GAAG,CAAC,GAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACvC,MAAM,UAAU,GAAG,GAAI,GAAG,IAAI,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,GAAG,UAAU,EAAE,CAAC;gBAC5C,MAAM,IAAI,2BAAW,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;YAEnE,KAAK,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,GAAI,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,GAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAc,IAAI,KAAK,CAAC,GAAI,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,GAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1D,KAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,sBAAM,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,qBAAK,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAc,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAA,oCAAgB,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAc,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAI,CAAC;YACnB,MAAM,MAAM,GAAc,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,CAAC;YACxC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YACpD,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YACrE,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,MAAM,YAAY,sBAAM,EAAE,CAAC;oBAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;wBACtC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5C,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/D,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAe,EAAE,IAAa,EAAE,GAAG,KAAgB,EAAE,EAAE;gBACjE,MAAM,UAAU,GAAG,IAAI,qBAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gBACnD,IAAI,MAAM,YAAY,0BAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpD,MAAM,SAAS,GAAG,IAAI,qBAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACzD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACxC,MAAM,EAAE,CAAC;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,YAAY,uBAAO,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;gBACtF,OAAO,IAAI,uBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ;YACrB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAI,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAI,IAAI,CAAC;gBAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ;YACpC,MAAM,GAAG,GAAG,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,MAAM,GAAG,IAAI,IAAI,2BAAW,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,cAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAI,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAI,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,0BAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAI,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,MAAM,YAAY,0BAAU,EAAE,CAAC;gBACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;oBACjD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACzD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM;QACR,CAAC;QACD,KAAK,cAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,MAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,cAAM,CAAC,MAAM,CAAC,KAAK,MAAM,WAAW,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { VirtualMachine } from './vm';
2
+ import { PyValue, Scope } from './runtime-types';
3
+ export declare function executeBlockGenerator(this: VirtualMachine, body: PyValue[], scope: Scope): Generator<PyValue, PyValue>;
4
+ export declare function executeStatementGenerator(this: VirtualMachine, node: PyValue, scope: Scope): Generator<PyValue, PyValue>;
5
+ //# sourceMappingURL=statement-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement-generator.d.ts","sourceRoot":"","sources":["../../src/vm/statement-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EACL,OAAO,EAMP,KAAK,EACN,MAAM,iBAAiB,CAAC;AAGzB,wBAAiB,qBAAqB,CACpC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,EAAE,KAAK,GACX,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAK7B;AAED,wBAAiB,yBAAyB,CACxC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,KAAK,GACX,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAiH7B"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeBlockGenerator = executeBlockGenerator;
4
+ exports.executeStatementGenerator = executeStatementGenerator;
5
+ const types_1 = require("../types");
6
+ const runtime_types_1 = require("./runtime-types");
7
+ const execution_helpers_1 = require("./execution-helpers");
8
+ function* executeBlockGenerator(body, scope) {
9
+ for (const stmt of body) {
10
+ yield* this.executeStatementGenerator(stmt, scope);
11
+ }
12
+ return null;
13
+ }
14
+ function* executeStatementGenerator(node, scope) {
15
+ switch (node.type) {
16
+ case types_1.ASTNodeType.EXPRESSION_STATEMENT: {
17
+ yield* this.evaluateExpressionGenerator(node.expression, scope);
18
+ return null;
19
+ }
20
+ case types_1.ASTNodeType.ASSIGNMENT: {
21
+ const value = yield* this.evaluateExpressionGenerator(node.value, scope);
22
+ for (const target of node.targets) {
23
+ this.assignTarget(target, value, scope);
24
+ }
25
+ return null;
26
+ }
27
+ case types_1.ASTNodeType.AUG_ASSIGNMENT: {
28
+ const current = this.evaluateExpression(node.target, scope);
29
+ const value = yield* this.evaluateExpressionGenerator(node.value, scope);
30
+ const result = this.applyInPlaceBinary(node.operator, current, value);
31
+ this.assignTarget(node.target, result, scope);
32
+ return null;
33
+ }
34
+ case types_1.ASTNodeType.RETURN_STATEMENT: {
35
+ const val = node.value ? yield* this.evaluateExpressionGenerator(node.value, scope) : null;
36
+ throw new runtime_types_1.ReturnSignal(val);
37
+ }
38
+ case types_1.ASTNodeType.BREAK_STATEMENT:
39
+ throw new runtime_types_1.BreakSignal();
40
+ case types_1.ASTNodeType.CONTINUE_STATEMENT:
41
+ throw new runtime_types_1.ContinueSignal();
42
+ case types_1.ASTNodeType.IF_STATEMENT: {
43
+ const test = yield* this.evaluateExpressionGenerator(node.test, scope);
44
+ if (this.isTruthy(test, scope)) {
45
+ yield* this.executeBlockGenerator(node.body, scope);
46
+ }
47
+ else if (node.orelse) {
48
+ yield* this.executeBlockGenerator(node.orelse, scope);
49
+ }
50
+ return null;
51
+ }
52
+ case types_1.ASTNodeType.WHILE_STATEMENT: {
53
+ while (this.isTruthy(yield* this.evaluateExpressionGenerator(node.test, scope), scope)) {
54
+ try {
55
+ yield* this.executeBlockGenerator(node.body, scope);
56
+ }
57
+ catch (err) {
58
+ if (err instanceof runtime_types_1.BreakSignal)
59
+ break;
60
+ if (err instanceof runtime_types_1.ContinueSignal)
61
+ continue;
62
+ throw err;
63
+ }
64
+ }
65
+ return null;
66
+ }
67
+ case types_1.ASTNodeType.FOR_STATEMENT: {
68
+ const iterable = yield* this.evaluateExpressionGenerator(node.iter, scope);
69
+ const items = this.iterableToArray(iterable);
70
+ for (const val of items) {
71
+ this.assignTarget(node.target, val, scope);
72
+ try {
73
+ yield* this.executeBlockGenerator(node.body, scope);
74
+ }
75
+ catch (err) {
76
+ if (err instanceof runtime_types_1.BreakSignal)
77
+ break;
78
+ if (err instanceof runtime_types_1.ContinueSignal)
79
+ continue;
80
+ throw err;
81
+ }
82
+ }
83
+ return null;
84
+ }
85
+ case types_1.ASTNodeType.TRY_STATEMENT: {
86
+ let raised = false;
87
+ try {
88
+ yield* this.executeBlockGenerator(node.body, scope);
89
+ }
90
+ catch (err) {
91
+ raised = true;
92
+ let handled = false;
93
+ for (const handler of node.handlers) {
94
+ if (!handler.exceptionType) {
95
+ handled = true;
96
+ }
97
+ else {
98
+ // Check exception match
99
+ const pyEx = (0, execution_helpers_1.normalizeThrown)(err, scope);
100
+ const pyExType = (pyEx instanceof runtime_types_1.PyInstance) ? pyEx.klass.name : pyEx.pyType;
101
+ const expected = this.evaluateExpression(handler.exceptionType, scope);
102
+ // Simplified match: just check name if it's a PyClass
103
+ if (expected instanceof runtime_types_1.PyClass && pyExType === expected.name) {
104
+ handled = true;
105
+ }
106
+ }
107
+ if (handled) {
108
+ if (handler.name) {
109
+ scope.set(handler.name, err);
110
+ }
111
+ yield* this.executeBlockGenerator(handler.body, scope);
112
+ break;
113
+ }
114
+ }
115
+ if (!handled)
116
+ throw err;
117
+ }
118
+ finally {
119
+ if (node.finalbody && node.finalbody.length > 0) {
120
+ yield* this.executeBlockGenerator(node.finalbody, scope);
121
+ }
122
+ }
123
+ if (!raised && node.orelse && node.orelse.length > 0) {
124
+ yield* this.executeBlockGenerator(node.orelse, scope);
125
+ }
126
+ return null;
127
+ }
128
+ case types_1.ASTNodeType.PASS_STATEMENT:
129
+ return null;
130
+ case types_1.ASTNodeType.GLOBAL_STATEMENT:
131
+ case types_1.ASTNodeType.NONLOCAL_STATEMENT:
132
+ case types_1.ASTNodeType.DELETE_STATEMENT:
133
+ return this.executeStatement(node, scope);
134
+ default:
135
+ return this.executeStatement(node, scope);
136
+ }
137
+ }
138
+ //# sourceMappingURL=statement-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement-generator.js","sourceRoot":"","sources":["../../src/vm/statement-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 尾调用优化(Tail Call Optimization)
3
+ *
4
+ * 在函数体中,如果最后一个表达式是对函数的调用(递归或非递归),
5
+ * 则该调用被称为尾调用。我们可以复用当前栈帧来执行尾调用,
6
+ * 而不是创建新的栈帧,从而优化了内存和性能。
7
+ *
8
+ * 实现方式:
9
+ * 1. 检测尾调用:在编译阶段或执行阶段识别尾调用
10
+ * 2. 复用栈帧:使用特殊的标记来指示VM重用当前栈帧
11
+ * 3. 更新参数:在复用栈帧时更新函数参数
12
+ */
13
+ import type { VirtualMachine } from './vm';
14
+ import { PyValue, Frame, Scope } from './runtime-types';
15
+ import { ByteCode } from '../types';
16
+ /**
17
+ * 表示一个尾调用的信号
18
+ * 当函数返回此信号时,VM应该重用当前栈帧执行尾调用
19
+ */
20
+ export declare class TailCall {
21
+ func: PyValue;
22
+ args: PyValue[];
23
+ scope: Scope;
24
+ constructor(func: PyValue, args: PyValue[], scope: Scope);
25
+ }
26
+ /**
27
+ * 检测字节码是否是尾调用
28
+ * 在以下情况下,CALL_FUNCTION是尾调用:
29
+ * 1. CALL_FUNCTION 后立即跟 RETURN_VALUE
30
+ * 2. 没有其他计算或堆栈操作在调用和返回之间
31
+ */
32
+ export declare function detectTailCall(bytecode: ByteCode, currentPc: number): boolean;
33
+ /**
34
+ * 在尾调用时复用栈帧
35
+ * 这个函数不创建新的Frame,而是重用现有的Frame
36
+ */
37
+ export declare function handleTailCallFrame(this: VirtualMachine, frame: Frame, func: PyValue, args: PyValue[]): PyValue;
38
+ /**
39
+ * 用于记录尾调用优化的统计信息
40
+ */
41
+ export declare class TailCallStats {
42
+ totalCalls: number;
43
+ tailCalls: number;
44
+ recursiveTailCalls: number;
45
+ recordCall(): void;
46
+ recordTailCall(): void;
47
+ recordRecursiveTailCall(): void;
48
+ getOptimizationRatio(): number;
49
+ }
50
+ //# sourceMappingURL=tail-call-optimization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tail-call-optimization.d.ts","sourceRoot":"","sources":["../../src/vm/tail-call-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAc,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAU,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,qBAAa,QAAQ;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;gBAED,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK;CAKzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAiBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EAAE,GACd,OAAO,CAkET;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,UAAU,EAAE,MAAM,CAAK;IACvB,SAAS,EAAE,MAAM,CAAK;IACtB,kBAAkB,EAAE,MAAM,CAAK;IAE/B,UAAU,IAAI,IAAI;IAIlB,cAAc,IAAI,IAAI;IAItB,uBAAuB,IAAI,IAAI;IAI/B,oBAAoB,IAAI,MAAM;CAG/B"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * 尾调用优化(Tail Call Optimization)
4
+ *
5
+ * 在函数体中,如果最后一个表达式是对函数的调用(递归或非递归),
6
+ * 则该调用被称为尾调用。我们可以复用当前栈帧来执行尾调用,
7
+ * 而不是创建新的栈帧,从而优化了内存和性能。
8
+ *
9
+ * 实现方式:
10
+ * 1. 检测尾调用:在编译阶段或执行阶段识别尾调用
11
+ * 2. 复用栈帧:使用特殊的标记来指示VM重用当前栈帧
12
+ * 3. 更新参数:在复用栈帧时更新函数参数
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TailCallStats = exports.TailCall = void 0;
16
+ exports.detectTailCall = detectTailCall;
17
+ exports.handleTailCallFrame = handleTailCallFrame;
18
+ const runtime_types_1 = require("./runtime-types");
19
+ const types_1 = require("../types");
20
+ /**
21
+ * 表示一个尾调用的信号
22
+ * 当函数返回此信号时,VM应该重用当前栈帧执行尾调用
23
+ */
24
+ class TailCall {
25
+ constructor(func, args, scope) {
26
+ this.func = func;
27
+ this.args = args;
28
+ this.scope = scope;
29
+ }
30
+ }
31
+ exports.TailCall = TailCall;
32
+ /**
33
+ * 检测字节码是否是尾调用
34
+ * 在以下情况下,CALL_FUNCTION是尾调用:
35
+ * 1. CALL_FUNCTION 后立即跟 RETURN_VALUE
36
+ * 2. 没有其他计算或堆栈操作在调用和返回之间
37
+ */
38
+ function detectTailCall(bytecode, currentPc) {
39
+ const instructions = bytecode.instructions;
40
+ // 当前指令应该是 CALL_FUNCTION
41
+ if (currentPc >= instructions.length)
42
+ return false;
43
+ const currentInstr = instructions[currentPc];
44
+ if (currentInstr.opcode !== types_1.OpCode.CALL_FUNCTION)
45
+ return false;
46
+ // 检查下一条指令是否是 RETURN_VALUE
47
+ if (currentPc + 1 < instructions.length) {
48
+ const nextInstr = instructions[currentPc + 1];
49
+ return nextInstr.opcode === types_1.OpCode.RETURN_VALUE;
50
+ }
51
+ // 如果没有下一条指令,也算是尾调用
52
+ return true;
53
+ }
54
+ /**
55
+ * 在尾调用时复用栈帧
56
+ * 这个函数不创建新的Frame,而是重用现有的Frame
57
+ */
58
+ function handleTailCallFrame(frame, func, args) {
59
+ if (!(func instanceof runtime_types_1.PyFunction)) {
60
+ // 非PyFunction对象,无法优化,进行普通调用
61
+ return this.callFunction(func, args, frame.scope);
62
+ }
63
+ if (!func.bytecode || !func.bytecode.instructions) {
64
+ // 没有字节码,无法优化
65
+ return this.callFunction(func, args, frame.scope);
66
+ }
67
+ // 重用当前Frame的相关信息
68
+ // 清空堆栈
69
+ frame.stack.length = 0;
70
+ frame.pc = 0;
71
+ // 创建新的作用域用于函数体
72
+ const callScope = new runtime_types_1.Scope(func.closure);
73
+ callScope.locals = new Set(func.localNames);
74
+ if (func.bytecode.globals) {
75
+ func.bytecode.globals.forEach((g) => callScope.globals.add(g));
76
+ }
77
+ if (func.bytecode.nonlocals) {
78
+ func.bytecode.nonlocals.forEach((n) => callScope.nonlocals.add(n));
79
+ }
80
+ // 设置参数
81
+ for (const param of func.params) {
82
+ if (param.type === 'Param') {
83
+ let argValue;
84
+ if (args.length > 0) {
85
+ argValue = args.shift();
86
+ }
87
+ else if (param.defaultEvaluated !== undefined) {
88
+ argValue = param.defaultEvaluated;
89
+ }
90
+ else if (param.defaultValue) {
91
+ argValue = this.evaluateExpression(param.defaultValue, frame.scope);
92
+ }
93
+ else {
94
+ argValue = null;
95
+ }
96
+ callScope.set(param.name, argValue);
97
+ }
98
+ else if (param.type === 'VarArg') {
99
+ const varArgs = [...args];
100
+ varArgs.__tuple__ = true;
101
+ callScope.set(param.name, varArgs);
102
+ args = [];
103
+ }
104
+ }
105
+ // 更新Frame的关键字段
106
+ frame.scope = callScope;
107
+ frame.bytecode = func.bytecode;
108
+ frame.locals = new Array((func.bytecode.varnames || []).length).fill(undefined);
109
+ // 重置blockStack
110
+ frame.blockStack.length = 0;
111
+ // 设置局部变量
112
+ const varnames = func.bytecode.varnames || [];
113
+ for (let i = 0; i < (func.bytecode.argcount || 0); i++) {
114
+ const varname = varnames[i];
115
+ frame.locals[i] = callScope.values.get(varname);
116
+ }
117
+ // 返回一个特殊标记,表示需要继续执行当前帧
118
+ return { __tailCall__: true };
119
+ }
120
+ /**
121
+ * 用于记录尾调用优化的统计信息
122
+ */
123
+ class TailCallStats {
124
+ constructor() {
125
+ this.totalCalls = 0;
126
+ this.tailCalls = 0;
127
+ this.recursiveTailCalls = 0;
128
+ }
129
+ recordCall() {
130
+ this.totalCalls++;
131
+ }
132
+ recordTailCall() {
133
+ this.tailCalls++;
134
+ }
135
+ recordRecursiveTailCall() {
136
+ this.recursiveTailCalls++;
137
+ }
138
+ getOptimizationRatio() {
139
+ return this.totalCalls > 0 ? (this.tailCalls / this.totalCalls) * 100 : 0;
140
+ }
141
+ }
142
+ exports.TailCallStats = TailCallStats;
143
+ //# sourceMappingURL=tail-call-optimization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tail-call-optimization.js","sourceRoot":"","sources":["../../src/vm/tail-call-optimization.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lewin671/python-vm",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "A powerful, high-performance Python 3 Virtual Machine and Compiler engineered in pure TypeScript.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,8 +17,11 @@
17
17
  "test": "PYTHONHASHSEED=0 vitest run",
18
18
  "test:watch": "PYTHONHASHSEED=0 vitest",
19
19
  "test:coverage": "PYTHONHASHSEED=0 vitest run --coverage",
20
+ "benchmark": "npm run build && node scripts/benchmark.cjs",
20
21
  "lint": "eslint src/**/*.ts",
21
- "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\""
22
+ "format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
23
+ "prepublishOnly": "npm run build",
24
+ "postpublish": "bash scripts/release.sh"
22
25
  },
23
26
  "keywords": [
24
27
  "python",