1 // |reftest| shell-option(--enable-uint8array-base64) skip-if(!Uint8Array.fromBase64||!xulRuntime.shell) -- uint8array-base64 is not enabled unconditionally, requires shell-options
2 // Copyright (C) 2024 Kevin Gibbons. All rights reserved.
3 // This code is governed by the BSD license found in the LICENSE file.
5 esid: sec-uint8array.frombase64
6 description: Uint8Array.fromBase64 throws if its argument is not a string
7 features: [uint8array-base64, TypedArray]
10 var toStringCalls = 0;
11 var throwyToString = {
12 toString: function() {
14 throw new Test262Error("toString called");
18 assert.throws(TypeError, function() {
19 Uint8Array.fromBase64(throwyToString);
21 assert.sameValue(toStringCalls, 0);
24 var optionAccesses = 0;
25 var touchyOptions = {};
26 Object.defineProperty(touchyOptions, "alphabet", {
29 throw new Test262Error("alphabet accessed");
32 Object.defineProperty(touchyOptions, "lastChunkHandling", {
35 throw new Test262Error("lastChunkHandling accessed");
38 assert.throws(TypeError, function() {
39 Uint8Array.fromBase64(throwyToString, touchyOptions);
41 assert.sameValue(toStringCalls, 0);
42 assert.sameValue(optionAccesses, 0);