mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-07 13:33:22 +00:00
allow StmtLists to pass through semExprWithType
This fix was necessary in order to fix the lambda lifting used in the "jsffi" module, which relies on turning nkStmtList into nkLambda in a catch-all dot operator.
This commit is contained in:
@@ -78,6 +78,7 @@ type
|
||||
## Statically typed wrapper around a JavaScript object.
|
||||
NotString = concept c
|
||||
c isnot string
|
||||
js* = JsObject
|
||||
|
||||
var jsarguments* {.importc: "arguments", nodecl}: JsObject
|
||||
## JavaScript's arguments pseudo-variable
|
||||
@@ -133,10 +134,6 @@ proc `/=` *(x, y: JsObject): JsObject {. importcpp: "(# /= #)", discardable .}
|
||||
proc `%=` *(x, y: JsObject): JsObject {. importcpp: "(# %= #)", discardable .}
|
||||
proc `++` *(x: JsObject): JsObject {. importcpp: "(++#)" .}
|
||||
proc `--` *(x: JsObject): JsObject {. importcpp: "(--#)" .}
|
||||
# proc `==` *(x, y: JsObject): JsObject {. importcpp: "(# == #)" .}
|
||||
# proc `===`*(x, y: JsObject): JsObject {. importcpp: "(# === #)" .}
|
||||
# proc `!=` *(x, y: JsObject): JsObject {. importcpp: "(# != #)" .}
|
||||
# proc `!==`*(x, y: JsObject): JsObject {. importcpp: "(# !== #)" .}
|
||||
proc `>` *(x, y: JsObject): JsObject {. importcpp: "(# > #)" .}
|
||||
proc `<` *(x, y: JsObject): JsObject {. importcpp: "(# < #)" .}
|
||||
proc `>=` *(x, y: JsObject): JsObject {. importcpp: "(# >= #)" .}
|
||||
|
||||
@@ -21,6 +21,7 @@ true
|
||||
12
|
||||
Event { name: 'click: test' }
|
||||
Event { name: 'reloaded: test' }
|
||||
Event { name: 'updates: test' }
|
||||
'''
|
||||
"""
|
||||
|
||||
@@ -295,7 +296,7 @@ block:
|
||||
"""
|
||||
function Event(name) { this.name = name; }
|
||||
function on(eventName, eventHandler) { eventHandler(new Event(eventName + ": test")); }
|
||||
var jslib = { "on": on };
|
||||
var jslib = { "on": on, "subscribe": on };
|
||||
"""
|
||||
.}
|
||||
|
||||
@@ -311,3 +312,8 @@ block:
|
||||
jslib.on "reloaded" do:
|
||||
console.log jsarguments[0]
|
||||
|
||||
# this test case is different from the above, because
|
||||
# `subscribe` is not overloaded in the current scope
|
||||
jslib.subscribe "updates":
|
||||
console.log jsarguments[0]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user