Open almarklein opened 6 years ago
I’ve reviewed the listed issues and would like to contribute the following observations:
if x with x as an object resolving to False:
length
property, leading to unexpected behavior. A potential fix could involve refining the truthy()
function to handle objects more accurately.x = x or 0:
truthy()
processes non-truthy values. Perhaps a conditional check could be added to prevent this from failing.elif this_is_js() Syntax Error:
range() Bringing in pyfunc_range():
pyfunc_range()
only when needed, not just within for
loops.assert x Does Not Use truthy():
truthy()
for consistency across PyScript.List Comprehensions with Float64Array:
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!
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 :)
@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.
if x
, with x an object can resolve toFalse
if that object has alength
property.x = x or 0
does not work, sincetruthy()
returnsFalse
on a non-truthy and the original object otherwise.elif this_is_js():
produces syntactically invalid JS.~ (fixed in #17)range()
brings in thepyfunc_range()
even if used in for-loop.~ (fixed in #17)assert x
does not usetruthy()
@Winand commented on Sun Jul 02 2017
(as of v0.4.1) pyscript
allows(fixed in #17) anddef catch():
this = ...
and produces invalid jsThe 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
produces invalid js source (variables are defined globally):