es.uint8-array.from-base64.js 1.0 KB

1234567891011121314151617181920212223242526272829
  1. 'use strict';
  2. var $ = require('../internals/export');
  3. var globalThis = require('../internals/global-this');
  4. var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
  5. var $fromBase64 = require('../internals/uint8-from-base64');
  6. var Uint8Array = globalThis.Uint8Array;
  7. var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64 || !function () {
  8. // Webkit not throw an error on odd length string
  9. try {
  10. Uint8Array.fromBase64('a');
  11. return;
  12. } catch (error) { /* empty */ }
  13. try {
  14. Uint8Array.fromBase64('', null);
  15. } catch (error) {
  16. return true;
  17. }
  18. }();
  19. // `Uint8Array.fromBase64` method
  20. // https://github.com/tc39/proposal-arraybuffer-base64
  21. if (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
  22. fromBase64: function fromBase64(string /* , options */) {
  23. var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);
  24. return arrayFromConstructorAndList(Uint8Array, result.bytes);
  25. }
  26. });