Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
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.

es.array.slice.js 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. 'use strict';
  2. var $ = require('../internals/export');
  3. var isObject = require('../internals/is-object');
  4. var isArray = require('../internals/is-array');
  5. var toAbsoluteIndex = require('../internals/to-absolute-index');
  6. var toLength = require('../internals/to-length');
  7. var toIndexedObject = require('../internals/to-indexed-object');
  8. var createProperty = require('../internals/create-property');
  9. var wellKnownSymbol = require('../internals/well-known-symbol');
  10. var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
  11. var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
  12. var SPECIES = wellKnownSymbol('species');
  13. var nativeSlice = [].slice;
  14. var max = Math.max;
  15. // `Array.prototype.slice` method
  16. // https://tc39.es/ecma262/#sec-array.prototype.slice
  17. // fallback for not array-like ES3 strings and DOM objects
  18. $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
  19. slice: function slice(start, end) {
  20. var O = toIndexedObject(this);
  21. var length = toLength(O.length);
  22. var k = toAbsoluteIndex(start, length);
  23. var fin = toAbsoluteIndex(end === undefined ? length : end, length);
  24. // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
  25. var Constructor, result, n;
  26. if (isArray(O)) {
  27. Constructor = O.constructor;
  28. // cross-realm fallback
  29. if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
  30. Constructor = undefined;
  31. } else if (isObject(Constructor)) {
  32. Constructor = Constructor[SPECIES];
  33. if (Constructor === null) Constructor = undefined;
  34. }
  35. if (Constructor === Array || Constructor === undefined) {
  36. return nativeSlice.call(O, k, fin);
  37. }
  38. }
  39. result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
  40. for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
  41. result.length = n;
  42. return result;
  43. }
  44. });