lib/jsduck/js/class.rb in jsduck-troopjs-0.0.3 vs lib/jsduck/js/class.rb in jsduck-troopjs-0.0.4
- old
+ new
@@ -104,10 +104,18 @@
# defaults
cls.merge!(Js::ExtDefine.defaults)
cls[:members] = []
cls[:code_type] = :ext_define
- ast["arguments"][1].each_property do |key, value, pair|
+ definition_node = ast["arguments"][1]
+
+ # Support both function and object notation
+ if definition_node.function_expression?
+ definition_node = definition_node.return_statement_expression
+ return if definition_node.nil?
+ end
+
+ definition_node.each_property do |key, value, pair|
if tag = Js::ExtDefine.get_tag_by_pattern(key)
tag.parse_ext_define(cls, value)
else
case key
when "config"