[scopes] Record mapping positions for method scopes

According to the spec, we should prefer the start of the identifier as
the named mapping position, but we can also use the opening
parenthesis.

Because Acorn doesn't maintain parent pointers, we have to stash the
mapping locations for 'MethodDefinition' nodes on the ScopeAnalysis
class. This is because the "value" node of a 'MethodDefinition'
is a 'FunctionExpression', which in turn records the actual `Scope`.

Note that methods for object literals are not handled this way.
That is because they go via a `Property` AST node.
`MethodDefinition` only exists inside classes.

[email protected]

Bug: 433162438
Change-Id: Iaf7bd7840c1ee17f364df9f7b484a4e36116f172
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7247666
Reviewed-by: Benedikt Meurer <[email protected]>
Auto-Submit: Simon Zünd <[email protected]>
Commit-Queue: Benedikt Meurer <[email protected]>
3 files changed
tree: a4182972acc5055d1b92102ad1f22bbeeb735c97
  1. .gemini/
  2. .github/
  3. .vscode/
  4. build_overrides/
  5. config/
  6. docs/
  7. extension-api/
  8. extensions/
  9. front_end/
  10. inspector_overlay/
  11. mcp/
  12. node_modules/
  13. scripts/
  14. test/
  15. third_party/
  16. v8/
  17. .clang-format
  18. .clang-format-ignore
  19. .editorconfig
  20. .env.template
  21. .geminiignore
  22. .git-blame-ignore-revs
  23. .gitallowed
  24. .gitattributes
  25. .gitignore
  26. .gitmodules
  27. .gn
  28. .mailmap
  29. .npmignore
  30. .npmrc
  31. .style.yapf
  32. .stylelintignore
  33. .stylelintrc.json
  34. AUTHORS
  35. BUILD.gn
  36. codereview.settings
  37. CONTRIBUTING.md
  38. DEPS
  39. DIR_METADATA
  40. eslint.config.mjs
  41. favicon.ico
  42. LICENSE
  43. OWNERS
  44. package-lock.json
  45. package.json
  46. PRESUBMIT.py
  47. README.md
  48. WATCHLISTS
README.md

Chrome DevTools frontend

npm package

The client-side of the Chrome DevTools, including all TypeScript & CSS to run the DevTools webapp.

Source code and documentation

The frontend is available on chromium.googlesource.com. Check out the Chromium DevTools documentation for instructions to set up, use, and maintain a DevTools front-end checkout, as well as design guidelines, and architectural documentation.

Source mirrors

DevTools frontend repository is mirrored on GitHub.

DevTools frontend is also available on NPM as the chrome-devtools-frontend package. It's not currently available via CJS or ES modules, so consuming this package in other tools may require some effort.

The version number of the npm package (e.g. 1.0.373466) refers to the Chromium commit position of latest frontend git commit. It's incremented with every Chromium commit, however the package is updated roughly daily.

Getting in touch

There are a few options to keep an eye on the latest and greatest of DevTools development: