problem with invert operator expression
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- javascript, python
- Domain
- compilers
Research direction
Start with the provided Python sample and compare the two generated JavaScript forms in a Firefox 133 environment. Trace how the compiler handles ~(obj) versus the __invert__() method call; done means the operator expression dispatches correctly without the reported TypeError and the behavior has a regression check.
Written by the indexing model from the issue text.
Description
Expression with invert operator of an class instance causes error.
Error occurs with iobj = ~(obj) expression.
Browser error: Uncaught TypeError: Function.prototype.toString called on incompatible object.
Worked properly with iobj = obj.__invert__() expression.
python code:
class Obj:
def __init__(self, x):
self.x = x
def __invert__(self):
return ~self.x
# __pragma__ ('opov')
def op_invert():
obj = Obj(42)
if False:
iobj = ~(obj)
# __pragma__ ('noopov')
op_invert()
compiled javascript code with ~(obj):
export var op_invert = function () {
var obj = __call__ (Obj, null, 10);
var iobj = ~(obj);
};
compiled javascript code with obj.__invert__():
export var op_invert = function () {
var obj = __call__ (Obj, null, 10);
var iobj = (function () {
var __accu0__ = obj;
return __call__ (__accu0__.__invert__, __accu0__);
}) ();
};
env: Python3.9 venv with pip install Transcrypt
testing: Firefox version 133 in Linux
- Dominant language
- Python
- Stars
- 2.9k
- Forks
- 218
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TranscryptOrg/Transcrypt
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
TranscryptOrg/Transcrypt#913 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
TranscryptOrg/Transcrypt#911 · 2 comments ·
-
IS: bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
TranscryptOrg/Transcrypt#908 ·
-
SUB: documentation
Difficulty 1/5 Under an hour Newbie friendliness 62/100
TranscryptOrg/Transcrypt#656 · 7 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
TranscryptOrg/Transcrypt#914 ·
All issues in TranscryptOrg/Transcrypt
Similar issues
-
area/auth bug comp/agent P3 platform/discord type/security
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
NousResearch/hermes-agent#117848 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100