12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #
- #
- # Nim's Runtime Library
- # (c) Copyright 2018 Nim contributors
- #
- # See the file "copying.txt", included in this
- # distribution, for details about the copyright.
- #
- ## This module wraps core JavaScript functions.
- ##
- ## Unless your application has very
- ## specific requirements and solely targets JavaScript, you should be using
- ## the relevant functions in the ``math``, ``json``, and ``times`` stdlib
- ## modules instead.
- when not defined(js) and not defined(Nimdoc):
- {.error: "This module only works on the JavaScript platform".}
- type
- MathLib* = ref object
- JsonLib* = ref object
- DateLib* = ref object
- DateTime* = ref object
- var
- Math* {.importc, nodecl.}: MathLib
- Date* {.importc, nodecl.}: DateLib
- JSON* {.importc, nodecl.}: JsonLib
- # Math library
- proc abs*(m: MathLib, a: SomeNumber): SomeNumber {.importcpp.}
- proc acos*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc acosh*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc asin*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc asinh*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc atan*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc atan2*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc atanh*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc cbrt*(m: MathLib, f: SomeFloat): SomeFloat {.importcpp.}
- proc ceil*(m: MathLib, f: SomeFloat): SomeFloat {.importcpp.}
- proc clz32*(m: MathLib, f: SomeInteger): int {.importcpp.}
- proc cos*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc cosh*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc exp*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc expm1*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc floor*(m: MathLib, f: SomeFloat): int {.importcpp.}
- proc fround*(m: MathLib, f: SomeFloat): float32 {.importcpp.}
- proc hypot*(m: MathLib, args: varargs[distinct SomeNumber]): float {.importcpp.}
- proc imul*(m: MathLib, a, b: int32): int32 {.importcpp.}
- proc log*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc log10*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc log1p*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc log2*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc max*(m: MathLib, a, b: SomeNumber): SomeNumber {.importcpp.}
- proc min*[T: SomeNumber | JsRoot](m: MathLib, a, b: T): T {.importcpp.}
- proc pow*(m: MathLib, a, b: distinct SomeNumber): float {.importcpp.}
- proc random*(m: MathLib): float {.importcpp.}
- proc round*(m: MathLib, f: SomeFloat): int {.importcpp.}
- proc sign*(m: MathLib, f: SomeNumber): int {.importcpp.}
- proc sin*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc sinh*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc sqrt*(m: MathLib, f: SomeFloat): SomeFloat {.importcpp.}
- proc tan*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc tanh*(m: MathLib, a: SomeNumber): float {.importcpp.}
- proc trunc*(m: MathLib, f: SomeFloat): int {.importcpp.}
- # Date library
- proc now*(d: DateLib): int {.importcpp.}
- proc UTC*(d: DateLib): int {.importcpp.}
- proc parse*(d: DateLib, s: cstring): int {.importcpp.}
- proc newDate*(): DateTime {.
- importcpp: "new Date()".}
- proc newDate*(date: int|string): DateTime {.
- importcpp: "new Date(#)".}
- proc newDate*(year, month, day, hours, minutes,
- seconds, milliseconds: int): DateTime {.
- importcpp: "new Date(#,#,#,#,#,#,#)".}
- proc getDay*(d: DateTime): int {.importcpp.}
- proc getFullYear*(d: DateTime): int {.importcpp.}
- proc getHours*(d: DateTime): int {.importcpp.}
- proc getMilliseconds*(d: DateTime): int {.importcpp.}
- proc getMinutes*(d: DateTime): int {.importcpp.}
- proc getMonth*(d: DateTime): int {.importcpp.}
- proc getSeconds*(d: DateTime): int {.importcpp.}
- proc getYear*(d: DateTime): int {.importcpp.}
- proc getTime*(d: DateTime): int {.importcpp.}
- proc toString*(d: DateTime): cstring {.importcpp.}
- #JSON library
- proc stringify*(l: JsonLib, s: JsRoot): cstring {.importcpp.}
- proc parse*(l: JsonLib, s: cstring): JsRoot {.importcpp.}
|