c670792ffe
eval "export NAME=" can return success even when zsh coerces the bare assignment on an integer special parameter (SECONDS, RANDOM, SHLVL, HISTSIZE, COLUMNS, LINES, USERNAME) instead of failing, leaving the value unchanged. The old exit-status check then reported the name as blanked when it was not -- a false receipt. Classify on the observed effect instead: attempt the export, then read the name's value back with the (P) indirection flag and decide from whether it is now empty. One check now covers all three shapes a name can take here -- a genuine blank, a fatal read-only error eval merely contains, and this silent no-op -- with the exit status playing no part in the decision. Adds a test driving all three shapes through the real scrubScript in one run (a normal name, LINENO for the fatal case, SECONDS for the silent no-op), with the parent environment explicitly carrying those names since a cleared ProcessBuilder parent does not expose them on its own. Also corrects the previously-merged unblankableNameInTheMiddleDoesNotAbortNamesAfterIt test, whose "exactly one failed name" assertion turned out to only pass by accident: zsh itself auto-exports SHLVL on every shell start, and the old exit-status bug was silently miscounting it as blanked. The fixed classification now correctly reports it unblankable too, so the test asserts presence rather than an exact count.