惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Forbes - Security
Forbes - Security
WordPress大学
WordPress大学
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
D
Darknet – Hacking Tools, Hacker News & Cyber Security
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
P
Privacy International News Feed
A
About on SuperTechFans
T
Tailwind CSS Blog
I
InfoQ
S
Securelist
云风的 BLOG
云风的 BLOG
罗磊的独立博客
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
B
Blog RSS Feed
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
腾讯CDC
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
S
Secure Thoughts
博客园 - 司徒正美
J
Java Code Geeks
Y
Y Combinator Blog
Google Online Security Blog
Google Online Security Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
Help Net Security
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Project Zero
Project Zero
T
Tenable Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tor Project blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
小众软件
小众软件
K
Kaspersky official blog

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno Zero-config Debugging with Deno and OpenTelemetry | Deno Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot | Deno Build a custom RAG AI agent in TypeScript and Jupyter | Deno How to get deep traces in your Node.js backend with OTel and Deno | Deno toranoana.deno #20 登録受付中(2025年3月14日) | Deno Node just added TypeScript support. What does that mean for Deno? | Deno The Dino 🦕, the Llama 🦙, and the Whale 🐋 | Deno Publish a lint rule, get a prize | Deno Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite | Deno If you're not using npm specifiers, you're doing it wrong | Deno How Deno's documentation is evolving | Deno Oracle justified its JavaScript trademark with Node.js—now it wants that ignored | Deno Introducing the JSR open governance board | Deno Intro to Wasm in Deno | Deno Announcing OpenAI on JSR | Deno Deno in 2024 | Deno Goodbye WinterCG, welcome WinterTC | Deno Build a SolidJS app with Deno | Deno Run your Next.js SSR app on Deno Deploy | Deno Solve Advent of Code 2024 with Deno and Win Prizes! | Deno Deno v. Oracle: Canceling the JavaScript Trademark | Deno Deno 2.1: Wasm Imports and other enhancements | Deno Build a Typesafe API with tRPC and Deno | Deno Self-contained Executable Programs with Deno Compile | Deno Build a Database App with Drizzle ORM and Deno | Deno Introducing your new JavaScript package manager: Deno | Deno Announcing Growthbook on JSR | Deno Build an Astro site with Deno | Deno How to convert CommonJS to ESM | Deno Announcing Deno 2 | Deno The Final Touches: What’s New In v2.0.0-rc.10 | Deno Announcing Stable V8 Bindings for Rust | Deno Deno 2.0 Release Candidate | Deno Secure, efficient private npm registries with Cloudsmith and Deno | Deno Painting the Plane as We Fly It: Designing JSR | Deno Introducing Web Cache API support on Deno Deploy | Deno Deno 1.46: The Last 1.x Release | Deno Protect your cloud spend with new Deno Deploy spend limits | Deno What we got wrong about HTTP imports | Deno Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes | Deno Announcing Supabase on JSR | Deno Deno 1.45: Workspace and Monorepo Support | Deno Introducing KV Backup for Deno Subhosting | Deno A Gentle Intro to TypeScript | Deno Announcing Hono on JSR | Deno How We Made the Deno Language Server Ten Times Faster | Deno How the Guardian uses Deno to audit accessibility and performance across their 2.7 million articles | Deno Introducing More Flexible Domain Association for Deno Subhosting | Deno The stabilization process of the Standard Library has begun | Deno Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts | Deno How we built a secure, performant, multi-tenant cloud platform to run untrusted code | Deno The Deno Standard Library is now available on JSR | Deno How to document your JavaScript package | Deno Your Low Code Solution Needs an Escape Hatch | Deno Deno 1.43: Improved Language Server performance | Deno How Slack used Deno to save months of engineering effort in launching their new platform | Deno JSR Is Not Another Package Manager | Deno Announcing the Hookdeck SDK on JSR | Deno Announcing the Neon Serverless Driver on JSR | Deno An intro to TSConfig for JavaScript Developers | Deno How we built JSR | Deno How Netlify used Deno Subhosting to build a successful edge functions product | Deno Introducing Simpler Project Creation in Deno Deploy | Deno Deno 1.42: Better dependency management with JSR | Deno Introducing deployctl, the command line interface for Deno Deploy | Deno Introducing JSR - the JavaScript Registry | Deno How to add Monaco to a Next.js app and securely run untrusted user code | Deno Survey Results and Roadmap | Deno Deno 1.41: smaller deno compile binaries | Deno Webhooks suck, but here are alternatives | Deno
Deno v Oracle Update 3: Fighting the JavaScript Trademark | Deno
Ryan Dahl · 2025-03-31 · via Deno

