The snippets, ordered obscure → unmistakable

  1. Snippet 1(Generic Smi helper)
  2. Snippet 2(Handle scope idiom)
  3. Snippet 3(Hidden class transition)
  4. Snippet 4(Turbofan IR)
  5. Snippet 5(Sea-of-nodes builder)
  6. Snippet 6(Top-level isolate/include)

Why this project gives itself away

The give-away. Snippet 1's `Smi` type (small-integer tagged pointer) is a JavaScript-engine staple, but the bare Smi::value() shape is V8-specific. Snippet 2 names Local<>, HandleScope, Isolate*, String::NewFromUtf8 — all in V8's public embedder API. Snippet 3 names Map, DescriptorArray, InternalIndex — V8's hidden-class machinery. Snippet 4 is TurboFan's JSCallReducer::ReduceArrayMap. Snippet 5 names BytecodeGraphBuilder (the sea-of-nodes builder). Snippet 6 is the V8 copyright header plus turbofan/sparkplug flags — V8's optimisation tier names.

How a Framed puzzle is built

Every Framed project ships exactly six snippets, hand-ordered from deeply obscure to unmistakable. The first snippet must be plausible for a dozen codebases — a generic loop, a small utility, a comment that could appear anywhere. The last snippet carries a project-specific tell: a function name, a code-comment idiom, a file header, a build invocation. Between them sit four snippets that gradually narrow the field. Reading them in order is half the puzzle: a returning Framed player learns to triangulate on indentation conventions, comment voice, naming, and the small-but-distinctive choices that betray a project's era and community.