.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / esnext.math.seeded-prng.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/modules/esnext.math.seeded-prng.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/modules/esnext.math.seeded-prng.js
new file mode 100644 (file)
index 0000000..6e39688
--- /dev/null
@@ -0,0 +1,33 @@
+var $ = require('../internals/export');
+var anObject = require('../internals/an-object');
+var numberIsFinite = require('../internals/number-is-finite');
+var createIteratorConstructor = require('../internals/create-iterator-constructor');
+var InternalStateModule = require('../internals/internal-state');
+
+var SEEDED_RANDOM = 'Seeded Random';
+var SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator';
+var setInternalState = InternalStateModule.set;
+var getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR);
+var SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a "seed" field with a finite value.';
+
+var $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) {
+  setInternalState(this, {
+    type: SEEDED_RANDOM_GENERATOR,
+    seed: seed % 2147483647
+  });
+}, SEEDED_RANDOM, function next() {
+  var state = getInternalState(this);
+  var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;
+  return { value: (seed & 1073741823) / 1073741823, done: false };
+});
+
+// `Math.seededPRNG` method
+// https://github.com/tc39/proposal-seeded-random
+// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html
+$({ target: 'Math', stat: true, forced: true }, {
+  seededPRNG: function seededPRNG(it) {
+    var seed = anObject(it).seed;
+    if (!numberIsFinite(seed)) throw TypeError(SEED_TYPE_ERROR);
+    return new $SeededRandomGenerator(seed);
+  }
+});