Skip to content
Novus Examples
js1008 B

JavaScript — To-do list (class, private fields, async)

A realistic JavaScript snippet with an ES class, private #fields, arrow functions, template literals, a getter, and async/await — for testing highlighters, ESLint, Prettier, and bundlers.

Preview — first 41 linesjs
// A tiny in-memory to-do list: a class with private fields, arrow functions,
// template literals, array methods, a getter, and async/await.

class TodoList {
  #items = [];

  add(title, { priority = "normal" } = {}) {
    const item = { id: this.#items.length + 1, title, priority, done: false };
    this.#items.push(item);
    return item;
  }

  complete(id) {
    const item = this.#items.find((it) => it.id === id);
    if (!item) throw new Error(`No item with id ${id}`);
    item.done = true;
  }

  get pending() {
    return this.#items.filter((it) => !it.done);
  }

  toString() {
    return this.#items
      .map((it) => `${it.done ? "[x]" : "[ ]"} #${it.id} ${it.title} (${it.priority})`)
      .join("\n");
  }
}

async function main() {
  const list = new TodoList();
  list.add("Write tests", { priority: "high" });
  list.add("Ship release");
  list.complete(1);
  await Promise.resolve();
  console.log(list.toString());
  console.log(`${list.pending.length} item(s) left`);
}

main();

Specifications

Language
JavaScript
Kind
realistic snippet
Lines
40
Encoding
UTF-8
Line Endings
LF

Testing contract

Expected to pass
Scenario
Execute the file in Node 18+ and compare stdout against the class behaviour it declares.
Expected result
It prints two checklist lines - `[x] #1 Write tests (high)` then `[ ] #2 Ship release (normal)` - followed by `1 item(s) left`. The `#items` private field is inaccessible from outside the class, and `complete(99)` throws `No item with id 99`.

What is a .js file?

JavaScript (.js) is a plain-text source file for the JavaScript language — the scripting language of the web, also used server-side via Node.js. It is dynamically typed and event-driven, with first-class functions, prototypes, and (in modern syntax) modules, classes, and async/await.

How to use this file

Use an example .js file to test syntax highlighters, linters (ESLint), formatters (Prettier), bundlers, and JavaScript parsers, or as editor and diff-viewer fixtures.

How to use this file for testing

“JavaScript — To-do list (class, private fields, async)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.

Documented properties for this file: JavaScript · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.

Code examples

node todo-list.js

Generated by generation/code_samples.py. Free for any use, no attribution required — license.