This commit is contained in:
Araq 2017-06-27 15:34:42 +02:00
commit 5334fd4533

View file

@ -98,46 +98,47 @@ elif defined(windows):
elif defined(JS): elif defined(JS):
type type
Time* = ref TimeObj TimeBase = float
TimeObj {.importc.} = object Time* = distinct TimeBase
getDay: proc (): int {.tags: [], raises: [], benign.}
getFullYear: proc (): int {.tags: [], raises: [], benign.} proc getDay(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getHours: proc (): int {.tags: [], raises: [], benign.} proc getFullYear(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getMilliseconds: proc (): int {.tags: [], raises: [], benign.} proc getHours(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getMinutes: proc (): int {.tags: [], raises: [], benign.} proc getMilliseconds(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getMonth: proc (): int {.tags: [], raises: [], benign.} proc getMinutes(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getSeconds: proc (): int {.tags: [], raises: [], benign.} proc getMonth(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getTime: proc (): int {.tags: [], raises: [], noSideEffect, benign.} proc getSeconds(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getTimezoneOffset: proc (): int {.tags: [], raises: [], benign.} proc getTime(t: Time): int {.tags: [], raises: [], noSideEffect, benign, importcpp.}
getDate: proc (): int {.tags: [], raises: [], benign.} proc getTimezoneOffset(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCDate: proc (): int {.tags: [], raises: [], benign.} proc getDate(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCFullYear: proc (): int {.tags: [], raises: [], benign.} proc getUTCDate(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCHours: proc (): int {.tags: [], raises: [], benign.} proc getUTCFullYear(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCMilliseconds: proc (): int {.tags: [], raises: [], benign.} proc getUTCHours(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCMinutes: proc (): int {.tags: [], raises: [], benign.} proc getUTCMilliseconds(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCMonth: proc (): int {.tags: [], raises: [], benign.} proc getUTCMinutes(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCSeconds: proc (): int {.tags: [], raises: [], benign.} proc getUTCMonth(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getUTCDay: proc (): int {.tags: [], raises: [], benign.} proc getUTCSeconds(t: Time): int {.tags: [], raises: [], benign, importcpp.}
getYear: proc (): int {.tags: [], raises: [], benign.} proc getUTCDay(t: Time): int {.tags: [], raises: [], benign, importcpp.}
parse: proc (s: cstring): Time {.tags: [], raises: [], benign.} proc getYear(t: Time): int {.tags: [], raises: [], benign, importcpp.}
setDate: proc (x: int) {.tags: [], raises: [], benign.} proc parse(t: Time; s: cstring): Time {.tags: [], raises: [], benign, importcpp.}
setFullYear: proc (x: int) {.tags: [], raises: [], benign.} proc setDate(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setHours: proc (x: int) {.tags: [], raises: [], benign.} proc setFullYear(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setMilliseconds: proc (x: int) {.tags: [], raises: [], benign.} proc setHours(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setMinutes: proc (x: int) {.tags: [], raises: [], benign.} proc setMilliseconds(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setMonth: proc (x: int) {.tags: [], raises: [], benign.} proc setMinutes(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setSeconds: proc (x: int) {.tags: [], raises: [], benign.} proc setMonth(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setTime: proc (x: int) {.tags: [], raises: [], benign.} proc setSeconds(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCDate: proc (x: int) {.tags: [], raises: [], benign.} proc setTime(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCFullYear: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCDate(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCHours: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCFullYear(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCMilliseconds: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCHours(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCMinutes: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCMilliseconds(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCMonth: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCMinutes(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setUTCSeconds: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCMonth(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
setYear: proc (x: int) {.tags: [], raises: [], benign.} proc setUTCSeconds(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
toGMTString: proc (): cstring {.tags: [], raises: [], benign.} proc setYear(t: Time; x: int) {.tags: [], raises: [], benign, importcpp.}
toLocaleString: proc (): cstring {.tags: [], raises: [], benign.} proc toGMTString(t: Time): cstring {.tags: [], raises: [], benign, importcpp.}
proc toLocaleString(t: Time): cstring {.tags: [], raises: [], benign, importcpp.}
type type
TimeInfo* = object of RootObj ## represents a time in different parts TimeInfo* = object of RootObj ## represents a time in different parts
@ -225,16 +226,25 @@ proc `-`*(a, b: Time): int64 {.
proc `<`*(a, b: Time): bool {. proc `<`*(a, b: Time): bool {.
rtl, extern: "ntLtTime", tags: [], raises: [], noSideEffect.} = rtl, extern: "ntLtTime", tags: [], raises: [], noSideEffect.} =
## returns true iff ``a < b``, that is iff a happened before b. ## returns true iff ``a < b``, that is iff a happened before b.
when defined(js):
result = TimeBase(a) < TimeBase(b)
else:
result = a - b < 0 result = a - b < 0
proc `<=` * (a, b: Time): bool {. proc `<=` * (a, b: Time): bool {.
rtl, extern: "ntLeTime", tags: [], raises: [], noSideEffect.}= rtl, extern: "ntLeTime", tags: [], raises: [], noSideEffect.}=
## returns true iff ``a <= b``. ## returns true iff ``a <= b``.
when defined(js):
result = TimeBase(a) <= TimeBase(b)
else:
result = a - b <= 0 result = a - b <= 0
proc `==`*(a, b: Time): bool {. proc `==`*(a, b: Time): bool {.
rtl, extern: "ntEqTime", tags: [], raises: [], noSideEffect.} = rtl, extern: "ntEqTime", tags: [], raises: [], noSideEffect.} =
## returns true if ``a == b``, that is if both times represent the same value ## returns true if ``a == b``, that is if both times represent the same value
when defined(js):
result = TimeBase(a) == TimeBase(b)
else:
result = a - b == 0 result = a - b == 0
proc getTimezone*(): int {.tags: [TimeEffect], raises: [], benign.} proc getTimezone*(): int {.tags: [TimeEffect], raises: [], benign.}