               # Function call.
               ret = ipc.sendChannelSync 'ATOM_INTERNAL_FUNCTION_CALL', plain.id, Array::slice.call(arguments)
               return generateFromPainObject ret
+      else
+        ret = v8_util.createObjectWithName plain.name
 
       # Polulate delegate members.
       for member in plain.members

ipc = require 'ipc'

generateFromPainObject = (plain) ->
  switch plain.type

    when 'value' then plain.value
    when 'array' then (generateFromPainObject(el) for el in plain.members)
    else
      if plain.type is 'function'
        # A shadow class to represent the remote function object.
        ret =
        class RemoteFunction
          constructor: ->
            if @constructor == RemoteFunction
              # Constructor call.
              obj = ipc.sendChannelSync 'ATOM_INTERNAL_CONSTRUCTOR', plain.id, Array::slice.call(arguments)

