anchor.diff:  -export([exports/1,init/1]).
   -behaviour(erlv8_module).
   -include_lib("erlv8/include/erlv8.hrl").
  -%-behaviour(gen_server2).
  -%% gen_server2 callbacks
  --export([handle_call/3, handle_cast/2, handle_info/2,
  -		 terminate/2, code_change/3]).
  -
   
   init({gen_server2,This, Emitter}) ->
   	{ok, {This, Emitter}};
  
positive.code: 
  	EventEmitterCtor:call(This,[]),
  
  	This:set_prototype(prototype()),
  	Prototype = This:get_prototype(),
  	Prototype:set_prototype(beamjs_mod_events:prototype_EventEmitter()), %% FIXME?
  	Emitter = This:get_value("emit"),
  
  	{ok, Pid} =
  	case OptsOrName of
  		noname ->
  			gen_server2:start(?MODULE, {gen_server2, This, Emitter}, []);
  		Name when is_list(Name) ->
  			gen_server2:start({local,list_to_atom(Name)}, ?MODULE, {gen_server2, This, Emitter}, []);
  		{erlv8_object,_,_} ->
  			case  OptsOrName:get_value("global") of
  				undefined ->
  					{throw, {error, "new Mailbox() accepts either zero arguments or a string, or {global: string}"}};
  				GlobalName ->
  					gen_server2:start({global,GlobalName}, ?MODULE, {gen_server2, This, Emitter}, [])
  			end
  	end,
  	This:set_hidden_value("mailboxServer", Pid),
  	undefined.
  
  send(#erlv8_fun_invocation{},[Name, Data]) when is_list(Name) ->
  	list_to_existing_atom(Name) ! Data;
  
negative.code: 			false
  	end.
  
  %% private
  
  mailbox(This, Emitter) ->
  	receive Msg -> This:call(Emitter, ["message",Msg]) end, 
  	mailbox(This, Emitter).
  
  
  untaint({erlv8_object, _}=O) ->
  	{erlv8_object,lists:map(fun ({Key, Val}) ->
  