summaryrefslogtreecommitdiffstats
path: root/toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/Int32.jsm
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/Int32.jsm')
-rw-r--r--toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/Int32.jsm26
1 files changed, 26 insertions, 0 deletions
diff --git a/toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/Int32.jsm b/toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/Int32.jsm
new file mode 100644
index 0000000000..81c64343eb
--- /dev/null
+++ b/toolkit/components/uniffi-bindgen-gecko-js/src/templates/js/Int32.jsm
@@ -0,0 +1,26 @@
+class {{ ffi_converter }} extends FfiConverter {
+ static checkType(name, value) {
+ super.checkType(name, value);
+ if (!Number.isInteger(value)) {
+ throw TypeError(`${name} is not an integer(${value})`);
+ }
+ if (value < -2147483648 || value > 2147483647) {
+ throw TypeError(`${name} exceeds the I32 bounds (${value})`);
+ }
+ }
+ static computeSize() {
+ return 4;
+ }
+ static lift(value) {
+ return value;
+ }
+ static lower(value) {
+ return value;
+ }
+ static write(dataStream, value) {
+ dataStream.writeInt32(value)
+ }
+ static read(dataStream) {
+ return dataStream.readInt32()
+ }
+}