flexxui / pscript

Python to JavaScript compiler
http://pscript.readthedocs.io
BSD 2-Clause "Simplified" License
260 stars 25 forks source link

PyScript glitches #7

Open almarklein opened 6 years ago

almarklein commented 6 years ago

@almarklein commented on Tue Jan 03 2017

This is an issue to collect "glitches" in PyScript, because it's so easy to forget about them. We'll have to see whether to fix or document each one individually.


@Winand commented on Sun Jul 02 2017

(as of v0.4.1) pyscript allows def catch(): (fixed in #17) and this = ... and produces invalid js

The latter is still possible, because a user might still want to use this explicitly, and we only check use of names (not assignments) at this point.


@Winand commented on Fri Jul 07 2017

class Translator():
    langs, q = {}, None

produces invalid js source (variables are defined globally):

stub2_ = [{}, null];
langs = stub2_[0];q = stub2_[1];
Mahadevv01 commented 2 months ago

Issue: PyScript Glitches

I’ve reviewed the listed issues and would like to contribute the following observations:

  1. if x with x as an object resolving to False:

    • This occurs when the object has a length property, leading to unexpected behavior. A potential fix could involve refining the truthy() function to handle objects more accurately.
  2. x = x or 0:

    • This behavior might be due to the way truthy() processes non-truthy values. Perhaps a conditional check could be added to prevent this from failing.
  3. elif this_is_js() Syntax Error:

    • As mentioned, this has been addressed in a previous fix (#17). I recommend updating the documentation to reflect this change.
  4. range() Bringing in pyfunc_range():

    • This could be optimized by conditionally importing pyfunc_range() only when needed, not just within for loops.
  5. assert x Does Not Use truthy():

    • The assertion might need an update to utilize truthy() for consistency across PyScript.
  6. List Comprehensions with Float64Array:

    • It appears that list comprehensions aren’t fully compatible with Float64Array. Fixing this would involve ensuring the correct type handling within the comprehension logic.

Next Steps:

I’m interested in working on some of these issues. Should I create separate pull requests for each, or would you prefer one comprehensive PR?

Looking forward to your feedback!

almarklein commented 2 months ago

Thanks! I'd prefer small pr's for individual fixes.

I am happy to review and merge incoming pr's, but note that PScript is not very actively developed, so you should decide how much time you think is worth to 'investing' in this project :)