1'use strict';
2
3require('../common');
4const assert = require('assert');
5const { isAscii, Buffer } = require('buffer');
6const { TextEncoder } = require('util');
7
8const encoder = new TextEncoder();
9
10assert.strictEqual(isAscii(encoder.encode('hello')), true);
11assert.strictEqual(isAscii(encoder.encode('ğ')), false);
12assert.strictEqual(isAscii(Buffer.from([])), true);
13
14[
15  undefined,
16  '', 'hello',
17  false, true,
18  0, 1,
19  0n, 1n,
20  Symbol(),
21  () => {},
22  {}, [], null,
23].forEach((input) => {
24  assert.throws(
25    () => { isAscii(input); },
26    {
27      code: 'ERR_INVALID_ARG_TYPE',
28    },
29  );
30});
31
32{
33  // Test with detached array buffers
34  const arrayBuffer = new ArrayBuffer(1024);
35  structuredClone(arrayBuffer, { transfer: [arrayBuffer] });
36  assert.throws(
37    () => { isAscii(arrayBuffer); },
38    {
39      code: 'ERR_INVALID_STATE'
40    }
41  );
42}
43