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
- 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 => 'key')) is null
- Object.groupBy([1], x => 'key') instanceof Object is false
- Object.groupBy([1], x => 'key').toString throws a TypeError
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Source
# 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`.
{"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"}
{
"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"
}
}
}
}
{
"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"
}
}
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' }
]);