CodeSampleX

Sample

core-js 3.40.0: Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object instance.

Verified sample for npm core-js 3.40.0: Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object…

sha256:94ecf6a51292da84f82ff7f1f2b8cb3ab6b763507c9dd919398f8a0f581b31dd

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
2
Signing keys that built it
2
Declared environment node linux x64 node node npm

Verification-run environments

Environment Contract Stages Run
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-16
node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-18

Case

HOW
Goal
Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object instance.
Packages
Symbols
  • Object.groupBy
Environment
node
Created
2026-08-16T18:09:03Z

Contract

  1. Object.groupBy returns an object with a null prototype rather than Object.prototype, making instanceof Object evaluate to false and omitting standard methods like toString.
  2. Object.getPrototypeOf(Object.groupBy([1], x => 'key')) is null
  3. Object.groupBy([1], x => 'key') instanceof Object is false
  4. Object.groupBy([1], x => 'key').toString throws a TypeError

Files

  • NOTES.md
  • csx.json
  • package-lock.json
  • package.json
  • test/contract.mjs

Download the source artifact (tar.gz)

Source

NOTES.md
# core-js Object.groupBy Prototype Trait Notes

## Search Findings
Searching for existing solution coverage returned three published samples focusing on `@babel/preset-env` integration with `core-js` (specifically `useBuiltIns` default behavior, engine bugfix transforms, and target query edge cases).

## Prototype Behavior
In `core-js` (matching the ES2024 specification), `Object.groupBy` returns a prototype-less object created with a `null` prototype.

Code written under the naive belief that `Object.groupBy` returns a standard JavaScript object inheriting from `Object.prototype` fails loudly at runtime with `TypeError: grouped.toString is not a function` when calling inherited methods like `.toString()` or `.hasOwnProperty()`, and `grouped instanceof Object` evaluates to `false`.
csx.json
{"case":{"believed":"Object.groupBy returns a plain Object instance inheriting from Object.prototype with standard methods such as toString and hasOwnProperty.","caseId":"case:sha256:8c7d1d237fe27948f9500ee3ece5505e185a52556e90f4470b1cc7ff30e16111","contract":["Object.groupBy returns an object with a null prototype rather than Object.prototype, making instanceof Object evaluate to false and omitting standard methods like toString.","Object.getPrototypeOf(Object.groupBy([1], x =\u003e 'key')) is null","Object.groupBy([1], x =\u003e 'key') instanceof Object is false","Object.groupBy([1], x =\u003e 'key').toString throws a TypeError"],"goal":"Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object instance.","kind":"HOW","packages":["pkg:npm/core-js@3.40.0"],"schemaVersion":1,"symbols":["Object.groupBy"]},"contractCommand":["node","test/contract.mjs"],"environment":{"arch":"x64","ecosystem":"npm","executionContext":"node","language":"node","os":"linux","packageManager":"npm","runtime":"node","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/core-js@3.40.0"],"schemaVersion":1,"symbols":["Object.groupBy"],"verifierAdapter":"node-typescript@1"}
package-lock.json
{
  "name": "npm-core-js-d1",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "npm-core-js-d1",
      "version": "1.0.0",
      "dependencies": {
        "core-js": "3.40.0"
      }
    },
    "node_modules/core-js": {
      "version": "3.40.0",
      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz",
      "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==",
      "hasInstallScript": true,
      "license": "MIT",
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/core-js"
      }
    }
  }
}
package.json
{
  "name": "npm-core-js-d1",
  "description": "CSX sample demonstrating Object.groupBy return prototype behavior in core-js",
  "version": "1.0.0",
  "type": "commonjs",
  "dependencies": {
    "core-js": "^3.40.0"
  }
}
test/contract.mjs
import 'core-js/actual/object/group-by.js';
import assert from 'node:assert/strict';

// Feature under test: core-js polyfilled Object.groupBy
const items = [
  { name: 'apple', category: 'fruit' },
  { name: 'carrot', category: 'vegetable' },
  { name: 'banana', category: 'fruit' }
];

const grouped = Object.groupBy(items, item => item.category);

// 1. Prototype of Object.groupBy result is null, not Object.prototype
assert.strictEqual(
  Object.getPrototypeOf(grouped),
  null,
  'Object.groupBy result prototype must be null'
);

// 2. instanceof Object evaluates to false
assert.strictEqual(
  grouped instanceof Object,
  false,
  'Object.groupBy result must not be an instance of Object'
);

// 3. Standard Object.prototype methods like toString are undefined
assert.strictEqual(
  grouped.toString,
  undefined,
  'Object.groupBy result must not inherit toString'
);

// 4. Invoking toString on the result throws TypeError
assert.throws(
  () => grouped.toString(),
  TypeError,
  'Invoking toString on Object.groupBy result must throw TypeError'
);

// 5. Grouping logic operates as expected
assert.deepStrictEqual(grouped.fruit, [
  { name: 'apple', category: 'fruit' },
  { name: 'banana', category: 'fruit' }
]);
assert.deepStrictEqual(grouped.vegetable, [
  { name: 'carrot', category: 'vegetable' }
]);

Origin Seeder

csx-seed