Skip to content

Duplicate identifier: why should the first test pass? #87

Description

@SheepTester
function(){
try {
  eval('var d = function d([d]) { return d };if (d([true]) !== true) return false;');
} catch (e) {
  return !(e instanceof SyntaxError);
}

try {
  eval('var f = function f([id, id]) { return id }');
  return false;
} catch (e) {
  return e instanceof SyntaxError;
}
}

In the first try/catch block, it evaluates several statements with eval. One of the statements has return false; in it, which is a syntax error because the top level of code evaluated by eval isn't a function. Is this intentional?

The line seems to have changed recently in 39a4e84, which seems to have tried to wrap the code in an eval so that the SyntaxError can be caught and returned as false. However, in doing so, it made versions that formerly pass now fail:

39a4e84#diff-360bd21e67071c3b8fd48a96bdadbcee20a6ec434aeffb7cd1a0c528ad1644f2L432-R432

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions