classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet
classAnimal{eat(){return"Rax eat";}}classDogextendsAnimal{sound(){return"Dog barks";}}classCatextendsAnimal{sound(){return"Cat meows";}}classHome{constructor(){this.pets=[];// Could be a `new Set` for better efficiency}adoptPet(animal){if(this.pets.includes(animal)){thrownewError("Cannot adopt the same pet twice");}this.pets.push(animal);}makeAllSounds(){for(let pet ofthis.pets){console.log(pet.sound());}}}var home =newHome();var dog1 =newDog();var dog2 =newDog();var cat =newCat();
home.makeAllSounds();// this doesn't give/return any result/dataconsole.log("== Adding dog ==");
home.adoptPet(dog1);
home.makeAllSounds();// this prints: Dog barksconsole.log("== Adding cat ==");
home.adoptPet(cat);
home.makeAllSounds();// this prints : Dog barks / Cat meowsconsole.log("== Adding dog ==");
home.adoptPet(dog2);
home.makeAllSounds();// ...
home.adoptPet(dog1)// not ok!Run code snippet