#referenceError
J'ai un JS bloqué, puis une erreur console "Uncaught ReferenceError: ATInternet is not defined" : je suppose que c'est défini dans ce vilain JS
August 27, 2026 at 5:01 PM
ReferenceError: Cannot access 'dn' before initialization
August 22, 2026 at 3:53 PM
Me making a 12-month sheet for my solo dev project: "Perfect structure, no stress." 📊🚀

My code after adding one tiny asset on Day 3: "Uncaught ReferenceError: Reality is broken." 🛑😭

What’s the smallest bug that destroyed your timeline? Let me know 👇
August 19, 2026 at 8:36 AM
programmeren duurt lang als je mij bent
August 10, 2026 at 7:44 PM
Web Compatibility Support • Bidding on eBay recently broken
Hello, eBay appear to have broken bidding in Pale Moon. It now renders an empty in-page window. The following console errors appear after clicking on the "Bid" button: CODE: ReferenceError: TextEncoderStream is not defined[Learn More] 158143954879:1:722Error: No stream found for single fetch decodingStack trace:V1@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:9:36503I1@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:9:37827Of@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:42355Lf@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:63363g0@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:74107k0@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:115625Eh@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:114735Dc@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:114571K0@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:111672ed@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:121191p@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:1:1850 microframe-CwyKmhMg.js:8:58897 It works in basilisk, probably due to the inclusion of a polyfill for TextEncoderStream. However, I wasn't able to get the box to render by copying the polyfill into Greasemonkey. Possibly user error. * * *
forum.palemoon.org
August 6, 2026 at 10:28 AM
Web Compatibility Support • Bidding on eBay recently broken
Hello, eBay appear to have broken bidding in Pale Moon. It now renders an empty in-page window. The following console errors appear after clicking on the "Bid" button: CODE: ReferenceError: TextEncoderStream is not defined[Learn More] 158143954879:1:722Error: No stream found for single fetch decodingStack trace:V1@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:9:36503I1@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:9:37827Of@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:42355Lf@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:63363g0@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:74107k0@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:115625Eh@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:114735Dc@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:114571K0@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:111672ed@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:8:121191p@https://ir.ebaystatic.com/rs/c/txnweb/microframe-CwyKmhMg.js:1:1850 microframe-CwyKmhMg.js:8:58897 It works in basilisk, probably due to the inclusion of a polyfill for TextEncoderStream. However, I wasn't able to get the box to render by copying the polyfill into Greasemonkey. Possibly user error. * * *
forum.palemoon.org
August 6, 2026 at 8:28 AM
ReferenceError: fetch is not defined — the classic Jest jsdom surprise (Node has had fetch since v18; jsdom still doesn't). One-line fix, then the better question: why stub fetch at all? Point Jest at a hosted mock URL — error states, real timeouts, parallel files pinned to frozen snapshots:
Mock APIs in Jest — fix "fetch is not defined" and test against a real URL
The jsdom fetch fix, error-state tests with ?mock_status, real timeouts, parallel files pinned to frozen snapshots, retry vs injected 5xx chaos, Zod contract tests — every snippet run verbatim.
mockbird.mockbird.workers.dev
August 2, 2026 at 8:52 PM
lobste.rs ~~has~~had a js-error: here is a mitigation
**Introduction** https://lobste.rs – at the time of writing – has a javascript error on load for logged in users: Uncaught ReferenceError: qS is not defined at new _LobstersFunction (user-c27ac03d.js:144:34) at user-c27ac03d.js:665:17 This error is causing much of the site functionality to not work, an easy way to check is to try and `[preview]` a comment, if that does not work – most likely you have an error in the js-console. If you provide the missing definition for `qS` and `qSA` site functionality is restored in full-effect. Known to fix: * story / comment upvotes * comment preview * `$things_you_have_spammed_click_wondering_why_it_doesnt_work` * * * **Override using Dev Tools = > Sources => Override** For those with webdev experience it is easy to fix the error yourself by simply patching the faulty script with the below: const qS = (a, b) => b === undefined ? document.querySelector(a) : a.querySelector(b); const qSA = (a,b) => b === undefined ? [...document.querySelectorAll(a)] : [...a.querySelectorAll(b)]; If the above is ran before the faulty line (665 in this case), all is well and things start working again. * * * **Use an extension such as TamperMonkey** An easier alternative is to use TamperMonkey to automatically run custom javascript for the site, below is what I use: // ==UserScript== // @name lobste.rs undefined qS/qSA fix // @namespace http://tampermonkey.net/ // @version 2026-07-27 // @description try to take over the world! // @author You // @match https://lobste.rs/* // @icon https://www.google.com/s2/favicons?sz=64&domain=lobste.rs // @grant none // ==/UserScript== (function() { 'use strict'; window.qS = (a, b) => b === undefined ? document.querySelector(a) : a.querySelector(b); window.qSA = (a,b) => b === undefined ? [...document.querySelectorAll(a)] : [...a.querySelectorAll(b)]; })(); * * * **end-of-transmission** Personally I used the override approach after discovering this, but I assume there are more than me who want to use our beloved features while waiting for a redeploy of lobste.rs (\_/)_00_(\_/) ^- me previewing my own comments like crazy with the mitigation Happy browsing!
lobste.rs
July 27, 2026 at 12:50 PM
does JavaScript have syntax errors for misreferencing variables? you usually find out the hard way at runtime with a `ReferenceError`
July 22, 2026 at 12:32 PM
Me too with Safari, inconsistently across sessions, though not since I updated to the last bug 26.5.2 (20624.2.5.18.7) fix yesterday — so maybe that helped?

But even with video currently working the browser console is reporting significant errors for BSky. 🤔
July 11, 2026 at 5:55 PM
NEW UNLOCKS: Girl who's flagging "ReferenceError: [] is not defined" at the dyke bar. 🤔
June 22, 2026 at 11:17 PM
Why Thousands of Developers Are Mass Migrating to PushForge for Web Push Notifications
_"crypto.createECDH is not a function" - If you've seen this error, you're not alone. Here's why the web push landscape is finally changing._ If you've ever tried implementing push notifications on Cloudflare Workers, Vercel Edge, or any modern edge runtime, you've probably hit the same wall that thousands of developers face every month: TypeError: crypto.createECDH is not a function Or maybe this one: ReferenceError: https.request is not available in edge runtime These errors aren't bugs in your code. They're symptoms of a fundamental problem: **the most popular web push library was built for a world that no longer exists**. ## The Uncomfortable Truth About web-push For years, `web-push` has been the de facto standard for sending push notifications in Node.js. With 18+ million monthly downloads, it's the default choice that tutorials recommend, Stack Overflow answers reference, and ChatGPT suggests. But here's what those recommendations don't tell you: The Promise | The Reality ---|--- "Works everywhere" | Fails on Cloudflare Workers (#718) "Simple setup" | Requires 5+ nested dependencies "Production ready" | Node.js deprecation warnings in v24 "Modern JavaScript" | Uses legacy `crypto.createECDH` API **The issue has been open since 2022.** The workarounds are fragile. The compatibility flags are band-aids. And the edge computing revolution isn't waiting. ## Enter PushForge: Built for Where You're Deploying Today **PushForge** is a zero-dependency web push library built entirely on the Web Crypto API, the same standard that runs in every modern browser, every edge runtime, and every JavaScript environment. import { buildPushHTTPRequest } from "@pushforge/builder"; const { endpoint, headers, body } = await buildPushHTTPRequest({ privateJWK: VAPID_PRIVATE_KEY, subscription: userSubscription, message: { payload: { title: "Hello!", body: "This works everywhere." }, adminContact: "mailto:admin@example.com" } }); await fetch(endpoint, { method: "POST", headers, body }); That's it. No polyfills. No compatibility flags. No "it works on my machine." ## The Comparison Developers Are Making Feature | PushForge | web-push ---|---|--- Dependencies | **0** | 5+ (with transitive deps) Cloudflare Workers | **Yes** | No (#718) Vercel Edge Functions | **Yes** | No Convex | **Yes** * | No Deno | **Yes** | Limited Bun | **Yes** | Partial TypeScript | **Native** | @types package Bundle Size | **~15KB** | ~150KB+ with deps _* Convex requires`"use node";` directive_ ## The Numbers: Organic Growth That Speaks Volumes **72,500+ monthly downloads** and growing. Zero paid marketing. Just developers solving real problems and telling others. PushForge launched in April 2025 and has seen consistent month-over-month growth as edge computing adoption accelerates. The trajectory tells you which direction the industry is moving. ## Why PushForge Works Where web-push Fails The difference comes down to one architectural decision: **standards vs. legacy APIs**. ### web-push approach (Node.js specific): const crypto = require('crypto'); const https = require('https'); const ecdh = crypto.createECDH('prime256v1'); // Node.js only ### PushForge approach (Web Standards): const keyPair = await crypto.subtle.generateKey( { name: 'ECDH', namedCurve: 'P-256' }, true, ['deriveBits'] ); // Works everywhere The Web Crypto API is: * Available in every modern browser * Supported by Cloudflare Workers, Vercel Edge, Deno, Bun * Part of Node.js 20+ without flags * The W3C standard for cryptographic operations **PushForge doesn't "polyfill" or "shim" its way to compatibility. It's built on the foundation that every JavaScript runtime shares.** ## Try Before You Trust: The Interactive Playground Don't take our word for it. **Test PushForge in your browser right now:** **pushforge.draphy.org** The playground lets you: * **Quick Test** : Enable notifications, send a test message, see it arrive * **Topic Channels** : Subscribe to named topics, target specific groups * **Full Customization** : Icons, images, action buttons, vibration patterns * **Push Options** : Test urgency levels (battery hints), TTL, topic replacement * **Cross-Browser** : Chrome, Firefox, Safari 16+, Edge, Brave The backend? A single Cloudflare Worker using `buildPushHTTPRequest()`. Zero dependencies. The same code you'd write. Subscriptions auto-expire (5 minutes for quick test, 1 hour for topics). No accounts. No data stored. Just push notifications, working. ## Getting Started in 60 Seconds ### 1. Install npm install @pushforge/builder ### 2. Generate VAPID Keys npx @pushforge/builder vapid Save the output: public key for your frontend, private key (JWK) for your server. ### 3. Subscribe Users (Frontend) const registration = await navigator.serviceWorker.ready; const subscription = await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: VAPID_PUBLIC_KEY }); // Send subscription to your server ### 4. Send Notifications (Server) import { buildPushHTTPRequest } from "@pushforge/builder"; const { endpoint, headers, body } = await buildPushHTTPRequest({ privateJWK: JSON.parse(process.env.VAPID_PRIVATE_KEY), subscription, message: { payload: { title: "New Message", body: "You have a notification!", icon: "/icon.png", data: { url: "/messages" } }, adminContact: "mailto:you@example.com", options: { ttl: 3600, urgency: "high" } } }); const response = await fetch(endpoint, { method: "POST", headers, body }); ### Platform Examples Ready to Copy **Cloudflare Workers:** export default { async fetch(request, env) { const { endpoint, headers, body } = await buildPushHTTPRequest({ privateJWK: JSON.parse(env.VAPID_PRIVATE_KEY), subscription: await request.json(), message: { payload: { title: "Hello from the Edge!" }, adminContact: "mailto:admin@example.com" } }); return fetch(endpoint, { method: "POST", headers, body }); } }; **Vercel Edge Functions:** export const config = { runtime: "edge" }; export default async function handler(request: Request) { const { endpoint, headers, body } = await buildPushHTTPRequest({ privateJWK: JSON.parse(process.env.VAPID_PRIVATE_KEY!), subscription: await request.json(), message: { payload: { title: "Edge Notification" }, adminContact: "mailto:admin@example.com" } }); await fetch(endpoint, { method: "POST", headers, body }); return new Response("Sent"); } **Deno:** import { buildPushHTTPRequest } from "npm:@pushforge/builder"; const { endpoint, headers, body } = await buildPushHTTPRequest({ privateJWK: JSON.parse(Deno.env.get("VAPID_PRIVATE_KEY")!), subscription, message: { payload: { title: "Hello from Deno!" }, adminContact: "mailto:admin@example.com" } }); await fetch(endpoint, { method: "POST", headers, body }); ## What Makes PushForge Different ### TypeScript-First, Not TypeScript-Added PushForge isn't a JavaScript library with type definitions bolted on. It's written in TypeScript from the ground up: import type { BuilderOptions, PushMessage, PushSubscription } from "@pushforge/builder"; Your IDE knows the shape of every parameter. Your compiler catches mistakes before runtime. Your code documents itself. ### Security Built In, Not Bolted On PushForge validates everything before processing: * VAPID key structure (EC P-256 curve with required x, y, d parameters) * Subscription endpoints (must be valid HTTPS URLs) * p256dh keys (65-byte uncompressed P-256 point format) * Auth secrets (exactly 16 bytes) * Payload size (max 4KB per Web Push spec) * TTL bounds (max 24 hours per VAPID spec) Invalid input fails fast with clear error messages, not cryptic failures deep in the crypto stack. ## The Roadmap: What's Coming PushForge is actively developed. Here's what's on the horizon: * **Batching & Queuing**: Bulk notification delivery with rate limiting * **Built-in Retry Logic** : Automatic error handling for push service failures * **Framework Examples** : Ready-to-use templates for React, Vue, Next.js, SvelteKit * **Service Worker Templates** : Drop-in notification handling code Follow development: github.com/draphy/pushforge ## The Developer Community PushForge welcomes contributions. The workflow is straightforward: 1. Open an issue describing your change 2. Fork the repository 3. Create a branch: `username/wpn-issuenumber-description` 4. Follow conventional commit guidelines 5. Submit a pull request The codebase uses modern tooling: * **Biome** for fast formatting and linting * **Vitest** for comprehensive testing * **Semantic Release** for automated versioning * **GitHub Actions** for CI/CD ## Why Developers Are Switching Here's what the migration typically looks like: **Before (web-push):** const webpush = require('web-push'); webpush.setVapidDetails( 'mailto:admin@example.com', publicKey, privateKey ); // Hope you're not on Cloudflare Workers... await webpush.sendNotification(subscription, payload); **After (PushForge):** import { buildPushHTTPRequest } from "@pushforge/builder"; const { endpoint, headers, body } = await buildPushHTTPRequest({ privateJWK, subscription, message: { payload, adminContact: "mailto:admin@example.com" } }); // Works on ANY runtime with fetch() await fetch(endpoint, { method: "POST", headers, body }); The API is intentionally minimal. You get `endpoint`, `headers`, and `body`. You use `fetch()`. That's the entire interface, and it works everywhere `fetch()` works. ## The Bottom Line The web has evolved. Serverless is the default. Edge computing is mainstream. The tools should match the territory. **PushForge is:** * Zero dependencies (no supply chain surprises) * Web standards based (no Node.js lock-in) * TypeScript native (no type guessing) * Edge ready (Cloudflare, Vercel, Deno, Bun - all first-class) * Battle tested (70,000+ monthly downloads and growing) * Open source (MIT licensed, transparent development) **web-push served its era well.** But if you're deploying to modern infrastructure, you deserve a modern foundation. ## Get Started Now npm install @pushforge/builder * **Documentation** : github.com/draphy/pushforge * **npm** : npmjs.com/package/@pushforge/builder * **Playground** : pushforge.draphy.org _PushForge is MIT licensed and open source. Created by David Raphi._ _Have questions? Open an issue. Found a bug? PRs welcome. Building something cool? I'd love to hear about it._
dev.to
June 19, 2026 at 1:43 PM
feed isn't loading and uhm,
June 19, 2026 at 8:46 AM
Fix 'SharedArrayBuffer is not defined': a practical guide to cross-origin isolation
If you've ever seen this in the console: Uncaught ReferenceError: SharedArrayBuffer is not defined or your multithreaded WebAssembly quietly fell back to a single thread, the cause is almost always the same thing: **your page is not cross-origin isolated.** Here's what that means, why the browser does it, and exactly how to fix it. ## TL;DR Send these two headers on the response for the document that loads your code: Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp Then confirm in the console: console.log(self.crossOriginIsolated) // should be true When it's `true`, `SharedArrayBuffer` is available and Wasm threads work. The rest of this post is the why, the gotchas, and how to verify it without writing code. ## Why the browser blocks SharedArrayBuffer `SharedArrayBuffer` lets multiple threads share memory, which is what makes multithreaded WebAssembly possible. But shared memory also enables very high-precision timers, and those make Spectre-style side-channel attacks easier. After Spectre, browsers pulled `SharedArrayBuffer` and only give it back when your page proves it isn't sharing a process with untrusted cross-origin content. That proof is **cross-origin isolation**. A page becomes cross-origin isolated when it sends both: * `Cross-Origin-Opener-Policy: same-origin` — cuts the link to other top-level windows so your page gets its own browsing context group. * `Cross-Origin-Embedder-Policy: require-corp` — says every subresource must explicitly opt in to being loaded by you. With both in place, the browser flips `self.crossOriginIsolated` to `true` and restores `SharedArrayBuffer`. ## The mistake almost everyone makes: CORP is not COEP This one burns a lot of people. There's a third, similarly named header: Cross-Origin-Resource-Policy: cross-origin `Cross-Origin-Resource-Policy` (CORP) is set **by a subresource** (an image, a script, a font) to declare who is allowed to embed it. It does **not** isolate your document. If you set CORP on your HTML page expecting `SharedArrayBuffer` to show up, nothing happens, because that's not what CORP does. The two headers that isolate the _page_ are **COOP** and **COEP**. CORP comes into play only as a way for your _subresources_ to satisfy COEP (more on that below). Keep them straight: * COOP + COEP → set on your **document** , turn isolation on. * CORP → set on **subresources** , lets them keep loading once COEP is on. ## Check whether you're actually isolated One line in the console: self.crossOriginIsolated // true once COOP + COEP are correct If it's `false`, the headers aren't reaching the page. The two usual reasons: 1. **Wrong origin.** You set the headers on a CDN subdomain, but not on the origin actually serving `index.html`. Isolation is decided by the document's own response headers. 2. **Host strips them.** Some static hosts (GitHub Pages and friends) don't let you set custom response headers at all, so they never arrive. ## Setting the headers **nginx:** add_header Cross-Origin-Opener-Policy "same-origin" always; add_header Cross-Origin-Embedder-Policy "require-corp" always; **Express:** app.use((req, res, next) => { res.set('Cross-Origin-Opener-Policy', 'same-origin') res.set('Cross-Origin-Embedder-Policy', 'require-corp') next() }) **Can't control the headers** (GitHub Pages, itch.io, some CDNs): use a service-worker shim like coi-serviceworker, which injects the headers client-side. It's how a lot of Godot and Unity web exports get threads working on hosts that won't set headers for you. ## The side effect to plan for Once `COEP: require-corp` is on, **every cross-origin subresource** has to opt in, or the browser refuses to load it. Each third-party image, script, or font now needs either: * `Cross-Origin-Resource-Policy: cross-origin` (or `same-site`) on its own response, or * proper CORS (`Access-Control-Allow-Origin`) plus a `crossorigin` attribute on the tag. So turning on isolation can break third-party assets until you fix them. If a CDN you use won't send CORP/CORS, you'll need to proxy or self-host those files. This is the part that turns a "two header" change into an afternoon, so budget for it. ## Verify any URL without writing code To save the back-and-forth, I built a small free tool that fetches a URL's response headers and tells you whether it's actually cross-origin isolated, with the COOP/COEP values and the CORP-vs-COEP gotcha called out: **Cross-Origin Isolation Checker** There's also a longer, copy-paste walkthrough with server configs for more setups here: **Enable Wasm threads (SharedArrayBuffer) with COOP/COEP** ## Recap 1. `SharedArrayBuffer` is gated behind cross-origin isolation (a post-Spectre security move). 2. Isolate the page with `COOP: same-origin` + `COEP: require-corp` on the **document**. 3. `CORP` is a different header for **subresources** , it does not isolate your page. 4. Confirm with `self.crossOriginIsolated === true`. 5. Expect to fix cross-origin subresources that COEP now blocks. Get those right and `SharedArrayBuffer`, and your Wasm threads, come back.
dev.to
June 18, 2026 at 9:40 PM
bruh

the module is literally broken
June 15, 2026 at 4:08 AM
あと困ってるのが・・・
ReferenceError Can't find variable: DarkReader
という謎エラーが出るらしい・・・。
June 8, 2026 at 12:47 PM
General Discussion • Re: Do 'silent' crashes leave a report somewhere?
> No, I'm saying you will get better guidance from your own distro's forum. Yeah I've posted there also, hopefully something comes from that. In the meantime, I opened up Pale Moon via the terminal, and while doing that, although I didn't get a crash and it ran just fine, there was a message that said: Gtk-Message: 12:19:51.722: Failed to load module "appmenu-gtk-module." And then after closing Pale Moon I get this: CODE: Message: ReferenceError: ThemeManager is not defined Stack: destroy@resource://gre/modules/commonjs/toolkit/loader.js -> resource://fd127522-63a6-40ef-a259-7f7a0ba811bc/index.js:15:5unload/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/system/unload.js:79:9unload@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/system/unload.js:73:13onunload@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/system/unload.js:99:5observe@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/system/events.js:81:12unload@resource://gre/modules/commonjs/toolkit/loader.js:956:3unload/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/bootstrap.js:153:9unload@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/bootstrap.js:149:12shutdown@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/bootstrap.js:146:17XPI_callBootstrapMethod@resource://gre/modules/addons/XPIProvider.jsm:4368:9shutdownObserver@resource://gre/modules/addons/XPIProvider.jsm:2126:25goQuitApplication@chrome://global/content/globalOverlay.js:64:14oncommand@chrome://browser/content/browser.xul:1:1 Does any of this mean anything? * * *
forum.palemoon.org
June 6, 2026 at 7:14 PM
`ReferenceError` usually means a variable isn’t declared or imported. Pro tip: `console.trace()` can help pinpoint where it’s being called from. Also, watch for typos in destructuring!
June 3, 2026 at 9:06 AM