Structural matching for JavaScript