....
f = J$.N(169, 'f', J$.T(161, f, 12, false, 65), 0);
....
try {
var f = function f() {
'use strict';
....
Now, note that at the T invocation f is not initialised yet: f = undefined, because f is not hoisted since it is no longer a function declaration.
So when the strict mode is set to f in T, a TypeError is thrown.
Some of the changes in the tracifier branch cannot be applied. Tajs test this code for strict mode
which generates
Now, note that at the
T
invocationf
is not initialised yet:f = undefined
, becausef
is not hoisted since it is no longer a function declaration. So when the strict mode is set to f in T, a TypeError is thrown.