gitextract_w51t050h/ ├── .claude/ │ ├── CLAUDE.md │ └── skills/ │ ├── concept-workflow/ │ │ └── SKILL.md │ ├── fact-check/ │ │ └── SKILL.md │ ├── resource-curator/ │ │ └── SKILL.md │ ├── seo-review/ │ │ └── SKILL.md │ ├── test-writer/ │ │ └── SKILL.md │ └── write-concept/ │ └── SKILL.md ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── tests.yml ├── .gitignore ├── .opencode/ │ └── skill/ │ ├── concept-workflow/ │ │ └── SKILL.md │ ├── fact-check/ │ │ └── SKILL.md │ ├── resource-curator/ │ │ └── SKILL.md │ ├── seo-review/ │ │ └── SKILL.md │ ├── test-writer/ │ │ └── SKILL.md │ └── write-concept/ │ └── SKILL.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── TRANSLATIONS.md ├── docs/ │ ├── 5c8wamucvfketshf1eyrw254gz94jwre.txt │ ├── beyond/ │ │ ├── concepts/ │ │ │ ├── blob-file-api.mdx │ │ │ ├── computed-property-names.mdx │ │ │ ├── cookies.mdx │ │ │ ├── custom-events.mdx │ │ │ ├── debouncing-throttling.mdx │ │ │ ├── event-bubbling-capturing.mdx │ │ │ ├── event-delegation.mdx │ │ │ ├── garbage-collection.mdx │ │ │ ├── getters-setters.mdx │ │ │ ├── hoisting.mdx │ │ │ ├── indexeddb.mdx │ │ │ ├── intersection-observer.mdx │ │ │ ├── javascript-type-nuances.mdx │ │ │ ├── json-deep-dive.mdx │ │ │ ├── localstorage-sessionstorage.mdx │ │ │ ├── memoization.mdx │ │ │ ├── memory-management.mdx │ │ │ ├── mutation-observer.mdx │ │ │ ├── object-methods.mdx │ │ │ ├── performance-observer.mdx │ │ │ ├── property-descriptors.mdx │ │ │ ├── proxy-reflect.mdx │ │ │ ├── requestanimationframe.mdx │ │ │ ├── resize-observer.mdx │ │ │ ├── strict-mode.mdx │ │ │ ├── tagged-template-literals.mdx │ │ │ ├── temporal-dead-zone.mdx │ │ │ ├── typed-arrays-arraybuffers.mdx │ │ │ └── weakmap-weakset.mdx │ │ └── getting-started/ │ │ └── overview.mdx │ ├── concepts/ │ │ ├── algorithms-big-o.mdx │ │ ├── async-await.mdx │ │ ├── call-stack.mdx │ │ ├── callbacks.mdx │ │ ├── clean-code.mdx │ │ ├── currying-composition.mdx │ │ ├── data-structures.mdx │ │ ├── design-patterns.mdx │ │ ├── dom.mdx │ │ ├── equality-operators.mdx │ │ ├── error-handling.mdx │ │ ├── es-modules.mdx │ │ ├── event-loop.mdx │ │ ├── factories-classes.mdx │ │ ├── generators-iterators.mdx │ │ ├── higher-order-functions.mdx │ │ ├── http-fetch.mdx │ │ ├── iife-modules.mdx │ │ ├── inheritance-polymorphism.mdx │ │ ├── javascript-engines.mdx │ │ ├── map-reduce-filter.mdx │ │ ├── modern-js-syntax.mdx │ │ ├── object-creation-prototypes.mdx │ │ ├── primitive-types.mdx │ │ ├── primitives-objects.mdx │ │ ├── promises.mdx │ │ ├── pure-functions.mdx │ │ ├── recursion.mdx │ │ ├── regular-expressions.mdx │ │ ├── scope-and-closures.mdx │ │ ├── this-call-apply-bind.mdx │ │ ├── type-coercion.mdx │ │ └── web-workers.mdx │ ├── contributing.mdx │ ├── docs.json │ ├── getting-started/ │ │ ├── about.mdx │ │ ├── how-to-learn.mdx │ │ ├── learning-paths.mdx │ │ └── prerequisites.mdx │ ├── index.mdx │ ├── robots.txt │ ├── schema-inject.js │ └── translations.mdx ├── index.js ├── opencode.jsonc ├── package.json ├── tests/ │ ├── advanced-topics/ │ │ ├── algorithms-big-o/ │ │ │ └── algorithms-big-o.test.js │ │ ├── data-structures/ │ │ │ └── data-structures.test.js │ │ ├── design-patterns/ │ │ │ └── design-patterns.test.js │ │ ├── error-handling/ │ │ │ └── error-handling.test.js │ │ ├── es-modules/ │ │ │ └── es-modules.test.js │ │ ├── modern-js-syntax/ │ │ │ └── modern-js-syntax.test.js │ │ └── regular-expressions/ │ │ └── regular-expressions.test.js │ ├── async-javascript/ │ │ └── callbacks/ │ │ ├── callbacks.dom.test.js │ │ └── callbacks.test.js │ ├── beyond/ │ │ ├── browser-storage/ │ │ │ ├── cookies/ │ │ │ │ ├── cookies.dom.test.js │ │ │ │ └── cookies.test.js │ │ │ ├── indexeddb/ │ │ │ │ └── indexeddb.test.js │ │ │ └── localstorage-sessionstorage/ │ │ │ ├── localstorage-sessionstorage.dom.test.js │ │ │ └── localstorage-sessionstorage.test.js │ │ ├── data-handling/ │ │ │ ├── blob-file-api/ │ │ │ │ ├── blob-file-api.dom.test.js │ │ │ │ └── blob-file-api.test.js │ │ │ ├── json-deep-dive/ │ │ │ │ └── json-deep-dive.test.js │ │ │ ├── requestanimationframe/ │ │ │ │ └── requestanimationframe.test.js │ │ │ └── typed-arrays-arraybuffers/ │ │ │ └── typed-arrays-arraybuffers.test.js │ │ ├── events/ │ │ │ ├── custom-events/ │ │ │ │ ├── custom-events.dom.test.js │ │ │ │ └── custom-events.test.js │ │ │ ├── event-bubbling-capturing/ │ │ │ │ └── event-bubbling-capturing.dom.test.js │ │ │ └── event-delegation/ │ │ │ └── event-delegation.test.js │ │ ├── language-mechanics/ │ │ │ ├── hoisting/ │ │ │ │ └── hoisting.test.js │ │ │ ├── strict-mode/ │ │ │ │ └── strict-mode.test.js │ │ │ └── temporal-dead-zone/ │ │ │ └── temporal-dead-zone.test.js │ │ ├── memory-performance/ │ │ │ ├── debouncing-throttling/ │ │ │ │ └── debouncing-throttling.test.js │ │ │ ├── garbage-collection/ │ │ │ │ └── garbage-collection.test.js │ │ │ ├── memoization/ │ │ │ │ └── memoization.test.js │ │ │ └── memory-management/ │ │ │ └── memory-management.test.js │ │ ├── modern-syntax-operators/ │ │ │ ├── computed-property-names/ │ │ │ │ └── computed-property-names.test.js │ │ │ └── tagged-template-literals/ │ │ │ └── tagged-template-literals.test.js │ │ ├── objects-properties/ │ │ │ ├── getters-setters/ │ │ │ │ └── getters-setters.test.js │ │ │ ├── object-methods/ │ │ │ │ └── object-methods.test.js │ │ │ ├── property-descriptors/ │ │ │ │ └── property-descriptors.test.js │ │ │ ├── proxy-reflect/ │ │ │ │ └── proxy-reflect.test.js │ │ │ └── weakmap-weakset/ │ │ │ └── weakmap-weakset.test.js │ │ ├── observer-apis/ │ │ │ ├── intersection-observer/ │ │ │ │ ├── intersection-observer.dom.test.js │ │ │ │ └── intersection-observer.test.js │ │ │ ├── mutation-observer/ │ │ │ │ └── mutation-observer.dom.test.js │ │ │ ├── performance-observer/ │ │ │ │ └── performance-observer.test.js │ │ │ └── resize-observer/ │ │ │ └── resize-observer.test.js │ │ └── type-system/ │ │ └── javascript-type-nuances/ │ │ └── javascript-type-nuances.test.js │ ├── functional-programming/ │ │ ├── currying-composition/ │ │ │ └── currying-composition.test.js │ │ ├── higher-order-functions/ │ │ │ └── higher-order-functions.test.js │ │ ├── map-reduce-filter/ │ │ │ └── map-reduce-filter.test.js │ │ ├── pure-functions/ │ │ │ └── pure-functions.test.js │ │ └── recursion/ │ │ └── recursion.test.js │ ├── functions-execution/ │ │ ├── async-await/ │ │ │ └── async-await.test.js │ │ ├── event-loop/ │ │ │ └── event-loop.test.js │ │ ├── generators-iterators/ │ │ │ └── generators-iterators.test.js │ │ ├── iife-modules/ │ │ │ └── iife-modules.test.js │ │ └── promises/ │ │ └── promises.test.js │ ├── fundamentals/ │ │ ├── call-stack/ │ │ │ └── call-stack.test.js │ │ ├── equality-operators/ │ │ │ └── equality-operators.test.js │ │ ├── javascript-engines/ │ │ │ └── javascript-engines.test.js │ │ ├── primitive-types/ │ │ │ └── primitive-types.test.js │ │ ├── primitives-objects/ │ │ │ └── primitives-objects.test.js │ │ ├── scope-and-closures/ │ │ │ └── scope-and-closures.test.js │ │ └── type-coercion/ │ │ └── type-coercion.test.js │ ├── object-oriented/ │ │ ├── factories-classes/ │ │ │ └── factories-classes.test.js │ │ ├── inheritance-polymorphism/ │ │ │ └── inheritance-polymorphism.test.js │ │ ├── object-creation-prototypes/ │ │ │ └── object-creation-prototypes.test.js │ │ └── this-call-apply-bind/ │ │ └── this-call-apply-bind.test.js │ └── web-platform/ │ ├── dom/ │ │ └── dom.test.js │ └── http-fetch/ │ └── http-fetch.test.js └── vitest.config.js