anchor.diff:  			false
   	end.
   
  +%% private
   
  -% gen_server2 
  +mailbox(This, Emitter) ->
  +	receive Msg -> This:call(Emitter, ["message",Msg]) end, 
  +	mailbox(This, Emitter).
   
  -handle_call(_Request, _From, State) ->
  -	{noreply, State}.
  -
  -handle_cast(_Msg, State) ->
  -	{noreply, State}.
  -
  -handle_info(Info, {This,Emitter}=State) ->
  -	This:call(Emitter,["info",Info]),
  -	{noreply, State}.
  -
  -terminate(_Reason, _State) ->
  -	ok.
  -
  -code_change(_OldVsn, State, _Extra) ->
  -	{ok, State}.
  -
  -
  -%% private
   
   untaint({erlv8_object, _}=O) ->
   	{erlv8_object,lists:map(fun ({Key, Val}) ->
  
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: 	ok.
  
  exports(_VM) ->
   	?V8Obj([{"Mailbox", fun new_mailbox/2},
  			{"send", fun send/2}]).
  	
  new_mailbox(#erlv8_fun_invocation{}=I,[]) ->
  	new_mailbox(I,[noname]);
  
  