dart-lang / dart-lang/webdev

Allow arbitrary code execution as part of expression evaluation

Open
#1,480 1 comment 1 reaction 0 assignees View on GitHub
P3 package:dwds triaged
Dominant language
Dart
Stars
224
Forks
94
Avg merge
7h 14m
Merged PRs (30d)
2

Description

We received a customer request to have the Dart DevTools expression evaluation work more like the Chrome DevTools expression evaluation. Specifically, they would like to be able to perform arbitrary code execution from the expression evaluation bar (essentially treating it like a DartPad). I tested out a couple expressions:

* `[1, 2, 3, 4].sublist(1)` -> this works!

* `var list = [1, 2, 3, 4];` -> this doesn't work, error: ` CompilationError: Expected an identifier, but got 'var'.`

They also would like to be able to use the expression evaluation bar when they aren't paused at a breakpoint.

@annagrin - I'm guessing this will be a fair amount of work. Do you know what is needed to support this? Thanks!

Contributor guide

Open the contributing guide

Research direction

Start with the Dart DevTools expression evaluation bar and reproduce the two examples in the issue, both paused at a breakpoint and while running. Trace how expressions are compiled and evaluated, then determine the design needed for declarations, arbitrary code execution, and evaluation without a paused breakpoint; done means these scenarios work as requested.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.