Cheat on the remote object's constructor name.
This commit is contained in:
parent
ddad3e4846
commit
a7ddf57620
1 changed files with 5 additions and 3 deletions
|
@ -1,4 +1,5 @@
|
|||
ipc = require 'ipc'
|
||||
v8_util = process.atom_binding 'v8_util'
|
||||
|
||||
generateFromPainObject = (plain) ->
|
||||
switch plain.type
|
||||
|
@ -6,13 +7,12 @@ generateFromPainObject = (plain) ->
|
|||
when 'value' then plain.value
|
||||
when 'array' then (generateFromPainObject(el) for el in plain.members)
|
||||
else
|
||||
ret = {}
|
||||
if plain.type is 'function'
|
||||
# A shadow class to represent the remote function object.
|
||||
ret =
|
||||
class RemoteObject
|
||||
class RemoteFunction
|
||||
constructor: ->
|
||||
if @constructor == RemoteObject
|
||||
if @constructor == RemoteFunction
|
||||
# Constructor call.
|
||||
obj = ipc.sendChannelSync 'ATOM_INTERNAL_CONSTRUCTOR', plain.id, Array::slice.call(arguments)
|
||||
|
||||
|
@ -24,6 +24,8 @@ generateFromPainObject = (plain) ->
|
|||
# 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
|
||||
|
|
Loading…
Add table
Reference in a new issue