-// Create a new JSVirtualMachine.
-- (id)init;
-
-// addManagedReference:withOwner and removeManagedReference:withOwner allow
-// clients of JSVirtualMachine to make the JavaScript runtime aware of
-// arbitrary external Objective-C object graphs. The runtime can then use
-// this information to retain any JavaScript values that are referenced
-// from somewhere in said object graph.
-//
-// For correct behavior clients must make their external object graphs
-// reachable from within the JavaScript runtime. If an Objective-C object is
-// reachable from within the JavaScript runtime, all managed references
-// transitively reachable from it as recorded with
-// addManagedReference:withOwner: will be scanned by the garbage collector.
-//
+/*!
+@methodgroup Creating New Virtual Machines
+*/
+/*!
+@method
+@abstract Create a new JSVirtualMachine.
+*/
+- (instancetype)init;
+
+/*!
+@methodgroup Memory Management
+*/
+/*!
+@method
+@abstract Notify the JSVirtualMachine of an external object relationship.
+@discussion Allows clients of JSVirtualMachine to make the JavaScript runtime aware of
+ arbitrary external Objective-C object graphs. The runtime can then use
+ this information to retain any JavaScript values that are referenced
+ from somewhere in said object graph.
+
+ For correct behavior clients must make their external object graphs
+ reachable from within the JavaScript runtime. If an Objective-C object is
+ reachable from within the JavaScript runtime, all managed references
+ transitively reachable from it as recorded using
+ -addManagedReference:withOwner: will be scanned by the garbage collector.
+@param object The object that the owner points to.
+@param owner The object that owns the pointed to object.
+*/