Category talk:Wren-check: Difference between revisions

→‎Source code: Fixed bug in Check.char method.
(→‎Source code: Added SafeInt and SafeInts classes.)
(→‎Source code: Fixed bug in Check.char method.)
 
(4 intermediate revisions by the same user not shown)
Line 1:
===Source code===
 
<syntaxhighlight lang="ecmascriptwren">/* Module "check.wren" */
 
/*
Line 15:
if (name == "" || name == null) name = "Value"
Fiber.abort("'%(name)' must be %(desc), have '%(value)'.")
}
 
static isSafeInt_(value) {
return (value is Num) && value.isInteger && value.abs <= Num.maxSafeInteger
}
 
Line 102 ⟶ 106:
}
 
static posInt(name, value) { int(name, value, 1) }
static nonNegInt(name, value) { int(name, value, 0) }
 
static safeInt(name, value) { int(name, value, "a 'safe' integer") }
static posSafeIntsafeInt(name, value) { int(name, value, "a positive 'safe' integer" }
static nonNegSafeInt(name, if (!isSafeInt_(value)) { intabort_(name, value, "a non-negative 'safe' integer" })
}
 
static posSafeInt(name, value) {
if (!(isSafeInt_(value) && value > 0)) {
static safeInt(name, value) { intabort_(name, value, "a positive 'safe' integer") }
}
}
 
static nonNegSafeInt(name, value) {
if (!(isSafeInt_(value) && value >= 0)) {
abort_(name, value, "a non-negative 'safe' integer")
}
}
 
static nonZeroSafeInt(name, value) {
if (!(safeIntisSafeInt_(value) && value != 0)) abort_(name, value, "a non-zero 'safe' integer"){
abort_(name, value, "a non-zero 'safe' integer")
}
}
 
Line 153 ⟶ 172:
int("max", max, min)
char(name, value)
if (value.codePoints[0] < min.codePoints[0] || value.codePoints[0] > max.codePoints[0]) {
abort_(name, value, "a character between '%(min)' and '%(max)'")
}
9,476

edits