tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

string-coercion.js (1223B)


      1 // |reftest| skip-if(!Uint8Array.fromBase64) -- uint8array-base64 is not enabled unconditionally
      2 // Copyright (C) 2024 Kevin Gibbons. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 /*---
      5 esid: sec-uint8array.frombase64
      6 description: Uint8Array.fromBase64 throws if its argument is not a string
      7 features: [uint8array-base64, TypedArray]
      8 ---*/
      9 
     10 var toStringCalls = 0;
     11 var throwyToString = {
     12  toString: function() {
     13    toStringCalls += 1;
     14    throw new Test262Error("toString called");
     15  }
     16 };
     17 
     18 assert.throws(TypeError, function() {
     19  Uint8Array.fromBase64(throwyToString);
     20 });
     21 assert.sameValue(toStringCalls, 0);
     22 
     23 
     24 var optionAccesses = 0;
     25 var touchyOptions = {};
     26 Object.defineProperty(touchyOptions, "alphabet", {
     27  get: function() {
     28    optionAccesses += 1;
     29    throw new Test262Error("alphabet accessed");
     30  }
     31 });
     32 Object.defineProperty(touchyOptions, "lastChunkHandling", {
     33  get: function() {
     34    optionAccesses += 1;
     35    throw new Test262Error("lastChunkHandling accessed");
     36  }
     37 });
     38 assert.throws(TypeError, function() {
     39  Uint8Array.fromBase64(throwyToString, touchyOptions);
     40 });
     41 assert.sameValue(toStringCalls, 0);
     42 assert.sameValue(optionAccesses, 0);
     43 
     44 reportCompare(0, 0);