Skip to content

Commit 61f8a84

Browse files
authored
[DI] Fix isDefined support in probe conditions (#5521)
1 parent 5dc76ab commit 61f8a84

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

packages/dd-trace/src/debugger/devtools_client/condition.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function compile (node) {
5050
} else if (type === 'isDefined') {
5151
return `(() => {
5252
try {
53-
${value}
53+
${compile(value)}
5454
return true
5555
} catch {
5656
return false

packages/dd-trace/test/debugger/devtools_client/condition-test-cases.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -630,18 +630,19 @@ const typeAndDefinitionChecks = [
630630
true
631631
],
632632

633-
[{ isDefined: 'foo' }, { bar: 42 }, false],
634-
[{ isDefined: 'bar' }, { bar: 42 }, true],
635-
[{ isDefined: 'bar' }, { bar: undefined }, true],
636-
{ ast: { isDefined: 'foo' }, suffix: 'const foo = undefined', expected: false },
637-
{ ast: { isDefined: 'foo' }, suffix: 'const foo = 42', expected: false },
638-
{ ast: { isDefined: 'foo' }, suffix: 'let foo', expected: false },
639-
{ ast: { isDefined: 'foo' }, suffix: 'let foo = undefined', expected: false },
640-
{ ast: { isDefined: 'foo' }, suffix: 'let foo = 42', expected: false },
641-
{ ast: { isDefined: 'foo' }, suffix: 'var foo', expected: true }, // var is hoisted
642-
{ ast: { isDefined: 'foo' }, suffix: 'var foo = undefined', expected: true }, // var is hoisted
643-
{ ast: { isDefined: 'foo' }, suffix: 'var foo = 42', expected: true }, // var is hoisted
644-
{ ast: { isDefined: 'foo' }, suffix: '', expected: false }
633+
[{ isDefined: { ref: 'foo' } }, { bar: 42 }, false],
634+
[{ isDefined: { ref: 'bar' } }, { bar: 42 }, true],
635+
[{ isDefined: { ref: 'bar' } }, { bar: undefined }, true],
636+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'const foo = undefined', expected: false },
637+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'const foo = 42', expected: false },
638+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'let foo', expected: false },
639+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'let foo = undefined', expected: false },
640+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'let foo = 42', expected: false },
641+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'var foo', expected: true }, // var is hoisted
642+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'var foo = undefined', expected: true }, // var is hoisted
643+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'var foo = 42', expected: true }, // var is hoisted
644+
{ ast: { isDefined: { ref: 'foo' } }, suffix: 'function foo () {}', expected: true }, // function is hoisted
645+
{ ast: { isDefined: { ref: 'foo' } }, suffix: '', expected: false }
645646
]
646647

647648
function overloadPropertyWithGetter (obj, propName) {

0 commit comments

Comments
 (0)