Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Incorrect prototype check

Ouverte
#182 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
38/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
javascript, node.js
Domaine
testing

Piste de recherche

Reproduisez l’échec avec l’exemple Node fourni, puis examinez lib/index.js autour des lignes 139 et 239 ainsi que le paramètre comparePrototypes. Le travail est terminé lorsque la comparaison réussit sans erreur pour des objets imbriqués à prototype nul lorsque comparePrototypes vaut false.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

support
Support plan
  • is this issue currently blocking your project? yes
  • is this issue affecting a production system? no
Context
  • node version: 18.x
  • module version with issue: 9.0.3
  • last module version without issue: NA
  • environment (e.g. node, browser, native): node
  • used with @hapi/[email protected]
  • any other relevant information: NA
What are you trying to achieve or the steps to reproduce?

The module does not ignore the prototype during a comparison.

const Code = require('@hapi/code');

const noProto = Object.create(null);
noProto.a = Object.create(null);
noProto.a.b = 1;

Code.settings.comparePrototypes = false;
Code.expect([noProto]).to.once.include({ a: { b: 1 } });

** By using simple objects {} the comparison works as expected.

What was the result you got?
/Users/manuel_spigolon/dev/misc/hapi/code/lib/index.js:139
    throw error;
    ^

Error: Expected [ [Object: null prototype] { a: [Object: null prototype] { b: 1 } } ] to include { a: { b: 1 } } once
    at internals.Assertion.internals.include (/Users/manuel_spigolon/dev/misc/hapi/code/lib/index.js:239:17)
    at Object.<anonymous> (/Users/manuel_spigolon/dev/misc/hapi/code/asd.js:8:32)
    at Module._compile (node:internal/modules/cjs/loader:1155:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
    at Module.load (node:internal/modules/cjs/loader:1033:32)
    at Function.Module._load (node:internal/modules/cjs/loader:868:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:22:47 {
  actual: undefined,
  expected: undefined,
}
What result did you expect?

No error due to the default comparePrototypes = false setting

Langage dominant
JavaScript
Étoiles
231
Forks
75
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de hapijs/code

Toutes les issues de hapijs/code

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.