+++ /dev/null
-/*
- * Helper to check if a number is internally represented as a fastint:
- *
- * if (Duktape.isFastint(x)) {
- * print('fastint');
- * } else {
- * print('not a fastint (or not a number)');
- * }
- *
- * NOTE: This helper depends on the internal tag numbering (defined in
- * duk_tval.h) which is both version specific and depends on whether
- * duk_tval is packed or not.
- */
-
-if (typeof Duktape === 'object') {
- if (typeof Duktape.fastintTag === 'undefined') {
- Object.defineProperty(Duktape, 'fastintTag', {
- /* Tag number depends on duk_tval packing. */
- value: (Duktape.info(true)[1] >= 0xfff0) ?
- 0xfff1 /* tag for packed duk_tval */ :
- 1 /* tag for unpacked duk_tval */,
- writable: false,
- enumerable: false,
- configurable: true
- });
- }
- if (typeof Duktape.isFastint === 'undefined') {
- Object.defineProperty(Duktape, 'isFastint', {
- value: function (v) {
- return Duktape.info(v)[0] === 4 && /* public type is DUK_TYPE_NUMBER */
- Duktape.info(v)[1] === Duktape.fastintTag; /* internal tag is fastint */
- },
- writable: false,
- enumerable: false,
- configurable: true
- });
- }
-}