Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

"Reparou que a mensagem do proxy é exibida duas vezes?" Eu não.

Não recebi a mensagem duplicada porque o trecho abaixo está diferente da resposta do exercício:

console.log(`Valor antigo de ${prop}:...
console.log(`Valor antigo ${target[prop]}...

Não ficou 100% claro porque com target[prop] duplica e com prop somente não.

O código que escrevi completo no exercício foi:

class Funcionario {

    constructor(email) {
        this._email = email;
    }

    get email() {
        return this._email;
    }

    set email(email) {
        this._email = email;
    }
}

let funcionario = new Proxy(new Funcionario('rodrigo@123.com.br'),{

            set (target,prop,value,receiver){
                console.log(`Valor antigo de ${prop}: ${target[prop]}, novo valor de ${prop}: ${value}`);
            }
        });

funcionario.email = 'rodrigo@321.com.br';

O código postado como resposta foi

class Funcionario {

    constructor(email) {
        this._email = email;
    }

    get email() {
        return this._email;
    }

    set email(email) {
        this._email = email;
    }
}

let funcionario= new Proxy(new Funcionario('abc@abc.com'),  {

    set(target, prop, value, receiver) {
        console.log(prop); // imprimindo a propriedade que está sendo alterada
        console.log(`Valor antigo ${target[prop]}, valor atual: ${value}`);
        return Reflect.set(target, prop, value, receiver);
    }
});

funcionario.email = 'aaa@aaa.com';
1 resposta
solução!

"Reparou que a mensagem do proxy é exibida duas vezes?"

Rodrigo , isso no código que dei como resposta, não no seu. Veja que há a instrução Reflect.set... Que não existe no seu.