fix items for cstring for the JS target; makes tests green again

This commit is contained in:
Araq 2018-09-03 11:13:59 +02:00
commit e0fd1cdb5f
2 changed files with 13 additions and 6 deletions

View file

@ -2195,10 +2195,17 @@ iterator items*[T](a: set[T]): T {.inline.} =
iterator items*(a: cstring): char {.inline.} = iterator items*(a: cstring): char {.inline.} =
## iterates over each item of `a`. ## iterates over each item of `a`.
var i = 0 when defined(js):
while a[i] != '\0': var i = 0
yield a[i] var L = len(a)
inc(i) while i < L:
yield a[i]
inc(i)
else:
var i = 0
while a[i] != '\0':
yield a[i]
inc(i)
iterator mitems*(a: var cstring): var char {.inline.} = iterator mitems*(a: var cstring): var char {.inline.} =
## iterates over each item of `a` so that you can modify the yielded value. ## iterates over each item of `a` so that you can modify the yielded value.

View file

@ -1,8 +1,8 @@
discard """ discard """
output: '''(x: 0, y: 0) output: '''(x: 0, y: 0)
(x: 5, y: 0) (x: 5, y: 0)
@[(x: 2, y: 4), (x: 4, y: 5), (x: 4, y: 5)] @[(x: "2", y: 4), (x: "4", y: 5), (x: "4", y: 5)]
@[(a: 3, b: 3), (a: 1, b: 1), (a: 2, b: 2)] @[(a: "3", b: 3), (a: "1", b: 1), (a: "2", b: 2)]
''' '''
""" """