goal-directed abstract interpretation for javascript

1
Goal-Directed Abstract Interpretation for JavaScript prop o[prop] var o = {foo : function(){…}, bar : function(){…}, baz : function() {… ; throw ‘error’;} }; var prop = someFunction(); o[prop](); source program Heuristically suspicious abstract state Potential Refutation Type Analyzer for JavaScript (TAJS) ThresherJS: Goal-Directed Abstract Interpretation ≠ො Over-approximation in someFunction causes analysis to infer as prop’s value Spurious call edges!

Upload: others

Post on 06-Apr-2022

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Goal-Directed Abstract Interpretation for JavaScript

Goal-Directed Abstract Interpretation for JavaScript

prop

o[prop]

var o = {foo : function(){…},

bar : function(){…},

baz : function()

{… ; throw ‘error’;} };

var prop = someFunction();

o[prop]();

sourceprogram

Heuristically suspicious

abstract state

Potential Refutation

Type Analyzer for

JavaScript (TAJS)

ThresherJS: Goal-Directed

Abstract Interpretation

ෝ𝑝 ≠ ො𝑝

Over-approximation in

someFunction causes analysis to infer ⊤ as prop’s value

Spurious call edges!