Optimize lent in JS [backport:1.6] (#19393)

* Optimize lent in JS [backport:1.6]

* addr on lent doesn't work anymore, don't use it

* use unsafeAddr  in test again for older versions
This commit is contained in:
hlaaftana 2022-01-17 15:03:40 +03:00 • committed by GitHub
commit 07c7a8a526
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 81 additions and 23 deletions

33
tests/js/tlent.nim Normal file
View file

@ -0,0 +1,33 @@
discard """
output: '''
hmm
100
hmm
100
'''
"""
# #16800
type A = object
b: int
var t = A(b: 100)
block:
proc getValues: lent int =
echo "hmm"
result = t.b
echo getValues()
block:
proc getValues: lent int =
echo "hmm"
t.b
echo getValues()
when false: # still an issue, #16908
template main =
iterator fn[T](a:T): lent T = yield a
let a = @[10]
for b in fn(a): echo b
static: main()
main()