When -strict option, all evals regardless of "direct" or "indirect" have to be strict. This rule is consistent with Rhino. With nashorn, all Functions are strict with -strict flag. But indirect evals are not strict with -strict. Test script: // indirect eval. Undefined variable assignment this.eval("x = 44"); The above should result in ReferenceError with -strict option.