12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427 |
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <!-- This file is generated by Nim. -->
- <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>std/jsffi</title>
- <!-- Google fonts -->
- <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
- <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
- <!-- Favicon -->
- <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
- <link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
- <!-- CSS -->
- <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
- <!-- JS -->
- <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
- </head>
- <body>
- <div class="document" id="documentId">
- <div class="container">
- <h1 class="title">std/jsffi</h1>
- <div class="row">
- <div class="three columns">
- <div class="theme-select-wrapper">
- <label for="theme-select">Theme: </label>
- <select id="theme-select" onchange="setTheme(this.value)">
- <option value="auto">🌗 Match OS</option>
- <option value="dark">🌑 Dark</option>
- <option value="light">🌕 Light</option>
- </select>
- </div>
- <div id="global-links">
- <ul class="simple-boot">
- <li><a href="manual.html">Manual</a></li>
- <li><a href="lib.html">Standard library</a></li>
- <li> <a id="indexLink" href="theindex.html">Index</a></li>
- <li><a href="compiler/theindex.html">Compiler docs</a></li>
- <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
- <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
- </ul>
- </div>
- <div id="searchInputDiv">
- Search: <input type="search" id="searchInput"
- oninput="search()" />
- </div>
-
- <ul class="simple simple-toc" id="toc-list">
- <li>
- <a class="reference reference-toplevel" href="#6" id="56">Imports</a>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
- <ul class="simple simple-toc-section">
- <li><a class="reference" href="#js" title="js = JsObject">js</a></li>
- <li><a class="reference" href="#JsAssoc" title="JsAssoc[K; V] = ref object of JsRoot">JsAssoc</a></li>
- <li><a class="reference" href="#JsError" title="JsError {.importc: "Error".} = object of JsRoot
- message*: cstring">JsError</a></li>
- <li><a class="reference" href="#JsEvalError" title="JsEvalError {.importc: "EvalError".} = object of JsError">JsEvalError</a></li>
- <li><a class="reference" href="#JsKey" title="JsKey = concept atypeof(T)
- cstring.toJsKey(T) is T">JsKey</a></li>
- <li><a class="reference" href="#JsObject" title="JsObject = ref object of JsRoot">JsObject</a></li>
- <li><a class="reference" href="#JsRangeError" title="JsRangeError {.importc: "RangeError".} = object of JsError">JsRangeError</a></li>
- <li><a class="reference" href="#JsReferenceError" title="JsReferenceError {.importc: "ReferenceError".} = object of JsError">JsReferenceError</a></li>
- <li><a class="reference" href="#JsSyntaxError" title="JsSyntaxError {.importc: "SyntaxError".} = object of JsError">JsSyntaxError</a></li>
- <li><a class="reference" href="#JsTypeError" title="JsTypeError {.importc: "TypeError".} = object of JsError">JsTypeError</a></li>
- <li><a class="reference" href="#JsURIError" title="JsURIError {.importc: "URIError".} = object of JsError">JsURIError</a></li>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#8" id="58">Vars</a></summary>
- <ul class="simple simple-toc-section">
- <li><a class="reference" href="#jsArguments" title="jsArguments {.importc: "arguments", nodecl.}: JsObject">jsArguments</a></li>
- <li><a class="reference" href="#jsDirname" title="jsDirname {.importc: "__dirname", nodecl.}: cstring">jsDirname</a></li>
- <li><a class="reference" href="#jsFilename" title="jsFilename {.importc: "__filename", nodecl.}: cstring">jsFilename</a></li>
- <li><a class="reference" href="#jsNull" title="jsNull {.importc: "null", nodecl.}: JsObject">jsNull</a></li>
- <li><a class="reference" href="#jsUndefined" title="jsUndefined {.importc: "undefined", nodecl.}: JsObject">jsUndefined</a></li>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">%
- <li><a class="reference" href="#%25%2CJsObject%2CJsObject" title="`%`(x, y: JsObject): JsObject">`%`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">%=
- <li><a class="reference" href="#%25%3D%2CJsObject%2CJsObject" title="`%=`(x, y: JsObject): JsObject">`%=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">&
- <li><a class="reference" href="#%26%2Ccstring%2Ccstring" title="`&`(a, b: cstring): cstring">`&`(a, b: cstring): cstring</a></li>
- </ul>
- <ul class="simple nested-toc-section">*
- <li><a class="reference" href="#%2A%2CJsObject%2CJsObject" title="`*`(x, y: JsObject): JsObject">`*`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">**
- <li><a class="reference" href="#%2A%2A%2CJsObject%2CJsObject" title="`**`(x, y: JsObject): JsObject">`**`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">*=
- <li><a class="reference" href="#%2A%3D%2CJsObject%2CJsObject" title="`*=`(x, y: JsObject): JsObject">`*=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">+
- <li><a class="reference" href="#%2B%2CJsObject%2CJsObject" title="`+`(x, y: JsObject): JsObject">`+`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">++
- <li><a class="reference" href="#%2B%2B%2CJsObject" title="`++`(x: JsObject): JsObject">`++`(x: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">+=
- <li><a class="reference" href="#%2B%3D%2CJsObject%2CJsObject" title="`+=`(x, y: JsObject): JsObject">`+=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">-
- <li><a class="reference" href="#-%2CJsObject%2CJsObject" title="`-`(x, y: JsObject): JsObject">`-`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">--
- <li><a class="reference" href="#--%2CJsObject" title="`--`(x: JsObject): JsObject">`--`(x: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">-=
- <li><a class="reference" href="#-%3D%2CJsObject%2CJsObject" title="`-=`(x, y: JsObject): JsObject">`-=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">/
- <li><a class="reference" href="#%2F%2CJsObject%2CJsObject" title="`/`(x, y: JsObject): JsObject">`/`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">/=
- <li><a class="reference" href="#%2F%3D%2CJsObject%2CJsObject" title="`/=`(x, y: JsObject): JsObject">`/=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section"><
- <li><a class="reference" href="#%3C%2CJsObject%2CJsObject" title="`<`(x, y: JsObject): JsObject">`<`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section"><=
- <li><a class="reference" href="#%3C%3D%2CJsObject%2CJsObject" title="`<=`(x, y: JsObject): JsObject">`<=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">==
- <li><a class="reference" href="#%3D%3D%2CJsRoot%2CJsRoot" title="`==`(x, y: JsRoot): bool">`==`(x, y: JsRoot): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">>
- <li><a class="reference" href="#%3E%2CJsObject%2CJsObject" title="`>`(x, y: JsObject): JsObject">`>`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">>=
- <li><a class="reference" href="#%3E%3D%2CJsObject%2CJsObject" title="`>=`(x, y: JsObject): JsObject">`>=`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">[]
- <li><a class="reference" href="#%5B%5D%2CJsObject%2Ccstring" title="`[]`(obj: JsObject; field: cstring): JsObject">`[]`(obj: JsObject; field: cstring): JsObject</a></li>
- <li><a class="reference" href="#%5B%5D%2CJsObject%2Cint" title="`[]`(obj: JsObject; field: int): JsObject">`[]`(obj: JsObject; field: int): JsObject</a></li>
- <li><a class="reference" href="#%5B%5D%2CJsAssoc%5BK%3A%20JsKey%2CV%5D%2CK" title="`[]`[K: JsKey; V](obj: JsAssoc[K, V]; field: K): V">`[]`[K: JsKey; V](obj: JsAssoc[K, V]; field: K): V</a></li>
- <li><a class="reference" href="#%5B%5D%2CJsAssoc%5Bcstring%2CV%5D%2Cstring" title="`[]`[V](obj: JsAssoc[cstring, V]; field: string): V">`[]`[V](obj: JsAssoc[cstring, V]; field: string): V</a></li>
- </ul>
- <ul class="simple nested-toc-section">[]=
- <li><a class="reference" href="#%5B%5D%3D%2CJsAssoc%5BK%3A%20JsKey%2CV%5D%2CK%2CV" title="`[]=`[K: JsKey; V](obj: JsAssoc[K, V]; field: K; val: V)">`[]=`[K: JsKey; V](obj: JsAssoc[K, V]; field: K; val: V)</a></li>
- <li><a class="reference" href="#%5B%5D%3D%2CJsObject%2Ccstring%2CT" title="`[]=`[T](obj: JsObject; field: cstring; val: T)">`[]=`[T](obj: JsObject; field: cstring; val: T)</a></li>
- <li><a class="reference" href="#%5B%5D%3D%2CJsObject%2Cint%2CT" title="`[]=`[T](obj: JsObject; field: int; val: T)">`[]=`[T](obj: JsObject; field: int; val: T)</a></li>
- <li><a class="reference" href="#%5B%5D%3D%2CJsAssoc%5Bcstring%2CV%5D%2Cstring%2CV" title="`[]=`[V](obj: JsAssoc[cstring, V]; field: string; val: V)">`[]=`[V](obj: JsAssoc[cstring, V]; field: string; val: V)</a></li>
- </ul>
- <ul class="simple nested-toc-section">and
- <li><a class="reference" href="#and%2CJsObject%2CJsObject" title="`and`(x, y: JsObject): JsObject">`and`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">hasOwnProperty
- <li><a class="reference" href="#hasOwnProperty%2CJsObject%2Ccstring" title="hasOwnProperty(x: JsObject; prop: cstring): bool">hasOwnProperty(x: JsObject; prop: cstring): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">in
- <li><a class="reference" href="#in%2CJsObject%2CJsObject" title="`in`(x, y: JsObject): JsObject">`in`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">isNull
- <li><a class="reference" href="#isNull%2CT" title="isNull[T](x: T): bool">isNull[T](x: T): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isUndefined
- <li><a class="reference" href="#isUndefined%2CT" title="isUndefined[T](x: T): bool">isUndefined[T](x: T): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">jsDelete
- <li><a class="reference" href="#jsDelete%2Cauto" title="jsDelete(x: auto): JsObject">jsDelete(x: auto): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">jsNew
- <li><a class="reference" href="#jsNew%2Cauto" title="jsNew(x: auto): JsObject">jsNew(x: auto): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">jsTypeOf
- <li><a class="reference" href="#jsTypeOf%2CJsObject" title="jsTypeOf(x: JsObject): cstring">jsTypeOf(x: JsObject): cstring</a></li>
- </ul>
- <ul class="simple nested-toc-section">newJsAssoc
- <li><a class="reference" href="#newJsAssoc" title="newJsAssoc[K: JsKey; V](): JsAssoc[K, V]">newJsAssoc[K: JsKey; V](): JsAssoc[K, V]</a></li>
- </ul>
- <ul class="simple nested-toc-section">newJsObject
- <li><a class="reference" href="#newJsObject" title="newJsObject(): JsObject">newJsObject(): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">not
- <li><a class="reference" href="#not%2CJsObject" title="`not`(x: JsObject): JsObject">`not`(x: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">or
- <li><a class="reference" href="#or%2CJsObject%2CJsObject" title="`or`(x, y: JsObject): JsObject">`or`(x, y: JsObject): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">require
- <li><a class="reference" href="#require%2Ccstring" title="require(module: cstring): JsObject">require(module: cstring): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">to
- <li><a class="reference" href="#to%2CJsObject%2Ctypedesc" title="to(x: JsObject; T: typedesc): T:type">to(x: JsObject; T: typedesc): T:type</a></li>
- </ul>
- <ul class="simple nested-toc-section">toJs
- <li><a class="reference" href="#toJs%2CT" title="toJs[T](val: T): JsObject">toJs[T](val: T): JsObject</a></li>
- </ul>
- <ul class="simple nested-toc-section">toJsKey
- <li><a class="reference" href="#toJsKey%2Ccstring%2Ctypecstring" title="toJsKey(text: cstring; t: type cstring): cstring">toJsKey(text: cstring; t: type cstring): cstring</a></li>
- <li><a class="reference" href="#toJsKey%2Ccstring%2CtypeT_2" title="toJsKey[T: enum](text: cstring; t: type T): T">toJsKey[T: enum](text: cstring; t: type T): T</a></li>
- <li><a class="reference" href="#toJsKey%2Ccstring%2CtypeT_3" title="toJsKey[T: SomeFloat](text: cstring; t: type T): T">toJsKey[T: SomeFloat](text: cstring; t: type T): T</a></li>
- <li><a class="reference" href="#toJsKey%2Ccstring%2CtypeT" title="toJsKey[T: SomeInteger](text: cstring; t: type T): T">toJsKey[T: SomeInteger](text: cstring; t: type T): T</a></li>
- </ul>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">items
- <li><a class="reference" href="#items.i%2CJsObject" title="items(obj: JsObject): JsObject">items(obj: JsObject): JsObject</a></li>
- <li><a class="reference" href="#items.i%2CJsAssoc%5BK%2CV%5D" title="items[K, V](assoc: JsAssoc[K, V]): V">items[K, V](assoc: JsAssoc[K, V]): V</a></li>
- </ul>
- <ul class="simple nested-toc-section">keys
- <li><a class="reference" href="#keys.i%2CJsObject" title="keys(obj: JsObject): cstring">keys(obj: JsObject): cstring</a></li>
- <li><a class="reference" href="#keys.i%2CJsAssoc%5BK%3A%20JsKey%2CV%5D" title="keys[K: JsKey; V](assoc: JsAssoc[K, V]): K">keys[K: JsKey; V](assoc: JsAssoc[K, V]): K</a></li>
- </ul>
- <ul class="simple nested-toc-section">pairs
- <li><a class="reference" href="#pairs.i%2CJsObject" title="pairs(obj: JsObject): (cstring, JsObject)">pairs(obj: JsObject): (cstring, JsObject)</a></li>
- <li><a class="reference" href="#pairs.i%2CJsAssoc%5BK%3A%20JsKey%2CV%5D" title="pairs[K: JsKey; V](assoc: JsAssoc[K, V]): (K, V)">pairs[K: JsKey; V](assoc: JsAssoc[K, V]): (K, V)</a></li>
- </ul>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#17" id="67">Macros</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">.
- <li><a class="reference" href="#..m%2CJsObject%2Cuntyped" title="`.`(obj: JsObject; field: untyped): JsObject">`.`(obj: JsObject; field: untyped): JsObject</a></li>
- <li><a class="reference" href="#..m%2CJsAssoc%5BK%3A%20cstring%2CV%5D%2Cuntyped" title="`.`[K: cstring; V](obj: JsAssoc[K, V]; field: untyped): V">`.`[K: cstring; V](obj: JsAssoc[K, V]; field: untyped): V</a></li>
- </ul>
- <ul class="simple nested-toc-section">.()
- <li><a class="reference" href="#.%28%29.m%2CJsObject%2Cuntyped%2Cvarargs%5BJsObject%2CjsFromAst%5D" title="`.()`(obj: JsObject; field: untyped; args: varargs[JsObject, jsFromAst]): JsObject">`.()`(obj: JsObject; field: untyped; args: varargs[JsObject, jsFromAst]): JsObject</a></li>
- <li><a class="reference" href="#.%28%29.m%2CJsAssoc%5BK%3A%20cstring%2CV%3A%20proc%5D%2Cuntyped%2Cvarargs%5Buntyped%5D" title="`.()`[K: cstring; V: proc](obj: JsAssoc[K, V]; field: untyped;
- args: varargs[untyped]): auto">`.()`[K: cstring; V: proc](obj: JsAssoc[K, V]; field: untyped;
- args: varargs[untyped]): auto</a></li>
- </ul>
- <ul class="simple nested-toc-section">.=
- <li><a class="reference" href="#.%3D.m%2CJsObject%2Cuntyped%2Cuntyped" title="`.=`(obj: JsObject; field, value: untyped): untyped">`.=`(obj: JsObject; field, value: untyped): untyped</a></li>
- <li><a class="reference" href="#.%3D.m%2CJsAssoc%5BK%3A%20cstring%2CV%5D%2Cuntyped%2CV" title="`.=`[K: cstring; V](obj: JsAssoc[K, V]; field: untyped; value: V): untyped">`.=`[K: cstring; V](obj: JsAssoc[K, V]; field: untyped; value: V): untyped</a></li>
- </ul>
- <ul class="simple nested-toc-section">bindMethod
- <li><a class="reference" href="#bindMethod.m%2Ctyped" title="bindMethod(procedure: typed): auto">bindMethod(procedure: typed): auto</a></li>
- </ul>
- <ul class="simple nested-toc-section">jsFromAst
- <li><a class="reference" href="#jsFromAst.m%2Cuntyped" title="jsFromAst(n: untyped): untyped">jsFromAst(n: untyped): untyped</a></li>
- </ul>
- <ul class="simple nested-toc-section">{}
- <li><a class="reference" href="#%7B%7D.m%2Ctypedesc%2Cvarargs%5Buntyped%5D" title="`{}`(typ: typedesc; xs: varargs[untyped]): auto">`{}`(typ: typedesc; xs: varargs[untyped]): auto</a></li>
- </ul>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">toJs
- <li><a class="reference" href="#toJs.t%2Cstring" title="toJs(s: string): JsObject">toJs(s: string): JsObject</a></li>
- </ul>
- </ul>
- </details>
- </li>
- </ul>
- </div>
- <div class="nine columns" id="content">
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L1" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
- <div id="tocRoot"></div>
-
- <p class="module-desc">This Module implements types and macros to facilitate the wrapping of, and interaction with JavaScript libraries. Using the provided types <tt class="docutils literal"><span class="pre"><span class="Identifier">JsObject</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">JsAssoc</span></span></tt> together with the provided macros allows for smoother interfacing with JavaScript, allowing for example quick and easy imports of JavaScript variables:
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">jsffi</span>
- <span class="Comment"># Here, we are using jQuery for just a few calls and do not want to wrap the</span>
- <span class="Comment"># whole library:</span>
- <span class="Comment"># import the document object and the console</span>
- <span class="Keyword">var</span> <span class="Identifier">document</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">importc</span><span class="Punctuation">,</span> <span class="Identifier">nodecl</span><span class="Operator">.</span><span class="Punctuation">}</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span>
- <span class="Keyword">var</span> <span class="Identifier">console</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">importc</span><span class="Punctuation">,</span> <span class="Identifier">nodecl</span><span class="Operator">.</span><span class="Punctuation">}</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span>
- <span class="Comment"># import the "$" function</span>
- <span class="Keyword">proc</span> <span class="Identifier">jq</span><span class="Punctuation">(</span><span class="Identifier">selector</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">importjs</span><span class="Punctuation">:</span> <span class="StringLit">"$$(#)"</span><span class="Operator">.</span><span class="Punctuation">}</span>
- <span class="Comment"># Use jQuery to make the following code run, after the document is ready.</span>
- <span class="Comment"># This uses an experimental `.()` operator for `JsObject`, to emit</span>
- <span class="Comment"># JavaScript calls, when no corresponding proc exists for `JsObject`.</span>
- <span class="Keyword">proc</span> <span class="Identifier">main</span> <span class="Operator">=</span>
- <span class="Identifier">jq</span><span class="Punctuation">(</span><span class="Identifier">document</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">ready</span><span class="Punctuation">(</span><span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">=</span>
- <span class="Identifier">console</span><span class="Operator">.</span><span class="Identifier">log</span><span class="Punctuation">(</span><span class="StringLit">"Hello JavaScript!"</span><span class="Punctuation">)</span>
- <span class="Punctuation">)</span></pre></p>
- <div class="section" id="6">
- <h1><a class="toc-backref" href="#6">Imports</a></h1>
- <dl class="item">
- <a class="reference external" href="macros.html">macros</a>, <a class="reference external" href="tables.html">tables</a>
- </dl>
- </div>
- <div class="section" id="7">
- <h1><a class="toc-backref" href="#7">Types</a></h1>
- <dl class="item">
- <div id="js">
- <dt><pre><a href="jsffi.html#js"><span class="Identifier">js</span></a> <span class="Other">=</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L92" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L92" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsAssoc">
- <dt><pre><a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#JsRoot"><span class="Identifier">JsRoot</span></a></pre></dt>
- <dd>
-
- Statically typed wrapper around a JavaScript object.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L89" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L89" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsError">
- <dt><pre><a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"Error"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#JsRoot"><span class="Identifier">JsRoot</span></a>
- <span class="Identifier">message</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L114" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L114" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsEvalError">
- <dt><pre><a href="jsffi.html#JsEvalError"><span class="Identifier">JsEvalError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"EvalError"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L116" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L116" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsKey">
- <dt><pre><a href="jsffi.html#JsKey"><span class="Identifier">JsKey</span></a> <span class="Other">=</span> <span class="Keyword">concept</span> <span class="Identifier">a</span><span class="Keyword">typeof</span><span class="Other">(</span><span class="Identifier">T</span><span class="Other">)</span>
- <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">.</span><span class="Identifier">toJsKey</span><span class="Other">(</span><span class="Identifier">T</span><span class="Other">)</span> <span class="Identifier">is</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L84" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L84" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsObject">
- <dt><pre><a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="system.html#JsRoot"><span class="Identifier">JsRoot</span></a></pre></dt>
- <dd>
-
- Dynamically typed wrapper around a JavaScript object.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L87" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L87" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsRangeError">
- <dt><pre><a href="jsffi.html#JsRangeError"><span class="Identifier">JsRangeError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"RangeError"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L117" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L117" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsReferenceError">
- <dt><pre><a href="jsffi.html#JsReferenceError"><span class="Identifier">JsReferenceError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"ReferenceError"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L118" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L118" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsSyntaxError">
- <dt><pre><a href="jsffi.html#JsSyntaxError"><span class="Identifier">JsSyntaxError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"SyntaxError"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L119" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L119" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsTypeError">
- <dt><pre><a href="jsffi.html#JsTypeError"><span class="Identifier">JsTypeError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"TypeError"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L120" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L120" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="JsURIError">
- <dt><pre><a href="jsffi.html#JsURIError"><span class="Identifier">JsURIError</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"URIError"</span>.} <span class="Other">=</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="jsffi.html#JsError"><span class="Identifier">JsError</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L121" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L121" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </dl>
- </div>
- <div class="section" id="8">
- <h1><a class="toc-backref" href="#8">Vars</a></h1>
- <dl class="item">
- <div id="jsArguments">
- <dt><pre><a href="jsffi.html#jsArguments"><span class="Identifier">jsArguments</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"arguments"</span><span class="Other">,</span> <span class="Identifier">nodecl</span>.}<span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
- JavaScript's arguments pseudo-variable.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L95" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L95" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="jsDirname">
- <dt><pre><a href="jsffi.html#jsDirname"><span class="Identifier">jsDirname</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"__dirname"</span><span class="Other">,</span> <span class="Identifier">nodecl</span>.}<span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a></pre></dt>
- <dd>
-
- JavaScript's __dirname pseudo-variable.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L101" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L101" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="jsFilename">
- <dt><pre><a href="jsffi.html#jsFilename"><span class="Identifier">jsFilename</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"__filename"</span><span class="Other">,</span> <span class="Identifier">nodecl</span>.}<span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a></pre></dt>
- <dd>
-
- JavaScript's __filename pseudo-variable.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L103" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L103" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="jsNull">
- <dt><pre><a href="jsffi.html#jsNull"><span class="Identifier">jsNull</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"null"</span><span class="Other">,</span> <span class="Identifier">nodecl</span>.}<span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
- JavaScript's null literal.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L97" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L97" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="jsUndefined">
- <dt><pre><a href="jsffi.html#jsUndefined"><span class="Identifier">jsUndefined</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"undefined"</span><span class="Other">,</span> <span class="Identifier">nodecl</span>.}<span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
- JavaScript's undefined literal.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L99" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L99" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </dl>
- </div>
- <div class="section" id="12">
- <h1><a class="toc-backref" href="#12">Procs</a></h1>
- <dl class="item">
- <div id="%-procs-all">
- <div id="%,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%25%2CJsObject%2CJsObject"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# % #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L170" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L170" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="%=-procs-all">
- <div id="%=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%25%3D%2CJsObject%2CJsObject"><span class="Identifier">`%=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# %= #)"</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L175" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L175" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="&-procs-all">
- <div id="&,cstring,cstring">
- <dt><pre><span class="Keyword">proc</span> <a href="#%26%2Ccstring%2Ccstring"><span class="Identifier">`&`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# + #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Concatenation operator for JavaScript strings.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L163" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L163" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="*-procs-all">
- <div id="*,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2A%2CJsObject%2CJsObject"><span class="Identifier">`*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# * #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L168" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L168" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="**-procs-all">
- <div id="**,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2A%2A%2CJsObject%2CJsObject"><span class="Identifier">`**`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"((#) ** #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L182" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L182" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="*=-procs-all">
- <div id="*=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2A%3D%2CJsObject%2CJsObject"><span class="Identifier">`*=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# *= #)"</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L173" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L173" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="+-procs-all">
- <div id="+,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2B%2CJsObject%2CJsObject"><span class="Identifier">`+`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# + #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L166" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L166" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="++-procs-all">
- <div id="++,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2B%2B%2CJsObject"><span class="Identifier">`++`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(++#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L176" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L176" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="+=-procs-all">
- <div id="+=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2B%3D%2CJsObject%2CJsObject"><span class="Identifier">`+=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# += #)"</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L171" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L171" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="--procs-all">
- <div id="-,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#-%2CJsObject%2CJsObject"><span class="Identifier">`-`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# - #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L167" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L167" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="---procs-all">
- <div id="--,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#--%2CJsObject"><span class="Identifier">`--`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(--#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L177" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L177" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="-=-procs-all">
- <div id="-=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#-%3D%2CJsObject%2CJsObject"><span class="Identifier">`-=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# -= #)"</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L172" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L172" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="/-procs-all">
- <div id="/,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2F%2CJsObject%2CJsObject"><span class="Identifier">`/`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# / #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L169" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L169" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="/=-procs-all">
- <div id="/=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%2F%3D%2CJsObject%2CJsObject"><span class="Identifier">`/=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# /= #)"</span><span class="Other">,</span> <span class="Identifier">discardable</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L174" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L174" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="<-procs-all">
- <div id="<,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3C%2CJsObject%2CJsObject"><span class="Identifier">`<`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# < #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L179" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L179" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="<=-procs-all">
- <div id="<=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%2CJsObject%2CJsObject"><span class="Identifier">`<=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# <= #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L181" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L181" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="==-procs-all">
- <div id="==,JsRoot,JsRoot">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CJsRoot%2CJsRoot"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#JsRoot"><span class="Identifier">JsRoot</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# === #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Compares two JsObjects or JsAssocs. Be careful though, as this is comparison like in JavaScript, so if your JsObjects are in fact JavaScript Objects, and not strings or numbers, this is a <em>comparison of references</em>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L215" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L215" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id=">-procs-all">
- <div id=">,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3E%2CJsObject%2CJsObject"><span class="Identifier">`>`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# > #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L178" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L178" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id=">=-procs-all">
- <div id=">=,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3E%3D%2CJsObject%2CJsObject"><span class="Identifier">`>=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# >= #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L180" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L180" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="[]-procs-all">
- <div id="[],JsObject,cstring">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsObject%2Ccstring"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#[#]"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Returns the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> from a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L189" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L189" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="[],JsObject,int">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsObject%2Cint"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#[#]"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Returns the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> from a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L192" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L192" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="[],JsAssoc[K: JsKey,V],K">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsAssoc%5BK%3A%20JsKey%2CV%5D%2CK"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="jsffi.html#JsKey"><span class="Identifier">JsKey</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <span class="Identifier">K</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">V</span> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#[#]"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Returns the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> from a JsAssoc <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L201" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L201" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="[],JsAssoc[cstring,V],string">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsAssoc%5Bcstring%2CV%5D%2Cstring"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">V</span></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L209" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L209" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="[]=-procs-all">
- <div id="[]=,JsAssoc[K: JsKey,V],K,V">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CJsAssoc%5BK%3A%20JsKey%2CV%5D%2CK%2CV"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="jsffi.html#JsKey"><span class="Identifier">JsKey</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <span class="Identifier">K</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">V</span><span class="Other">)</span> {.
- <span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#[#] = #"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Sets the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> in a JsAssoc <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">v</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L205" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L205" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="[]=,JsObject,cstring,T">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CJsObject%2Ccstring%2CT"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#[#] = #"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Sets the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> in a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">v</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L195" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L195" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="[]=,JsObject,int,T">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CJsObject%2Cint%2CT"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#[#] = #"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Sets the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> in a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">v</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L198" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L198" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="[]=,JsAssoc[cstring,V],string,V">
- <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CJsAssoc%5Bcstring%2CV%5D%2Cstring%2CV"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">V</span><span class="Other">)</span></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L212" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L212" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="and-procs-all">
- <div id="and,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#and%2CJsObject%2CJsObject"><span class="Identifier">`and`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# && #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L184" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L184" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="hasOwnProperty-procs-all">
- <div id="hasOwnProperty,JsObject,cstring">
- <dt><pre><span class="Keyword">proc</span> <a href="#hasOwnProperty%2CJsObject%2Ccstring"><span class="Identifier">hasOwnProperty</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">prop</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.
- <span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"#.hasOwnProperty(#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Checks, whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">prop</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L131" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L131" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="in-procs-all">
- <div id="in,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#in%2CJsObject%2CJsObject"><span class="Identifier">`in`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# in #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L187" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L187" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isNull-procs-all">
- <div id="isNull,T">
- <dt><pre><span class="Keyword">proc</span> <a href="#isNull%2CT"><span class="Identifier">isNull</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# === null)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Checks if a value is exactly null.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L106" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L106" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isUndefined-procs-all">
- <div id="isUndefined,T">
- <dt><pre><span class="Keyword">proc</span> <a href="#isUndefined%2CT"><span class="Identifier">isUndefined</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# === undefined)"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Checks if a value is exactly undefined.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L109" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L109" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="jsDelete-procs-all">
- <div id="jsDelete,auto">
- <dt><pre><span class="Keyword">proc</span> <a href="#jsDelete%2Cauto"><span class="Identifier">jsDelete</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#auto"><span class="Identifier">auto</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(delete #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- JavaScript's <tt class="docutils literal"><span class="pre"><span class="Identifier">delete</span></span></tt> operator.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L142" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L142" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="jsNew-procs-all">
- <div id="jsNew,auto">
- <dt><pre><span class="Keyword">proc</span> <a href="#jsNew%2Cauto"><span class="Identifier">jsNew</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#auto"><span class="Identifier">auto</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(new #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Turns a regular function call into an invocation of the JavaScript's <tt class="docutils literal"><span class="pre"><span class="Identifier">new</span></span></tt> operator.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L138" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L138" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="jsTypeOf-procs-all">
- <div id="jsTypeOf,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#jsTypeOf%2CJsObject"><span class="Identifier">jsTypeOf</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"typeof(#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Returns the name of the JsObject's JavaScript type as a cstring.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L135" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L135" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="newJsAssoc-procs-all">
- <div id="newJsAssoc">
- <dt><pre><span class="Keyword">proc</span> <a href="#newJsAssoc"><span class="Identifier">newJsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="jsffi.html#JsKey"><span class="Identifier">JsKey</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"{@}"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Creates a new empty JsAssoc with key type <tt class="docutils literal"><span class="pre"><span class="Identifier">K</span></span></tt> and value type <tt class="docutils literal"><span class="pre"><span class="Identifier">V</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L127" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L127" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="newJsObject-procs-all">
- <div id="newJsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#newJsObject"><span class="Identifier">newJsObject</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"{@}"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Creates a new empty JsObject.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L124" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L124" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="not-procs-all">
- <div id="not,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#not%2CJsObject"><span class="Identifier">`not`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(!#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L186" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L186" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="or-procs-all">
- <div id="or,JsObject,JsObject">
- <dt><pre><span class="Keyword">proc</span> <a href="#or%2CJsObject%2CJsObject"><span class="Identifier">`or`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(# || #)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L185" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L185" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="require-procs-all">
- <div id="require,cstring">
- <dt><pre><span class="Keyword">proc</span> <a href="#require%2Ccstring"><span class="Identifier">require</span></a><span class="Other">(</span><span class="Identifier">module</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importc</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- JavaScript's <tt class="docutils literal"><span class="pre"><span class="Identifier">require</span></span></tt> function.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L145" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L145" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="to-procs-all">
- <div id="to,JsObject,typedesc">
- <dt><pre><span class="Keyword">proc</span> <a href="#to%2CJsObject%2Ctypedesc"><span class="Identifier">to</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T:type</span> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Converts a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to type <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L149" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L149" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toJs-procs-all">
- <div id="toJs,T">
- <dt><pre><span class="Keyword">proc</span> <a href="#toJs%2CT"><span class="Identifier">toJs</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"(#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Converts a value of any type to type JsObject.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L152" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L152" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toJsKey-procs-all">
- <div id="toJsKey,cstring,typecstring">
- <dt><pre><span class="Keyword">proc</span> <a href="#toJsKey%2Ccstring%2Ctypecstring"><span class="Identifier">toJsKey</span></a><span class="Other">(</span><span class="Identifier">text</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">type</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L78" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L78" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toJsKey,cstring,typeT_2">
- <dt><pre><span class="Keyword">proc</span> <a href="#toJsKey%2Ccstring%2CtypeT_2"><span class="Identifier">toJsKey</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">text</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">type</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L75" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L75" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toJsKey,cstring,typeT_3">
- <dt><pre><span class="Keyword">proc</span> <a href="#toJsKey%2Ccstring%2CtypeT_3"><span class="Identifier">toJsKey</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">text</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">type</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.
- <span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"parseFloat(#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L81" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L81" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toJsKey,cstring,typeT">
- <dt><pre><span class="Keyword">proc</span> <a href="#toJsKey%2Ccstring%2CtypeT"><span class="Identifier">toJsKey</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">text</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">type</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.
- <span class="Identifier">importjs</span><span class="Other">:</span> <span class="StringLit">"parseInt(#)"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L73" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L73" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- <div class="section" id="15">
- <h1><a class="toc-backref" href="#15">Iterators</a></h1>
- <dl class="item">
- <div id="items-iterators-all">
- <div id="items.i,JsObject">
- <dt><pre><span class="Keyword">iterator</span> <a href="#items.i%2CJsObject"><span class="Identifier">items</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Yields the <tt class="docutils literal"><span class="pre"><span class="Identifier">values</span></span></tt> of each field in a JsObject, wrapped into a JsObject.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L362" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L362" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="items.i,JsAssoc[K,V]">
- <dt><pre><span class="Keyword">iterator</span> <a href="#items.i%2CJsAssoc%5BK%2CV%5D"><span class="Identifier">items</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">assoc</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">V</span></pre></dt>
- <dd>
-
- Yields the <tt class="docutils literal"><span class="pre"><span class="Identifier">values</span></span></tt> in a JsAssoc.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L390" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L390" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="keys-iterators-all">
- <div id="keys.i,JsObject">
- <dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CJsObject"><span class="Identifier">keys</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Yields the <tt class="docutils literal"><span class="pre"><span class="Identifier">names</span></span></tt> of each field in a JsObject.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L371" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L371" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="keys.i,JsAssoc[K: JsKey,V]">
- <dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CJsAssoc%5BK%3A%20JsKey%2CV%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="jsffi.html#JsKey"><span class="Identifier">JsKey</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">assoc</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">K</span></pre></dt>
- <dd>
-
- Yields the <tt class="docutils literal"><span class="pre"><span class="Identifier">keys</span></span></tt> in a JsAssoc.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L399" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L399" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="pairs-iterators-all">
- <div id="pairs.i,JsObject">
- <dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CJsObject"><span class="Identifier">pairs</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">,</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Yields tuples of type <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">cstring</span><span class="Punctuation">,</span> <span class="Identifier">JsObject</span><span class="Punctuation">)</span></span></tt>, with the first entry being the <tt class="docutils literal"><span class="pre"><span class="Identifier">name</span></span></tt> of a fields in the JsObject and the second being its value wrapped into a JsObject.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L350" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L350" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="pairs.i,JsAssoc[K: JsKey,V]">
- <dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CJsAssoc%5BK%3A%20JsKey%2CV%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="jsffi.html#JsKey"><span class="Identifier">JsKey</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">assoc</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">)</span></pre></dt>
- <dd>
-
- Yields tuples of type <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">K</span><span class="Punctuation">,</span> <span class="Identifier">V</span><span class="Punctuation">)</span></span></tt>, with the first entry being a <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> in the JsAssoc and the second being its corresponding value.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L379" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L379" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- <div class="section" id="17">
- <h1><a class="toc-backref" href="#17">Macros</a></h1>
- <dl class="item">
- <div id=".-macros-all">
- <div id="..m,JsObject,untyped">
- <dt><pre><span class="Keyword">macro</span> <a href="#..m%2CJsObject%2Cuntyped"><span class="Identifier">`.`</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
- Experimental dot accessor (get) for type JsObject. Returns the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> from a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">obj</span> <span class="Operator">=</span> <span class="Identifier">newJsObject</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
- <span class="Identifier">obj</span><span class="Operator">.</span><span class="Identifier">a</span> <span class="Operator">=</span> <span class="DecNumber">20</span>
- <span class="Identifier">assert</span> <span class="Identifier">obj</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">to</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">20</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L221" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L221" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="..m,JsAssoc[K: cstring,V],untyped">
- <dt><pre><span class="Keyword">macro</span> <a href="#..m%2CJsAssoc%5BK%3A%20cstring%2CV%5D%2Cuntyped"><span class="Identifier">`.`</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">V</span></pre></dt>
- <dd>
-
- Experimental dot accessor (get) for type JsAssoc. Returns the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> from a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L300" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L300" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id=".()-macros-all">
- <div id=".().m,JsObject,untyped,varargs[JsObject,jsFromAst]">
- <dt><pre><span class="Keyword">macro</span> <a href="#.%28%29.m%2CJsObject%2Cuntyped%2Cvarargs%5BJsObject%2CjsFromAst%5D"><span class="Identifier">`.()`</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">;</span> <span class="Identifier">args</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">,</span> <span class="Identifier">jsFromAst</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
- <p>Experimental "method call" operator for type JsObject. Takes the name of a method of the JavaScript object (<tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt>) and calls it with <tt class="docutils literal"><span class="pre"><span class="Identifier">args</span></span></tt> as arguments, returning a JsObject (which may be discarded, and may be <tt class="docutils literal"><span class="pre"><span class="Identifier">undefined</span></span></tt>, if the method does not return anything, so be careful when using this.)</p>
- <p>Example:</p>
- <p><pre class="listing"><span class="Comment"># Let's get back to the console example:</span>
- <span class="Keyword">var</span> <span class="Identifier">console</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">importc</span><span class="Punctuation">,</span> <span class="Identifier">nodecl</span><span class="Operator">.</span><span class="Punctuation">}</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span>
- <span class="Keyword">let</span> <span class="Identifier">res</span> <span class="Operator">=</span> <span class="Identifier">console</span><span class="Operator">.</span><span class="Identifier">log</span><span class="Punctuation">(</span><span class="StringLit">"I return undefined!"</span><span class="Punctuation">)</span>
- <span class="Identifier">console</span><span class="Operator">.</span><span class="Identifier">log</span><span class="Punctuation">(</span><span class="Identifier">res</span><span class="Punctuation">)</span> <span class="Comment"># This prints undefined, as console.log always returns</span>
- <span class="Comment"># undefined. Thus one has to be careful, when using</span>
- <span class="Comment"># JsObject calls.</span></pre></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L265" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L265" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id=".().m,JsAssoc[K: cstring,V: proc],untyped,varargs[untyped]">
- <dt><pre><span class="Keyword">macro</span> <a href="#.%28%29.m%2CJsAssoc%5BK%3A%20cstring%2CV%3A%20proc%5D%2Cuntyped%2Cvarargs%5Buntyped%5D"><span class="Identifier">`.()`</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">:</span> <span class="Keyword">proc</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">;</span>
- <span class="Identifier">args</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#auto"><span class="Identifier">auto</span></a></pre></dt>
- <dd>
-
- Experimental "method call" operator for type JsAssoc. Takes the name of a method of the JavaScript object (<tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt>) and calls it with <tt class="docutils literal"><span class="pre"><span class="Identifier">args</span></span></tt> as arguments. Here, everything is typechecked, so you do not have to worry about <tt class="docutils literal"><span class="pre"><span class="Identifier">undefined</span></span></tt> return values.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L335" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L335" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id=".=-macros-all">
- <div id=".=.m,JsObject,untyped,untyped">
- <dt><pre><span class="Keyword">macro</span> <a href="#.%3D.m%2CJsObject%2Cuntyped%2Cuntyped"><span class="Identifier">`.=`</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">,</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
- <dd>
-
- Experimental dot accessor (set) for type JsObject. Sets the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> in a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L245" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L245" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id=".=.m,JsAssoc[K: cstring,V],untyped,V">
- <dt><pre><span class="Keyword">macro</span> <a href="#.%3D.m%2CJsAssoc%5BK%3A%20cstring%2CV%5D%2Cuntyped%2CV"><span class="Identifier">`.=`</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</span></a><span class="Other">;</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="jsffi.html#JsAssoc"><span class="Identifier">JsAssoc</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">field</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">V</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
- <dd>
-
- Experimental dot accessor (set) for type JsAssoc. Sets the value of a property of name <tt class="docutils literal"><span class="pre"><span class="Identifier">field</span></span></tt> in a JsObject <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L317" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L317" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="bindMethod-macros-all">
- <div id="bindMethod.m,typed">
- <dt><pre><span class="Keyword">macro</span> <a href="#bindMethod.m%2Ctyped"><span class="Identifier">bindMethod</span></a><span class="Other">(</span><span class="Identifier">procedure</span><span class="Other">:</span> <a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#auto"><span class="Identifier">auto</span></a> {.
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Don\'t use it with closures"</span></span>.}</pre></dt>
- <dd>
- <div class="deprecation-message">
- <b>Deprecated:</b> Don't use it with closures
- </div>
- <p>Takes the name of a procedure and wraps it into a lambda missing the first argument, which passes the JavaScript builtin <tt class="docutils literal"><span class="pre"><span class="Identifier">this</span></span></tt> as the first argument to the procedure. Returns the resulting lambda.</p>
- <p>Example:</p>
- <p>We want to generate roughly this JavaScript:</p>
- <p><pre class="listing">var obj = {a: 10};
- obj.someMethod = function() {
- return this.a + 42;
- };</pre></p>
- <p>We can achieve this using the <tt class="docutils literal"><span class="pre"><span class="Identifier">bindMethod</span></span></tt> macro:</p>
- <p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">obj</span> <span class="Operator">=</span> <span class="Identifier">JsObject</span><span class="Punctuation">{</span> <span class="Identifier">a</span><span class="Punctuation">:</span> <span class="DecNumber">10</span> <span class="Punctuation">}</span>
- <span class="Keyword">proc</span> <span class="Identifier">someMethodImpl</span><span class="Punctuation">(</span><span class="Identifier">that</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Operator">=</span>
- <span class="Identifier">that</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">to</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Operator">+</span> <span class="DecNumber">42</span>
- <span class="Identifier">obj</span><span class="Operator">.</span><span class="Identifier">someMethod</span> <span class="Operator">=</span> <span class="Identifier">bindMethod</span> <span class="Identifier">someMethodImpl</span>
- <span class="Comment"># Alternatively:</span>
- <span class="Identifier">obj</span><span class="Operator">.</span><span class="Identifier">someMethod</span> <span class="Operator">=</span> <span class="Identifier">bindMethod</span>
- <span class="Keyword">proc</span><span class="Punctuation">(</span><span class="Identifier">that</span><span class="Punctuation">:</span> <span class="Identifier">JsObject</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">int</span> <span class="Operator">=</span> <span class="Identifier">that</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">to</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Operator">+</span> <span class="DecNumber">42</span></pre></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L471" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L471" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="jsFromAst-macros-all">
- <div id="jsFromAst.m,untyped">
- <dt><pre><span class="Keyword">macro</span> <a href="#jsFromAst.m%2Cuntyped"><span class="Identifier">jsFromAst</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L157" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L157" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="{}-macros-all">
- <div id="{}.m,typedesc,varargs[untyped]">
- <dt><pre><span class="Keyword">macro</span> <a href="#%7B%7D.m%2Ctypedesc%2Cvarargs%5Buntyped%5D"><span class="Identifier">`{}`</span></a><span class="Other">(</span><span class="Identifier">typ</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">;</span> <span class="Identifier">xs</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#auto"><span class="Identifier">auto</span></a></pre></dt>
- <dd>
-
- <p>Takes a <tt class="docutils literal"><span class="pre"><span class="Identifier">typedesc</span></span></tt> as its first argument, and a series of expressions of type <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span><span class="Punctuation">:</span> <span class="Identifier">value</span></span></tt>, and returns a value of the specified type with each field <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> set to <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>, as specified in the arguments of <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Punctuation">}</span></span></tt>.</p>
- <p>Example:</p>
- <p><pre class="listing"><span class="Comment"># Let's say we have a type with a ton of fields, where some fields do not</span>
- <span class="Comment"># need to be set, and we do not want those fields to be set to `nil`:</span>
- <span class="Keyword">type</span>
- <span class="Identifier">ExtremelyHugeType</span> <span class="Operator">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span>
- <span class="Identifier">a</span><span class="Punctuation">,</span> <span class="Identifier">b</span><span class="Punctuation">,</span> <span class="Identifier">c</span><span class="Punctuation">,</span> <span class="Identifier">d</span><span class="Punctuation">,</span> <span class="Identifier">e</span><span class="Punctuation">,</span> <span class="Identifier">f</span><span class="Punctuation">,</span> <span class="Identifier">g</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
- <span class="Identifier">h</span><span class="Punctuation">,</span> <span class="Identifier">i</span><span class="Punctuation">,</span> <span class="Identifier">j</span><span class="Punctuation">,</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">l</span><span class="Punctuation">:</span> <span class="Identifier">cstring</span>
- <span class="Comment"># And even more fields ...</span>
- <span class="Keyword">let</span> <span class="Identifier">obj</span> <span class="Operator">=</span> <span class="Identifier">ExtremelyHugeType</span><span class="Punctuation">{</span> <span class="Identifier">a</span><span class="Punctuation">:</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">k</span><span class="Punctuation">:</span> <span class="StringLit">"foo"</span><span class="Operator">.</span><span class="Identifier">cstring</span><span class="Punctuation">,</span> <span class="Identifier">d</span><span class="Punctuation">:</span> <span class="DecNumber">42</span> <span class="Punctuation">}</span>
- <span class="Comment"># This generates roughly the same JavaScript as:</span>
- <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">emit</span><span class="Punctuation">:</span> <span class="StringLit">"var obj = {a: 1, k: "</span><span class="RawData">foo", d: 42};"</span><span class="Operator">.</span><span class="Punctuation">}</span></pre></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L409" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L409" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- <div class="section" id="18">
- <h1><a class="toc-backref" href="#18">Templates</a></h1>
- <dl class="item">
- <div id="toJs-templates-all">
- <div id="toJs.t,string">
- <dt><pre><span class="Keyword">template</span> <a href="#toJs.t%2Cstring"><span class="Identifier">toJs</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="jsffi.html#JsObject"><span class="Identifier">JsObject</span></a></pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/js/jsffi.nim#L155" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/js/jsffi.nim#L155" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- </div>
- </div>
- <div class="twelve-columns footer">
- <span class="nim-sprite"></span>
- <br>
- <small style="color: var(--hint);">Made with Nim. Generated: 2025-02-03 14:57:35 UTC</small>
- </div>
- </div>
- </div>
- <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
-
- </body>
- </html>
|