Skip to content

[DI] Conditions: Allow testing of primitives with instanceof#5541

Merged
watson merged 2 commits intomasterfrom
watson/DEBUG-2626/probe-condition-instanceof-primitives
Apr 7, 2025
Merged

[DI] Conditions: Allow testing of primitives with instanceof#5541
watson merged 2 commits intomasterfrom
watson/DEBUG-2626/probe-condition-instanceof-primitives

Conversation

@watson
Copy link
Copy Markdown
Collaborator

@watson watson commented Apr 7, 2025

What does this PR do?

Check for magic strings on the right side of the instanceof operator and use a typeof check instead if any of the primitive types are being tested (string, number, symbol etc).

Motivation

Otherwise it wouldn't be possible to check the type of a variable against a primitive type.

Plugin Checklist

Additional Notes

@watson watson requested review from a team as code owners April 7, 2025 11:45
@watson watson self-assigned this Apr 7, 2025
@watson watson added semver-patch debugger Dynamic Instrumentation & Live Debugger labels Apr 7, 2025
Copy link
Copy Markdown
Collaborator Author

watson commented Apr 7, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@watson watson changed the title [DI] Allow testing of primitives with instanceof [DI] Conditions: Allow testing of primitives with instanceof Apr 7, 2025
@watson watson requested a review from shatzi April 7, 2025 11:52
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Apr 7, 2025

Benchmarks

Benchmark execution time: 2025-04-07 12:09:54

Comparing candidate commit 7af4f6a in PR branch watson/DEBUG-2626/probe-condition-instanceof-primitives with baseline commit ca02e1d in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 948 metrics, 15 unstable metrics.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2025

Overall package size

Self size: 9.24 MB
Deduped: 101.55 MB
No deduping: 102.06 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.5.0 | 29.83 MB | 29.83 MB | | @datadog/native-appsec | 8.5.1 | 19.26 MB | 19.27 MB | | @datadog/native-iast-taint-tracking | 3.3.0 | 13.77 MB | 13.78 MB | | @datadog/pprof | 5.6.0 | 9.79 MB | 10.16 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.4.0 | 2.77 MB | 5.42 MB | | @datadog/wasm-js-rewriter | 3.1.0 | 2.37 MB | 2.52 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.13.1 | 117.64 kB | 839.26 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | dc-polyfill | 0.1.6 | 24.56 kB | 24.56 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 7, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 79.26%. Comparing base (ca02e1d) to head (7af4f6a).
Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5541      +/-   ##
==========================================
- Coverage   79.35%   79.26%   -0.09%     
==========================================
  Files         514      512       -2     
  Lines       23271    23176      -95     
==========================================
- Hits        18467    18371      -96     
- Misses       4804     4805       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@datadog-datadog-prod-us1
Copy link
Copy Markdown

Datadog Report

Branch report: watson/DEBUG-2626/probe-condition-instanceof-primitives
Commit report: a469d51
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 922 Passed, 0 Skipped, 10m 51.85s Total Time

@tylfin
Copy link
Copy Markdown
Member

tylfin commented Apr 7, 2025

We mention instanceof in the documentation, but it might be worth expanding it a bit given our discussions to make sure we're clearly documenting the user expectations.

@watson watson merged commit 5573c12 into master Apr 7, 2025
427 checks passed
@watson watson deleted the watson/DEBUG-2626/probe-condition-instanceof-primitives branch April 7, 2025 14:24
@wconti27 wconti27 mentioned this pull request Apr 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debugger Dynamic Instrumentation & Live Debugger semver-patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants