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 | 2x 2x 2x 2x 2x 2x 2x 2x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 16x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 94x 58x 58x 181x 181x 181x 181x 181x 61x 210x 210x 210x 61x 61x 61x 59x 59x 61x 181x 181x 58x 58x 94x 94x 32x 32x 46x 46x 46x 46x 32x 32x 94x 2x 16x | /** @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) { // @ts-ignore var can_cache = args.length === 0; var d = can_cache ? this.#deriveds.get(method) : undefined; if (d === undefined) { d = derived(() => { get(this.#time); // @ts-ignore return date_proto[method].apply(this, args); }); if (can_cache) { 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; }; } } } } |