std/private/jsutils
Source EditПример:
import std/private/jsutils
let a {.importjs: "Number.MAX_SAFE_INTEGER".}: int64
assert a == maxSafeInteger Импорты
- jsbigints
Типы
Константы
maxSafeInteger = 9007199254740991'i64
- Совпадает с
Number.MAX_SAFE_INTEGERили2^53 - 1. См. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER Source Edit
Процедуры
func `[]`(arr: BigUint64Array; i: int): JsBigInt {.importjs: "#[#]", ...raises: [], tags: [], forbids: [].}- Source Edit
proc getProtoName[T](a: T): cstring {.importjs: "Object.prototype.toString.call(#)", ...raises: [], tags: [], forbids: [].}-
Пример:
import std/[jsffi, jsbigints] type A = ref object assert 1.toJs.getProtoName == "[object Number]" assert "a".toJs.getProtoName == "[object String]" assert big"1".toJs.getProtoName == "[object BigInt]" assert false.toJs.getProtoName == "[object Boolean]" assert (a: 1).toJs.getProtoName == "[object Object]" assert A.default.toJs.getProtoName == "[object Null]" assert [1].toJs.getProtoName == "[object Int32Array]" # implementation defined assert @[1].toJs.getProtoName == "[object Array]" # ditto
Source Edit proc isSafeInteger[T](x: T): bool {.importjs: "Number.isSafeInteger(#)", ...raises: [], tags: [], forbids: [].}-
Пример:
import std/jsffi assert not "123".toJs.isSafeInteger assert 123.isSafeInteger assert 123.toJs.isSafeInteger when false: assert 9007199254740991.toJs.isSafeInteger assert not 9007199254740992.toJs.isSafeInteger
Source Edit proc jsTypeOf[T](x: T): cstring {.importjs: "typeof(#)", ...raises: [], tags: [], forbids: [].}- Возвращает имя JavaScript-типа JsObject в виде cstring.
Пример:
import std/[jsffi, jsbigints] assert jsTypeOf(1.toJs) == "number" assert jsTypeOf(false.toJs) == "boolean" assert [1].toJs.jsTypeOf == "object" # note the difference with `getProtoName` assert big"1".toJs.jsTypeOf == "bigint"
Source Edit
Шаблоны
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/jsutils.html