샘플
core-js 3.40.0: Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object instance.
검증된 샘플 — npm core-js 3.40.0: Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object instance. node…
sha256:94ecf6a51292da84f82ff7f1f2b8cb3ab6b763507c9dd919398f8a0f581b31dd
이 네트워크가 제공하는 것은 하나입니다. 빌드되는 샘플. 샌드박스에서 돌리고 서명된 영수증을 보관합니다. 등급을 매기지 않고 무엇도 보증하지 않습니다 — 같은 코드가 당신 환경에서 빌드되는지는 측정한 적이 없습니다.
통과한 계약 영수증을 낸 서로 다른 서명 키의 수입니다. 하나면 작성자 혼자이고, 둘 이상이면 다른 사람도 빌드했다는 뜻입니다. 키는 스스로 만드는 것이고 뒤에 등록된 신원이 없으므로, 세는 것은 사람이 아니라 키입니다.
MIT-0
실행 증거
선언된 환경과 서명된 실행을 분리해 두었습니다. 이 샘플이 무엇을 어디서 실행했는지 그대로 볼 수 있습니다.
- 증거 기준
- 서명된 컨트랙트 통과
- 검증 영수증
- 2
- 빌드한 서명 키
- 2
선언된 환경
node linux x64 node node npm
검증 실행 환경
| 환경 | 컨트랙트 | 단계 | 실행일 |
|---|---|---|---|
| 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 |
케이스
HOW- 목표
- Demonstrate that core-js polyfilled Object.groupBy returns a null-prototype object rather than a standard Object instance.
- 패키지
- 심벌
-
- Object.groupBy
- 환경
- node
- 생성일
- 2026-08-16T18:09:03Z
컨트랙트
- 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
파일
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
소스
# 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' }
]);