Both calls throw because defaults require no argument syntax
Explanation
A default initializer is selected for a missing argument or one explicitly equal to undefined, so label(undefined) gives new. Passing null supplies an actual argument, so label(null) preserves null rather than treating it as absent.