Method: Fable::CallStack::Thread#to_hash

Defined in:
lib/fable/call_stack.rb

#to_hashObject



319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
# File 'lib/fable/call_stack.rb', line 319

def to_hash
  export = {}

  export["callstack"] = []

  call_stack.each do |element|
    element_export = {}
    if !element.current_pointer.null_pointer?
      element_export["cPath"] = element.current_pointer.container.path.to_s
      element_export["idx"] = element.current_pointer.index
    end

    element_export["exp"] = element.in_expression_evaluation?
    element_export["type"] = PushPopType::TYPES[element.type]

    if element.temporary_variables.any?
      element_export["temp"] = Serializer.convert_hash_of_runtime_objects(element.temporary_variables)
    end

    export["callstack"] << element_export
  end

  export["threadIndex"] = thread_index

  if !previous_pointer.null_pointer?
    export["previousContentObject"] = self.previous_pointer.resolve!.path.to_s
  end

  export
end