Oracle has just issued its latest reply in the ongoing proceedings at the US Trademark and Patent Office. We’re now waiting on the USPTO to weigh in—this is the moment when public attention matters.

Let’s review how we got here:

  • 1995 — Netscape partnered with Sun Microsystems to create the JavaScript language, originally intended as a dynamic complement to Java. Sun ended up owning the trademark.
  • 2009 — Oracle acquired Sun Microsystems—and the JavaScript trademark with it.
  • 2019 — Oracle renewed the trademark despite having almost nothing to do with the language. They submitted a screenshot of Node.js, a project I created, as evidence of use. (Oracle has no relation to Node.js.)
  • September 16, 2024 — I published an open letter arguing that the trademark had been abandoned and that the term had become generic—a name for a language with many independent implementations. The letter, co-signed by over 18k developers—including JavaScript’s creator Brendan Eich and many TC39 members—called on Oracle to release it.
  • November 22, 2024 — After no response, Deno filed a formal petition to cancel the trademark. The petition claims:
    • genericness – “JavaScript” is a generic term
    • abandonment – Oracle hasn’t used the mark in commerce
    • fraud – Oracle submitted Node.js as proof of use
  • February 3, 2025Oracle filed a partial motion to dismiss the fraud claim. They acknowledged submitting the Node.js screenshot, but argued it was irrelevant because they also submitted a different specimen—a page about “Oracle JET”, a UI toolkit.
  • March 7, 2025We opposed the motion, arguing that misrepresenting someone else’s project to maintain a federal trademark is serious. A second specimen doesn’t excuse the deception.
  • March 27, 2025Oracle filed an optional reply, repeating that the Node.js specimen is irrelevant and that the fraud claim should be dismissed without amendment.

What happens next

In the next 3 to 4 weeks, the Trademark Trial and Appeal Board (TTAB) will decide whether the fraud claim can move forward. This will be the first ruling in the case.

If the claim is dismissed, the case continues on the other two grounds: that the mark is generic and abandoned.

If the fraud claim proceeds, Oracle will be required to answer the full petition—including why they used my project as evidence.

After that, the case enters discovery, likely stretching into 2026.

Details on the partial motion to dismiss

Oracle’s reply argues that even if the Node.js specimen was false, it doesn’t matter—because the USPTO accepted the second specimen (the Oracle JET page).

They claim fraud requires a falsehood that was “critical” to the outcome, and that the JET page was enough to support the renewal.

They also argue we didn’t sufficiently allege intent to deceive—a required element—and that even an amended petition wouldn’t change the outcome.

That’s their framing. But if you submit someone else’s project to the government as proof of trademark use, that matters.

Abandoned and generic

Even if the fraud claim is dismissed, the bigger issues remain.

Anyone in software knows Oracle hasn’t played a meaningful role in JavaScript’s evolution in decades. Many developers were surprised to learn it still holds the trademark at all. The language is standardized by Ecma, governed by TC39, and implemented by Apple, Google, Mozilla, and others.

JavaScript very clearly is not an Oracle product.

Yet the trademark persists. And because of that, companies like mine operate in a legal gray zone—using the term only because Oracle hasn’t enforced it. There is no “JavaScript Conference” because of this fear.

Why this matters

This is a textbook case of trademark warehousing: a company holding onto a mark it doesn’t actively use, hoping to preserve leverage over an ecosystem it no longer participates in.

That’s not what trademark law is for.

Trademarks are meant to help the public identify the source of goods and services. They’re not permanent entitlements—they’re conditional rights, granted only when the mark is actively used and still signals a single source.

That’s why the law includes abandonment. Title 15 of the U.S. Code, Section 1127 defines it this way:

A mark shall be deemed to be “abandoned” if either of the following occurs:
1 When its use has been discontinued with intent not to resume such use…
2 When any course of conduct… causes the mark to become the generic name…

This safeguard exists to keep trademarks grounded in reality. If a mark is no longer being used—or if the public no longer sees it as pointing to a single source—it’s supposed to go back into the commons.

Oracle doesn’t build JavaScript. It doesn’t maintain the spec. It doesn’t guide the future of the language. Yet it continues to hold the name—and until now, largely unchallenged.

The trademark system is meant to foster a vibrant marketplace—helping companies offer clear, trusted products—not to create confusion through marks that no longer reflect reality.

Help us spread the word

  • Share this post.
  • Sign the open letter at javascript.tm – now with over 18k signatures.
  • If you’re a journalist, feel free to reach out.

More updates soon.