Class: JsDuck::Js::Fires

Inherits:
Object
  • Object
show all
Includes:
Util::Singleton
Defined in:
lib/jsduck/js/fires.rb

Overview

Looks the AST of a FunctionDeclaration or FunctionExpression for uses of this.fireEvent().

Instance Method Summary collapse

Methods included from Util::Singleton

included

Instance Method Details

#detect(function_node) ⇒ Object

Returns array of event names fired by the given function. When no events fired, empty array is returned.



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/jsduck/js/fires.rb', line 14

def detect(function_node)
  @traverser = Js::ScopedTraverser.new

  events = []
  @traverser.traverse(function_node["body"]) do |node|
    if fire_event?(node)
      events << node["arguments"][0].to_value
    end
  end

  events.sort.uniq
end