summaryrefslogtreecommitdiffhomepage
path: root/tests/custom/03_stdlib/08_int
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-06-01 12:36:44 +0200
committerJo-Philipp Wich <jo@mein.io>2022-06-01 12:53:26 +0200
commitd99604749d658f5f344d53e77dd52fbb0f6d176c (patch)
tree2e60555dc4ce9e81b42b7556dd2e2491473f776c /tests/custom/03_stdlib/08_int
parent9efbe183d7805eb60652a3745ec48cd32682ef8d (diff)
syntax: adjust number literal parsing and string to number conversion
- Recognize new number literal prefixes `0o` and `0O` for octal as well as `0b` and `0B` for binary number literals - Treat number literals with leading zeros as octal while parsing but as decimal ones on implicit number conversions, means `012` will yield `10` while `+"012"` or `"012" + 0` will yield `12` Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'tests/custom/03_stdlib/08_int')
-rw-r--r--tests/custom/03_stdlib/08_int17
1 files changed, 13 insertions, 4 deletions
diff --git a/tests/custom/03_stdlib/08_int b/tests/custom/03_stdlib/08_int
index 12db299..eae4904 100644
--- a/tests/custom/03_stdlib/08_int
+++ b/tests/custom/03_stdlib/08_int
@@ -1,8 +1,9 @@
The `int()` function converts the given value into a signed integer
-value and returns the resulting number.
+value and returns the resulting number. In case the value is of type
+string, a second optional base argument may be specified which is
+passed to the underlying strtoll(3) implementation.
Returns `NaN` if the given argument is not convertible into a number.
-
Returns `NaN` if the conversion result is out of range.
-- Testcase --
@@ -19,7 +20,11 @@ Returns `NaN` if the conversion result is out of range.
int("0xffffffffffffffff"),
int("0177"),
int("+145"),
- int("-96")
+ int("-96"),
+ int("0177", 8),
+ int("0x1000", 16),
+ int("1111", 2),
+ int("0xffffffffffffffff", 16)
]);
%}
-- End --
@@ -37,6 +42,10 @@ Returns `NaN` if the conversion result is out of range.
0,
177,
145,
- -96
+ -96,
+ 127,
+ 4096,
+ 15,
+ "NaN"
]
-- End --