[ADD] tests: budget reporter, one import parser, key-order guard
The time budget of § 14.14 had no enforcement: a reporter now prints the
total and the ten slowest tests, and fails a run whose node project
exceeds 30 s or node-long 60 s. Two guards parsed imports with two
patterns, one blind past an apostrophe in a comment; both now use one
parser anchored on « from ». The determinism guard refuses key-order
walks, and one test binds the application name across its three
declarations. The end-to-end generations drop to 100 000 moves.
Checked: each ceiling, the apostrophe case and a key walk are shown
failing before the guard that catches them.
--- FR ---
[ADD] épreuves : rapporteur de budget, imports, ordre des clés
Le budget de temps du § 14.14 n'avait aucune garde : un rapporteur
imprime désormais la durée totale et les dix épreuves les plus lentes,
et fait échouer une exécution dont le projet node dépasse 30 s ou
node-long 60 s. Deux gardes lisaient les imports par deux motifs, l'un
aveugle après une apostrophe en commentaire ; les deux passent par un
seul analyseur ancré sur « from ». La garde de déterminisme refuse les
parcours de clés, et une épreuve lie le nom de l'application à ses
trois déclarations. Les générations de bout en bout passent à 100 000.
Vérifié : chaque plafond, le cas de l'apostrophe et un parcours de clés
sont montrés en échec avant la garde qui les attrape.
Assisted-by: Claude Opus 5.5
2026-10-06 04:23:13 -04:00
|
|
|
// © 2026 TechnoLibre (http://www.technolibre.ca)
|
|
|
|
|
// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
|
|
|
|
|
|
|
|
|
// Analyseur des chargements qu'un texte demande, seul lu par les gardes de
|
|
|
|
|
// l'arborescence (test/arborescence.test.js) et du livrable
|
|
|
|
|
// (test/livrable.test.js) : import et export statiques, import seul, import()
|
[ADD] tests: guards for layers, clock, sources, colours, watch patterns
Guards scan the tree file by file and line by line, fail on an empty scan,
and are each shown red on a temporary tree. They cover the interface import
graph, the Electron bridge, one clock, refused dependencies, how tests are
written, hard-coded strings, translation keys, forbidden words, colours and
the conflict hue, markup, pruned selectors and watch patterns. Coverage
keeps the engine integration test on a small machine. Fixes: delays in
tests, the conflict hatch class; « la rend évitable » is a named exception
(§ 5.6). Checked: 2587 node, 465 browser tests, from the index alone.
--- FR ---
[ADD] épreuves : gardes des couches, horloge, sources, couleurs, motifs
Les gardes relèvent par fichier et par ligne, échouent sur un balayage vide
et sont chacune montrées rouges sur un arbre temporaire. Elles couvrent le
graphe d'imports de l'interface, le pont d'Electron, l'horloge unique, les
dépendances refusées, l'écriture des épreuves, les chaînes en dur, les clés
de traduction, les mots interdits, les couleurs et la teinte de conflit, le
balisage, les sélecteurs élagués et les motifs de surveillance. Corrigés :
délais d'épreuves, classe de la trame de conflit ; « la rend évitable » est
une exception nommée (§ 5.6). Vérifié : 2587 node, 465 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 13:21:21 -04:00
|
|
|
// et require(). Un composant Svelte se lit par le texte de ses blocs de
|
[ADD] tests: spec coverage guards, delivery checks, spec corrections
New guards close the spec coverage gaps: only the configuration and the
diagnostic read reservations in the engine, no second language in the
sources, the engine and geometry never read the version, a test lives
beside its module, fixtures never copy a shipped file, and the property
library stays in a closed list. The delivery test pins the www output and
the French language passed by the entry point. The spec names three test
projects and the three shell files. Checked: 2778 node, 550 browser and
62 long tests from the index alone; the version check passes.
--- FR ---
[ADD] épreuves : gardes de couverture du spec, livrable, spec corrigé
De nouvelles gardes ferment les manques de couverture : seules la
configuration et le diagnostic lisent les réservations dans le moteur,
aucun second langage dans les sources, le moteur et la géométrie ne lisent
pas la version, une épreuve vit près de son module, aucune donnée d'épreuve
ne copie un fichier livré, la bibliothèque de propriétés reste en liste
fermée. Le livrable fige la sortie www et la langue française du point
d'entrée. Le spec nomme trois projets et trois fichiers de coquille.
Vérifié : 2778 node, 550 navigateur, 62 longues ; version conforme.
Assisted-by: Claude Opus 5.5
2026-10-07 17:51:49 -04:00
|
|
|
// script et des import() de son gabarit, que rend scriptsDe.
|
|
|
|
|
import { parse } from 'svelte/compiler';
|
|
|
|
|
|
[ADD] tests: budget reporter, one import parser, key-order guard
The time budget of § 14.14 had no enforcement: a reporter now prints the
total and the ten slowest tests, and fails a run whose node project
exceeds 30 s or node-long 60 s. Two guards parsed imports with two
patterns, one blind past an apostrophe in a comment; both now use one
parser anchored on « from ». The determinism guard refuses key-order
walks, and one test binds the application name across its three
declarations. The end-to-end generations drop to 100 000 moves.
Checked: each ceiling, the apostrophe case and a key walk are shown
failing before the guard that catches them.
--- FR ---
[ADD] épreuves : rapporteur de budget, imports, ordre des clés
Le budget de temps du § 14.14 n'avait aucune garde : un rapporteur
imprime désormais la durée totale et les dix épreuves les plus lentes,
et fait échouer une exécution dont le projet node dépasse 30 s ou
node-long 60 s. Deux gardes lisaient les imports par deux motifs, l'un
aveugle après une apostrophe en commentaire ; les deux passent par un
seul analyseur ancré sur « from ». La garde de déterminisme refuse les
parcours de clés, et une épreuve lie le nom de l'application à ses
trois déclarations. Les générations de bout en bout passent à 100 000.
Vérifié : chaque plafond, le cas de l'apostrophe et un parcours de clés
sont montrés en échec avant la garde qui les attrape.
Assisted-by: Claude Opus 5.5
2026-10-06 04:23:13 -04:00
|
|
|
// Le relevé lit le texte entier, commentaires et chaînes compris. Une
|
|
|
|
|
// instruction à « from » se lit à partir de ce mot, que seuls import et
|
|
|
|
|
// export font suivre d'une chaîne : un motif parti du mot-clé s'arrêterait à
|
|
|
|
|
// l'apostrophe d'un commentaire placé entre les accolades. L'import d'un
|
|
|
|
|
// module seul exige un blanc après le mot-clé, et aucune arobase devant lui :
|
|
|
|
|
// une chaîne qui finit sur « import », comme l'argument « --import » d'une
|
|
|
|
|
// commande, n'en est pas un, ni la règle @import d'une feuille de style, dont
|
|
|
|
|
// la chaîne est une adresse relative à la feuille et non un paquet. import()
|
|
|
|
|
// et require() désignent un spécificateur quand leur argument est une chaîne
|
|
|
|
|
// littérale, entre guillemets, apostrophes ou accents graves sans
|
|
|
|
|
// interpolation, suivie ou non d'options ; tout autre argument est calculé.
|
|
|
|
|
const DEPUIS = /\bfrom\s*(['"])(?<specificateur>[^'"\n]+)\1/g;
|
|
|
|
|
const IMPORT_SEUL = /(?<!@)\bimport\s+(['"])(?<specificateur>[^'"\n]+)\1/g;
|
|
|
|
|
const APPEL =
|
|
|
|
|
/\b(?:import|require)\s*\(\s*(?:(['"`])(?<specificateur>[^'"`$\n]+)\1\s*[,)]|(?<argument>[^)]*)\))/g;
|
|
|
|
|
|
|
|
|
|
// Chargements que demande un texte, dans l'ordre du texte. Chacun est
|
|
|
|
|
// { indice, specificateur } pour une chaîne littérale, { indice, argument }
|
|
|
|
|
// pour un argument calculé, son texte jusqu'à la première parenthèse
|
|
|
|
|
// fermante, blancs de bord retirés. indice est la position du mot « from »,
|
|
|
|
|
// de « import » ou de « require » dans le texte.
|
|
|
|
|
export function chargements(texte) {
|
|
|
|
|
return [DEPUIS, IMPORT_SEUL, APPEL]
|
|
|
|
|
.flatMap((motif) =>
|
|
|
|
|
[...texte.matchAll(motif)].map(({ groups, index }) =>
|
|
|
|
|
groups.specificateur === undefined
|
|
|
|
|
? { indice: index, argument: groups.argument.trim() }
|
|
|
|
|
: { indice: index, specificateur: groups.specificateur },
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
.sort((a, b) => a.indice - b.indice);
|
|
|
|
|
}
|
[ADD] tests: guards for layers, clock, sources, colours, watch patterns
Guards scan the tree file by file and line by line, fail on an empty scan,
and are each shown red on a temporary tree. They cover the interface import
graph, the Electron bridge, one clock, refused dependencies, how tests are
written, hard-coded strings, translation keys, forbidden words, colours and
the conflict hue, markup, pruned selectors and watch patterns. Coverage
keeps the engine integration test on a small machine. Fixes: delays in
tests, the conflict hatch class; « la rend évitable » is a named exception
(§ 5.6). Checked: 2587 node, 465 browser tests, from the index alone.
--- FR ---
[ADD] épreuves : gardes des couches, horloge, sources, couleurs, motifs
Les gardes relèvent par fichier et par ligne, échouent sur un balayage vide
et sont chacune montrées rouges sur un arbre temporaire. Elles couvrent le
graphe d'imports de l'interface, le pont d'Electron, l'horloge unique, les
dépendances refusées, l'écriture des épreuves, les chaînes en dur, les clés
de traduction, les mots interdits, les couleurs et la teinte de conflit, le
balisage, les sélecteurs élagués et les motifs de surveillance. Corrigés :
délais d'épreuves, classe de la trame de conflit ; « la rend évitable » est
une exception nommée (§ 5.6). Vérifié : 2587 node, 465 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 13:21:21 -04:00
|
|
|
|
|
|
|
|
// Un bloc de script d'un composant Svelte : une balise <script …>, attributs
|
|
|
|
|
// compris — ainsi <script module> —, son contenu, puis </script>, ou la fin
|
|
|
|
|
// du texte quand le bloc ne se ferme pas. Un commentaire HTML <!-- … -->
|
|
|
|
|
// est reconnu pour être sauté : une balise qui y figure n'ouvre aucun bloc.
|
|
|
|
|
const BLOC_OU_COMMENTAIRE = /<!--[\s\S]*?(?:-->|$)|<script(?:\s[^>]*)?>(?<contenu>[\s\S]*?)(?:<\/script\s*>|$)/g;
|
|
|
|
|
|
|
|
|
|
// Étendues { debut, fin } du contenu des blocs de script d'un composant
|
|
|
|
|
// Svelte, balises exclues, dans l'ordre du texte : debut est l'indice du
|
|
|
|
|
// premier caractère du contenu, fin celui qui suit son dernier.
|
|
|
|
|
export function blocsScript(texte) {
|
|
|
|
|
return [...texte.matchAll(BLOC_OU_COMMENTAIRE)]
|
|
|
|
|
.filter(({ groups }) => groups.contenu !== undefined)
|
|
|
|
|
.map(({ 0: lu, index, groups }) => {
|
|
|
|
|
const debut = index + lu.indexOf('>') + 1;
|
|
|
|
|
return { debut, fin: debut + groups.contenu.length };
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
[ADD] tests: spec coverage guards, delivery checks, spec corrections
New guards close the spec coverage gaps: only the configuration and the
diagnostic read reservations in the engine, no second language in the
sources, the engine and geometry never read the version, a test lives
beside its module, fixtures never copy a shipped file, and the property
library stays in a closed list. The delivery test pins the www output and
the French language passed by the entry point. The spec names three test
projects and the three shell files. Checked: 2778 node, 550 browser and
62 long tests from the index alone; the version check passes.
--- FR ---
[ADD] épreuves : gardes de couverture du spec, livrable, spec corrigé
De nouvelles gardes ferment les manques de couverture : seules la
configuration et le diagnostic lisent les réservations dans le moteur,
aucun second langage dans les sources, le moteur et la géométrie ne lisent
pas la version, une épreuve vit près de son module, aucune donnée d'épreuve
ne copie un fichier livré, la bibliothèque de propriétés reste en liste
fermée. Le livrable fige la sortie www et la langue française du point
d'entrée. Le spec nomme trois projets et trois fichiers de coquille.
Vérifié : 2778 node, 550 navigateur, 62 longues ; version conforme.
Assisted-by: Claude Opus 5.5
2026-10-07 17:51:49 -04:00
|
|
|
// Les import() du gabarit d'un composant Svelte, en étendues { debut, fin }
|
|
|
|
|
// dans l'ordre du texte : chaque nœud ImportExpression de l'arbre que rend
|
|
|
|
|
// l'analyseur de Svelte (svelte/compiler) hors des blocs de script et de la
|
|
|
|
|
// feuille de style — un bloc {#await import(…)}, un attribut, une
|
|
|
|
|
// expression à toute profondeur. Le texte d'un nœud n'est pas une
|
|
|
|
|
// expression : « import » dans une phrase n'en donne aucun. null quand
|
|
|
|
|
// l'analyseur refuse le composant.
|
|
|
|
|
function importsDuGabarit(texte) {
|
|
|
|
|
let arbre;
|
|
|
|
|
try {
|
|
|
|
|
arbre = parse(texte, { modern: true });
|
|
|
|
|
} catch {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
const etendues = [];
|
|
|
|
|
const vus = new WeakSet();
|
|
|
|
|
const parcourir = (noeud) => {
|
|
|
|
|
if (noeud === null || typeof noeud !== 'object' || vus.has(noeud)) return;
|
|
|
|
|
vus.add(noeud);
|
|
|
|
|
if (noeud.type === 'ImportExpression') etendues.push({ debut: noeud.start, fin: noeud.end });
|
|
|
|
|
for (const valeur of Object.values(noeud)) parcourir(valeur);
|
|
|
|
|
};
|
|
|
|
|
parcourir(arbre.fragment);
|
|
|
|
|
return etendues.sort((a, b) => a.debut - b.debut);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Le texte qu'un relevé de chargements lit dans un composant Svelte, à la
|
|
|
|
|
// longueur du composant : ses blocs de script et les import() de son
|
|
|
|
|
// gabarit gardés, tout autre caractère devenu une espace, fins de ligne
|
|
|
|
|
// gardées, si bien que les indices et les numéros de ligne restent ceux du
|
|
|
|
|
// composant. Le balisage, le style et les autres expressions du gabarit ne
|
|
|
|
|
// sont pas lus : le texte d'un nœud — « import » dans une phrase — ne charge
|
|
|
|
|
// aucun module. Un composant que l'analyseur de Svelte refuse se lit en
|
|
|
|
|
// entier, gabarit compris : le relevé y trouve plus, jamais moins, et la
|
|
|
|
|
// construction le refuse de toute façon.
|
[ADD] tests: guards for layers, clock, sources, colours, watch patterns
Guards scan the tree file by file and line by line, fail on an empty scan,
and are each shown red on a temporary tree. They cover the interface import
graph, the Electron bridge, one clock, refused dependencies, how tests are
written, hard-coded strings, translation keys, forbidden words, colours and
the conflict hue, markup, pruned selectors and watch patterns. Coverage
keeps the engine integration test on a small machine. Fixes: delays in
tests, the conflict hatch class; « la rend évitable » is a named exception
(§ 5.6). Checked: 2587 node, 465 browser tests, from the index alone.
--- FR ---
[ADD] épreuves : gardes des couches, horloge, sources, couleurs, motifs
Les gardes relèvent par fichier et par ligne, échouent sur un balayage vide
et sont chacune montrées rouges sur un arbre temporaire. Elles couvrent le
graphe d'imports de l'interface, le pont d'Electron, l'horloge unique, les
dépendances refusées, l'écriture des épreuves, les chaînes en dur, les clés
de traduction, les mots interdits, les couleurs et la teinte de conflit, le
balisage, les sélecteurs élagués et les motifs de surveillance. Corrigés :
délais d'épreuves, classe de la trame de conflit ; « la rend évitable » est
une exception nommée (§ 5.6). Vérifié : 2587 node, 465 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 13:21:21 -04:00
|
|
|
export function scriptsDe(texte) {
|
[ADD] tests: spec coverage guards, delivery checks, spec corrections
New guards close the spec coverage gaps: only the configuration and the
diagnostic read reservations in the engine, no second language in the
sources, the engine and geometry never read the version, a test lives
beside its module, fixtures never copy a shipped file, and the property
library stays in a closed list. The delivery test pins the www output and
the French language passed by the entry point. The spec names three test
projects and the three shell files. Checked: 2778 node, 550 browser and
62 long tests from the index alone; the version check passes.
--- FR ---
[ADD] épreuves : gardes de couverture du spec, livrable, spec corrigé
De nouvelles gardes ferment les manques de couverture : seules la
configuration et le diagnostic lisent les réservations dans le moteur,
aucun second langage dans les sources, le moteur et la géométrie ne lisent
pas la version, une épreuve vit près de son module, aucune donnée d'épreuve
ne copie un fichier livré, la bibliothèque de propriétés reste en liste
fermée. Le livrable fige la sortie www et la langue française du point
d'entrée. Le spec nomme trois projets et trois fichiers de coquille.
Vérifié : 2778 node, 550 navigateur, 62 longues ; version conforme.
Assisted-by: Claude Opus 5.5
2026-10-07 17:51:49 -04:00
|
|
|
const gabarit = importsDuGabarit(texte);
|
|
|
|
|
if (gabarit === null) return texte;
|
[ADD] tests: guards for layers, clock, sources, colours, watch patterns
Guards scan the tree file by file and line by line, fail on an empty scan,
and are each shown red on a temporary tree. They cover the interface import
graph, the Electron bridge, one clock, refused dependencies, how tests are
written, hard-coded strings, translation keys, forbidden words, colours and
the conflict hue, markup, pruned selectors and watch patterns. Coverage
keeps the engine integration test on a small machine. Fixes: delays in
tests, the conflict hatch class; « la rend évitable » is a named exception
(§ 5.6). Checked: 2587 node, 465 browser tests, from the index alone.
--- FR ---
[ADD] épreuves : gardes des couches, horloge, sources, couleurs, motifs
Les gardes relèvent par fichier et par ligne, échouent sur un balayage vide
et sont chacune montrées rouges sur un arbre temporaire. Elles couvrent le
graphe d'imports de l'interface, le pont d'Electron, l'horloge unique, les
dépendances refusées, l'écriture des épreuves, les chaînes en dur, les clés
de traduction, les mots interdits, les couleurs et la teinte de conflit, le
balisage, les sélecteurs élagués et les motifs de surveillance. Corrigés :
délais d'épreuves, classe de la trame de conflit ; « la rend évitable » est
une exception nommée (§ 5.6). Vérifié : 2587 node, 465 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 13:21:21 -04:00
|
|
|
const blanc = (morceau) => morceau.replace(/[^\n]/g, ' ');
|
[ADD] tests: spec coverage guards, delivery checks, spec corrections
New guards close the spec coverage gaps: only the configuration and the
diagnostic read reservations in the engine, no second language in the
sources, the engine and geometry never read the version, a test lives
beside its module, fixtures never copy a shipped file, and the property
library stays in a closed list. The delivery test pins the www output and
the French language passed by the entry point. The spec names three test
projects and the three shell files. Checked: 2778 node, 550 browser and
62 long tests from the index alone; the version check passes.
--- FR ---
[ADD] épreuves : gardes de couverture du spec, livrable, spec corrigé
De nouvelles gardes ferment les manques de couverture : seules la
configuration et le diagnostic lisent les réservations dans le moteur,
aucun second langage dans les sources, le moteur et la géométrie ne lisent
pas la version, une épreuve vit près de son module, aucune donnée d'épreuve
ne copie un fichier livré, la bibliothèque de propriétés reste en liste
fermée. Le livrable fige la sortie www et la langue française du point
d'entrée. Le spec nomme trois projets et trois fichiers de coquille.
Vérifié : 2778 node, 550 navigateur, 62 longues ; version conforme.
Assisted-by: Claude Opus 5.5
2026-10-07 17:51:49 -04:00
|
|
|
const gardes = [...blocsScript(texte), ...gabarit].sort((a, b) => a.debut - b.debut);
|
[ADD] tests: guards for layers, clock, sources, colours, watch patterns
Guards scan the tree file by file and line by line, fail on an empty scan,
and are each shown red on a temporary tree. They cover the interface import
graph, the Electron bridge, one clock, refused dependencies, how tests are
written, hard-coded strings, translation keys, forbidden words, colours and
the conflict hue, markup, pruned selectors and watch patterns. Coverage
keeps the engine integration test on a small machine. Fixes: delays in
tests, the conflict hatch class; « la rend évitable » is a named exception
(§ 5.6). Checked: 2587 node, 465 browser tests, from the index alone.
--- FR ---
[ADD] épreuves : gardes des couches, horloge, sources, couleurs, motifs
Les gardes relèvent par fichier et par ligne, échouent sur un balayage vide
et sont chacune montrées rouges sur un arbre temporaire. Elles couvrent le
graphe d'imports de l'interface, le pont d'Electron, l'horloge unique, les
dépendances refusées, l'écriture des épreuves, les chaînes en dur, les clés
de traduction, les mots interdits, les couleurs et la teinte de conflit, le
balisage, les sélecteurs élagués et les motifs de surveillance. Corrigés :
délais d'épreuves, classe de la trame de conflit ; « la rend évitable » est
une exception nommée (§ 5.6). Vérifié : 2587 node, 465 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 13:21:21 -04:00
|
|
|
let sortie = '';
|
|
|
|
|
let fin = 0;
|
[ADD] tests: spec coverage guards, delivery checks, spec corrections
New guards close the spec coverage gaps: only the configuration and the
diagnostic read reservations in the engine, no second language in the
sources, the engine and geometry never read the version, a test lives
beside its module, fixtures never copy a shipped file, and the property
library stays in a closed list. The delivery test pins the www output and
the French language passed by the entry point. The spec names three test
projects and the three shell files. Checked: 2778 node, 550 browser and
62 long tests from the index alone; the version check passes.
--- FR ---
[ADD] épreuves : gardes de couverture du spec, livrable, spec corrigé
De nouvelles gardes ferment les manques de couverture : seules la
configuration et le diagnostic lisent les réservations dans le moteur,
aucun second langage dans les sources, le moteur et la géométrie ne lisent
pas la version, une épreuve vit près de son module, aucune donnée d'épreuve
ne copie un fichier livré, la bibliothèque de propriétés reste en liste
fermée. Le livrable fige la sortie www et la langue française du point
d'entrée. Le spec nomme trois projets et trois fichiers de coquille.
Vérifié : 2778 node, 550 navigateur, 62 longues ; version conforme.
Assisted-by: Claude Opus 5.5
2026-10-07 17:51:49 -04:00
|
|
|
for (const etendue of gardes) {
|
|
|
|
|
sortie += blanc(texte.slice(fin, etendue.debut)) + texte.slice(etendue.debut, etendue.fin);
|
|
|
|
|
fin = etendue.fin;
|
[ADD] tests: guards for layers, clock, sources, colours, watch patterns
Guards scan the tree file by file and line by line, fail on an empty scan,
and are each shown red on a temporary tree. They cover the interface import
graph, the Electron bridge, one clock, refused dependencies, how tests are
written, hard-coded strings, translation keys, forbidden words, colours and
the conflict hue, markup, pruned selectors and watch patterns. Coverage
keeps the engine integration test on a small machine. Fixes: delays in
tests, the conflict hatch class; « la rend évitable » is a named exception
(§ 5.6). Checked: 2587 node, 465 browser tests, from the index alone.
--- FR ---
[ADD] épreuves : gardes des couches, horloge, sources, couleurs, motifs
Les gardes relèvent par fichier et par ligne, échouent sur un balayage vide
et sont chacune montrées rouges sur un arbre temporaire. Elles couvrent le
graphe d'imports de l'interface, le pont d'Electron, l'horloge unique, les
dépendances refusées, l'écriture des épreuves, les chaînes en dur, les clés
de traduction, les mots interdits, les couleurs et la teinte de conflit, le
balisage, les sélecteurs élagués et les motifs de surveillance. Corrigés :
délais d'épreuves, classe de la trame de conflit ; « la rend évitable » est
une exception nommée (§ 5.6). Vérifié : 2587 node, 465 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 13:21:21 -04:00
|
|
|
}
|
|
|
|
|
return sortie + blanc(texte.slice(fin));
|
|
|
|
|
}
|