1. 18 Nov, 2015 1 commit
  2. 30 Sep, 2015 1 commit
    • littledan's avatar
      Extend Annex B 3.3 sloppy-mode block-scoped hoisting to scripts, eval · 76da4933
      littledan authored
      The ES2015 spec is missing an extension of sloppy-mode block-scoped function
      behavior to the global scope in scripts, as well as to eval. This patch
      brings that hoisting to those two areas. The behavior is not perfectly
      spec-compliant since properties created on the global scope should be
      set as enumerable even if they are non-enumerable previously, but the
      attributes will not be modified if the property already exists under
      this patch.
      
      BUG=v8:4441
      LOG=Y
      R=adamk
      TEST=reddit comment functionality seems to be fixed
      
      Review URL: https://codereview.chromium.org/1376623002
      
      Cr-Commit-Position: refs/heads/master@{#31037}
      76da4933
  3. 21 Sep, 2015 1 commit
    • littledan's avatar
      Implement sloppy-mode block-defined functions (Annex B 3.3) · e5ff10d7
      littledan authored
      ES2015 specifies very particular semantics for functions defined in blocks.
      In strict mode, it is simply a lexical binding scoped to that block. In sloppy
      mode, in addition to that lexical binding, there is a var-style binding in
      the outer scope, which is overwritten with the local binding when the function
      declaration is evaluated, *as long as* introducing ths var binding would not
      create a var/let conflict in the outer scope.
      
      This patch implements the semantics by introducing a DelegateStatement, which
      is initially filled in with the EmptyStatement and overwritten with the
      assignment when the scope is closed out and it can be checked that there is
      no conflict.
      
      This patch is tested with a new mjsunit test, and I tried staging it and running
      test262, finding that the tests that we have disabled due to lack of Annex B
      support now pass.
      
      R=adamk,rossberg
      LOG=Y
      BUG=v8:4285
      
      Review URL: https://codereview.chromium.org/1332873003
      
      Cr-Commit-Position: refs/heads/master@{#30842}
      e5ff10d7