1. 07 Oct, 2016 1 commit
  2. 09 Sep, 2016 1 commit
  3. 31 Aug, 2016 1 commit
    • adamk's avatar
      Remove CONST_LEGACY VariableMode · 7516fe1e
      adamk authored
      The only remaining use of this VariableMode is for the names of sloppy
      named function expressions. This patch instead uses CONST for such
      bindings (just as we do in strict mode) and instead marks those
      Variables specially. During code generation a new helper method,
      Variable::throw_on_const_assignment(), is called to decide whether
      to throw or silently ignore the assignment.
      
      Review-Url: https://codereview.chromium.org/2233673003
      Cr-Commit-Position: refs/heads/master@{#39052}
      7516fe1e
  4. 26 Aug, 2016 1 commit
  5. 25 Aug, 2016 1 commit
  6. 18 Aug, 2016 1 commit
  7. 16 Aug, 2016 2 commits
  8. 12 Aug, 2016 1 commit
  9. 08 Aug, 2016 1 commit
  10. 18 Jul, 2016 1 commit
    • neis's avatar
      [modules] AST and parser rework. · 0e000a87
      neis authored
      Highlights:
      - Record all imports and exports in the ModuleDescriptor.
      - Remove ImportDeclaration; instead, introduce a new variable kind for imports.
      - Set name on default exported anonymous functions.
      
      Still to do: declaration of namespace imports.
      
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2108193003
      Cr-Commit-Position: refs/heads/master@{#37815}
      0e000a87
  11. 30 Jun, 2016 1 commit
  12. 20 Jun, 2016 1 commit
    • adamk's avatar
      [cleanup] Remove dead code from DeclareLookupSlot and rename it · cbc6adc8
      adamk authored
      Runtime_DeclareLookupSlot is used when generating code for var and function declarations
      originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes:
      
        - With legacy const gone, lookup slots never have any property attributes.
        - There was a bit signaling that the variable was from an eval, but that was redundant since
          DeclareLookupSlot is only used for eval.
        - Some Proxy-related code didn't make sense here.
      
      Its name was also not terribly clear: while "LookupSlot" is used in several places, this
      particular function is only used for declaring variables and functions inside sloppy eval.
      Renamed (and split into two) to make this clear for future archeologists.
      
      Also added various DCHECKs to check the assumptions being made.
      
      Review-Url: https://codereview.chromium.org/2061173002
      Cr-Commit-Position: refs/heads/master@{#37111}
      cbc6adc8
  13. 19 Apr, 2016 1 commit
    • adamk's avatar
      Remove all non-function-name uses of CONST_LEGACY · 59546149
      adamk authored
      Now that all 'const' declarations are of the ES2015 variety, the only
      use of CONST_LEGACY is for function name bindings in sloppy mode
      named function expressions.
      
      This patch aims to delete all code meant to handle other cases, which
      mostly had to do with hole initialization/hole checks. Since function
      name bindings are initialized at entry to a function, it's impossible
      to ever observe one in an uninitialized state.
      
      To simplify the patch further, it removes the `IMPORT` VariableMode,
      as it's not likely to be needed (IMPORT is identical to CONST for
      the purpose of VariableMode).
      
      Review URL: https://codereview.chromium.org/1895973002
      
      Cr-Commit-Position: refs/heads/master@{#35632}
      59546149
  14. 18 Feb, 2016 1 commit
  15. 26 Nov, 2015 1 commit
  16. 12 Oct, 2015 1 commit
    • littledan's avatar
      Test for var declarations in eval which conflict with let · d515e513
      littledan authored
      Previously, name conflicts between var and let declarations were only
      made into exceptions if they were visible at parse-time. This patch adds
      runtime checks so that sloppy-mode direct eval can't introduce conflicting
      var declarations. The change is implemented by traversing the scope chain
      when a direct eval introduces a var declaration to look for conflicting
      let declarations, up to the function boundary.
      
      BUG=v8:4454
      R=adamk
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1382513003
      
      Cr-Commit-Position: refs/heads/master@{#31211}
      d515e513
  17. 14 Aug, 2015 1 commit
  18. 23 Jul, 2015 1 commit
  19. 15 Jul, 2015 1 commit
  20. 06 Jul, 2015 1 commit
  21. 01 Jun, 2015 1 commit
  22. 19 May, 2015 2 commits
  23. 18 May, 2015 1 commit
  24. 13 May, 2015 1 commit
  25. 11 May, 2015 1 commit
  26. 07 May, 2015 1 commit
    • machenbach's avatar
      Revert of Resolve references to "this" the same way as normal variables... · 5cab6be8
      machenbach authored
      Revert of Resolve references to "this" the same way as normal variables (patchset #2 id:20001 of https://codereview.chromium.org/1130733003/)
      
      Reason for revert:
      [Sheriff] Breaks jetstream benchmark with errors like this:
      
      >>> Running suite: JetStream/bigfib.cpp
      >>> Stdout (#1):
      undefined:93: ReferenceError: this is not defined
        this['Module'] = Module;
        ^
      ReferenceError: this is not defined
          at eval (eval at __run (runner.js:13:3), <anonymous>:93:3)
          at eval (native)
          at __run (runner.js:13:3)
          at Object.runSimpleBenchmark (runner.js:44:31)
          at runner.js:97:13
      
      Original issue's description:
      > Resolve references to "this" the same way as normal variables
      >
      > Make the parser handle references to "this" as unresolved variables, so the
      > same logic as for the rest of function parameters is used for the receiver.
      > Minor additions to the code generation handle copying the receiver to the
      > context, along with the rest of the function parameters.
      >
      > Based on work by Adrian Perez de Castro <aperez@igalia.com>.
      >
      > BUG=v8:2700
      > LOG=N
      >
      > Committed: https://crrev.com/06a792b7cc2db33ffce7244c044a9c05afbb6116
      > Cr-Commit-Position: refs/heads/master@{#28263}
      
      TBR=rossberg@chromium.org,arv@chromium.org,wingo@igalia.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:2700
      
      Review URL: https://codereview.chromium.org/1129723003
      
      Cr-Commit-Position: refs/heads/master@{#28283}
      5cab6be8
  27. 06 May, 2015 1 commit
    • wingo's avatar
      Resolve references to "this" the same way as normal variables · 06a792b7
      wingo authored
      Make the parser handle references to "this" as unresolved variables, so the
      same logic as for the rest of function parameters is used for the receiver.
      Minor additions to the code generation handle copying the receiver to the
      context, along with the rest of the function parameters.
      
      Based on work by Adrian Perez de Castro <aperez@igalia.com>.
      
      BUG=v8:2700
      LOG=N
      
      Review URL: https://codereview.chromium.org/1130733003
      
      Cr-Commit-Position: refs/heads/master@{#28263}
      06a792b7
  28. 05 May, 2015 2 commits
    • wingo's avatar
      Revert of Resolve references to "this" the same way as normal variables... · 1e4173d9
      wingo authored
      Revert of Resolve references to "this" the same way as normal variables (patchset #11 id:240001 of https://codereview.chromium.org/1097283003/)
      
      Reason for revert:
      nosnap failures
      
      Original issue's description:
      > Resolve references to "this" the same way as normal variables
      >
      > Make the parser handle references to "this" as unresolved variables, so the
      > same logic as for the rest of function parameters is used for the receiver.
      > Minor additions to the code generation handle copying the receiver to the
      > context, along with the rest of the function parameters.
      >
      > Based on work by Adrian Perez de Castro <aperez@igalia.com>.
      >
      > BUG=
      > LOG=N
      >
      > Committed: https://crrev.com/18619d355192e2699203d12d9ebb9caea107b693
      > Cr-Commit-Position: refs/heads/master@{#28236}
      
      TBR=rossberg@chromium.org,mstarzinger@chromium.org,dslomov@chromium.org,adamk@chromium.org,arv@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1113133006
      
      Cr-Commit-Position: refs/heads/master@{#28238}
      1e4173d9
    • wingo's avatar
      Resolve references to "this" the same way as normal variables · 18619d35
      wingo authored
      Make the parser handle references to "this" as unresolved variables, so the
      same logic as for the rest of function parameters is used for the receiver.
      Minor additions to the code generation handle copying the receiver to the
      context, along with the rest of the function parameters.
      
      Based on work by Adrian Perez de Castro <aperez@igalia.com>.
      
      BUG=
      LOG=N
      
      Review URL: https://codereview.chromium.org/1097283003
      
      Cr-Commit-Position: refs/heads/master@{#28236}
      18619d35
  29. 24 Mar, 2015 2 commits
    • marja's avatar
      [strong] Check strong mode free variables against the global object. · cb7279da
      marja authored
      Gather references to unbound variables where the reference (VariableProxy) is
      inside strong mode. Check them against the global object when a script is bound
      to a context (during compilation).
      
      This CL only checks unbound variables which are not inside lazy functions - TBD
      how do we solve that; alternatives: add developer mode which disables laziness /
      do the check whenever lazy functions are really compiled.
      
      BUG=v8:3956
      LOG=N
      
      Review URL: https://codereview.chromium.org/1005063002
      
      Cr-Commit-Position: refs/heads/master@{#27422}
      cb7279da
    • aperez's avatar
      Cleanups needed for this-scoping in arrow functions · 00844d46
      aperez authored
      Remove Variable::IsValidReference(), and the Variable::is_valid_ref_
      member: This was "false" only for "this", and for internal variables.
      For the first, VariableProxy::is_this() can be used for the check
      instead; and for internal variables, it is guaranteed they they will
      not be written to (because the V8 code does not do it, and they are
      not accessible from JavaScript).
      
      The "bool is_this" parameter of VariableProxy() constructor is
      changed to use Variable::Kind. This will allow to later on adding
      a parameter to create unresolved variables of any kind, which in
      turn will be used to make references to "this" initially unresolved,
      and use the existing variable resolution mechanics for "this".
      
      BUG=v8:2700
      LOG=N
      
      Review URL: https://codereview.chromium.org/1024703004
      
      Cr-Commit-Position: refs/heads/master@{#27404}
      00844d46
  30. 26 Feb, 2015 1 commit
    • adamk's avatar
      Re-introduce ImportDeclaration to the parser · fa293dd7
      adamk authored
      This also adds a new VariableMode, IMPORT, which will be
      used to do appropriate binding for Import-declared Variables.
      
      Only named imports are handled for now. "import *" and default
      import syntaxes have had their TODOs adjusted to match the new
      code structure.
      
      BUG=v8:1569
      LOG=n
      
      Review URL: https://codereview.chromium.org/948303004
      
      Cr-Commit-Position: refs/heads/master@{#26895}
      fa293dd7
  31. 17 Feb, 2015 1 commit
  32. 12 Nov, 2014 1 commit
  33. 04 Aug, 2014 1 commit
  34. 30 Jul, 2014 1 commit
  35. 26 Jun, 2014 1 commit
  36. 24 Jun, 2014 1 commit