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