Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 1x 1x 1x 1x 1x 1x 1x 1x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 47x 29x 29x 147x 147x 147x 2x 2x 2x 2x 145x 145x 145x 147x 43x 162x 162x 162x 43x 43x 43x 43x 145x 145x 29x 29x 47x 47x 16x 16x 40x 40x 40x 40x 16x 16x 47x 1x 14x | /** @import { Source } from '#client' */ import { derived } from '../internal/client/index.js'; import { source, set } from '../internal/client/reactivity/sources.js'; import { get } from '../internal/client/runtime.js'; var inited = false; export class SvelteDate extends Date { #time = source(super.getTime()); /** @type {Map<keyof Date, Source<unknown>>} */ #deriveds = new Map(); /** @param {any[]} params */ constructor(...params) { // @ts-ignore super(...params); if (!inited) this.#init(); } #init() { inited = true; var proto = SvelteDate.prototype; var date_proto = Date.prototype; var methods = /** @type {Array<keyof Date & string>} */ ( Object.getOwnPropertyNames(date_proto) ); for (const method of methods) { if (method.startsWith('get') || method.startsWith('to')) { // @ts-ignore proto[method] = function (...args) { // don't memoize if there are arguments // @ts-ignore if (args.length > 0) { get(this.#time); // @ts-ignore return date_proto[method].apply(this, args); } var d = this.#deriveds.get(method); if (d === undefined) { d = derived(() => { get(this.#time); // @ts-ignore return date_proto[method].apply(this, args); }); this.#deriveds.set(method, d); } return get(d); }; } if (method.startsWith('set')) { // @ts-ignore proto[method] = function (...args) { // @ts-ignore var result = date_proto[method].apply(this, args); set(this.#time, date_proto.getTime.call(this)); return result; }; } } } } |