* follow #15818 and close #7109 * Update compiler/jsgen.nim Co-authored-by: Juan Carlos <juancarlospaco@gmail.com> Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
This commit is contained in:
parent
c243639979
commit
fde17b159f
2 changed files with 13 additions and 2 deletions
|
|
@ -2549,9 +2549,12 @@ proc gen(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
of nkAsmStmt: genAsmOrEmitStmt(p, n)
|
of nkAsmStmt: genAsmOrEmitStmt(p, n)
|
||||||
of nkTryStmt, nkHiddenTryStmt: genTry(p, n, r)
|
of nkTryStmt, nkHiddenTryStmt: genTry(p, n, r)
|
||||||
of nkRaiseStmt: genRaiseStmt(p, n)
|
of nkRaiseStmt: genRaiseStmt(p, n)
|
||||||
of nkTypeSection, nkCommentStmt, nkIteratorDef, nkIncludeStmt,
|
of nkTypeSection, nkCommentStmt, nkIncludeStmt,
|
||||||
nkImportStmt, nkImportExceptStmt, nkExportStmt, nkExportExceptStmt,
|
nkImportStmt, nkImportExceptStmt, nkExportStmt, nkExportExceptStmt,
|
||||||
nkFromStmt, nkTemplateDef, nkMacroDef, nkStaticStmt: discard
|
nkFromStmt, nkTemplateDef, nkMacroDef, nkStaticStmt: discard
|
||||||
|
of nkIteratorDef:
|
||||||
|
if n[0].sym.typ.callConv == TCallingConvention.ccClosure:
|
||||||
|
globalError(p.config, n.info, "Closure iterators are not supported by JS backend!")
|
||||||
of nkPragma: genPragma(p, n)
|
of nkPragma: genPragma(p, n)
|
||||||
of nkProcDef, nkFuncDef, nkMethodDef, nkConverterDef:
|
of nkProcDef, nkFuncDef, nkMethodDef, nkConverterDef:
|
||||||
var s = n[namePos].sym
|
var s = n[namePos].sym
|
||||||
|
|
@ -2559,7 +2562,7 @@ proc gen(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
genSym(p, n[namePos], r)
|
genSym(p, n[namePos], r)
|
||||||
r.res = nil
|
r.res = nil
|
||||||
of nkGotoState, nkState:
|
of nkGotoState, nkState:
|
||||||
internalError(p.config, n.info, "first class iterators not implemented")
|
globalError(p.config, n.info, "First class iterators not implemented")
|
||||||
of nkPragmaBlock: gen(p, n.lastSon, r)
|
of nkPragmaBlock: gen(p, n.lastSon, r)
|
||||||
of nkComesFrom:
|
of nkComesFrom:
|
||||||
discard "XXX to implement for better stack traces"
|
discard "XXX to implement for better stack traces"
|
||||||
|
|
|
||||||
8
tests/js/t7109.nim
Normal file
8
tests/js/t7109.nim
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
discard """
|
||||||
|
errormsg: "Closure iterators are not supported by JS backend!"
|
||||||
|
"""
|
||||||
|
|
||||||
|
iterator iter*(): int {.closure.} =
|
||||||
|
yield 3
|
||||||
|
|
||||||
|
var x = iter
|
||||||
Loading…
Add table
Add a link
Reference in a new issue