Fixed "Maximum call stack size exceeded" error when using IntegrityMetadataSet#strongest

This commit is contained in:
Nebel 2025-02-19 17:14:01 +09:00
parent 22450619c4
commit d0415bbd04
Signed by: nebel
GPG key ID: 79807D08C6EF6460
3 changed files with 20 additions and 8 deletions

View file

@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
- Fixed "Maximum call stack size exceeded" error when using `IntegrityMetadataSet#strongest`
## [1.0.0] - 2025-01-06 ## [1.0.0] - 2025-01-06
- Change `strongest` property type from `Array<IntegrityMetadata>` to `IntegrityMetadataSet` - Change `strongest` property type from `Array<IntegrityMetadata>` to `IntegrityMetadataSet`

View file

@ -337,7 +337,7 @@ export class IntegrityMetadataSet {
switch (prioritizedHashAlgorithm) { switch (prioritizedHashAlgorithm) {
case "": case "":
strongest = new IntegrityMetadataSet([ strongest = new IntegrityMetadataSet([
...this.strongest, ...strongest,
integrityMetadata, integrityMetadata,
]); ]);
break; break;

View file

@ -4,16 +4,26 @@ import { IntegrityMetadataSet } from "../../src/index.ts";
test("pick the strongest metadata from set", function () { test("pick the strongest metadata from set", function () {
const integrityMetadataSet = new IntegrityMetadataSet(` const integrityMetadataSet = new IntegrityMetadataSet(`
sha256-MV9b23bQeMQ7isAGTkoBZGErH853yGk0W/yUx1iU7dM= sha256-gxZXfeA3KCK+ZyBybEt6liVPg+FWGf/KLVU6rufBujE=
sha384-VbxVaw0v4Pzlgrpf4Huq//A1ZTY4x6wNVJTCpkwL6hzFczHHwSpFzbyn9MNKCJ7r sha384-LDW1hUX1OX+VZsNmW+LELiky69a4xF+FfVsTlqZOhqPiPj5YYo20jP6C8H8uXMZf
sha512-wVJ82JPBJHc9gRkRlwyP5uhX1t9dySJr2KFgYUwM2WOk3eorlLt9NgIe+dhl1c6ilKgt1JoLsmn1H256V/eUIQ== sha512-aqnrVqlE3w/CWs51jb3FHCsFSBwfpecdXHaFFYZNkxfW2Z1qyJm4mA9iCPK11KeWwEa8rbMDq7l6IrnevQuOQw==
sha512-P8q/bH6NoZs5MnZKL9D/r/oEZOlyEAmSfuXuJchD2WeXnKbnfcO3fF0WvO6CiqZUGWsEREs9BWLrv1xr3NPOLg==
`); `);
assert.deepEqual( assert.deepEqual(
integrityMetadataSet.strongest, [...integrityMetadataSet.strongest],
new IntegrityMetadataSet( [
"sha512-wVJ82JPBJHc9gRkRlwyP5uhX1t9dySJr2KFgYUwM2WOk3eorlLt9NgIe+dhl1c6ilKgt1JoLsmn1H256V/eUIQ==", {
), alg: "sha512",
val: "aqnrVqlE3w/CWs51jb3FHCsFSBwfpecdXHaFFYZNkxfW2Z1qyJm4mA9iCPK11KeWwEa8rbMDq7l6IrnevQuOQw==",
opt: [],
},
{
alg: "sha512",
val: "P8q/bH6NoZs5MnZKL9D/r/oEZOlyEAmSfuXuJchD2WeXnKbnfcO3fF0WvO6CiqZUGWsEREs9BWLrv1xr3NPOLg==",
opt: [],
},
],
); );
}); });