Dieses Repository beinhaltet HTML- und Javascript Code zur einer NotizenWebApp auf Basis von Web Storage. Zudem sind Mocha/Chai Tests im Browser enthalten. https://meinenotizen.netlify.app/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IterableToArrayLike.js 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 'use strict';
  2. var GetIntrinsic = require('../GetIntrinsic');
  3. var $iterator = GetIntrinsic('%Symbol.iterator%', true);
  4. var callBound = require('../helpers/callBound');
  5. var $arrayJoin = callBound('Array.prototype.join');
  6. var $arrayPush = callBound('Array.prototype.push');
  7. var $stringSlice = callBound('String.prototype.slice');
  8. var $stringSplit = callBound('String.prototype.split');
  9. var AdvanceStringIndex = require('./AdvanceStringIndex');
  10. var GetIterator = require('./GetIterator');
  11. var GetMethod = require('./GetMethod');
  12. var IsArray = require('./IsArray');
  13. var IteratorStep = require('./IteratorStep');
  14. var IteratorValue = require('./IteratorValue');
  15. var ToObject = require('./ToObject');
  16. var Type = require('./Type');
  17. // https://www.ecma-international.org/ecma-262/7.0/#sec-iterabletoarraylike
  18. module.exports = function IterableToArrayLike(items) {
  19. var usingIterator;
  20. if ($iterator) {
  21. usingIterator = GetMethod(items, $iterator);
  22. } else if (IsArray(items)) {
  23. usingIterator = function () {
  24. var i = -1;
  25. var arr = this; // eslint-disable-line no-invalid-this
  26. return {
  27. next: function () {
  28. i += 1;
  29. return {
  30. done: i >= arr.length,
  31. value: arr[i]
  32. };
  33. }
  34. };
  35. };
  36. } else if (Type(items) === 'String') {
  37. usingIterator = function () {
  38. var i = 0;
  39. return {
  40. next: function () {
  41. var nextIndex = AdvanceStringIndex(items, i, true);
  42. var value = $arrayJoin($stringSplit($stringSlice(items, i, nextIndex), ''), '');
  43. i = nextIndex;
  44. return {
  45. done: nextIndex > items.length,
  46. value: value
  47. };
  48. }
  49. };
  50. };
  51. }
  52. if (typeof usingIterator !== 'undefined') {
  53. var iterator = GetIterator(items, usingIterator);
  54. var values = [];
  55. var next = true;
  56. while (next) {
  57. next = IteratorStep(iterator);
  58. if (next) {
  59. var nextValue = IteratorValue(next);
  60. $arrayPush(values, nextValue);
  61. }
  62. }
  63. return values;
  64. }
  65. return ToObject(items);
  66. };