Changeset 9558 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp


Ignore:
Timestamp:
Jul 1, 2005, 10:47:12 AM (20 years ago)
Author:
ggaren
Message:

-fixed <rdar://problem/4168186> JavaScript fails to throw exceptions
for invalid return statements

relevant tests:

ecma/Statements/12.9-1-n.js
ecma_2/Exceptions/lexical-052.js
ecma_2/Exceptions/statement-009.js

Reviewed by sullivan.

  • kjs/nodes.cpp: (ReturnNode::execute): now throws exception if return is not inside a function.
  • tests/mozilla/expected.html: updated to reflect fix
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r9556 r9558  
    22262226  KJS_BREAKPOINT;
    22272227
     2228  CodeType codeType = exec->context().imp()->codeType();
     2229  if (codeType != FunctionCode && codeType != AnonymousCode ) {
     2230    return Completion(Throw, throwError(exec, SyntaxError, "Invalid return statement."));   
     2231  }
     2232
    22282233  if (!value)
    22292234    return Completion(ReturnValue, Undefined());
Note: See TracChangeset for help on using the changeset viewer.