// TODO(toiletjs): Use React. See #4 (v2).
class AbstractBaseFart {
  /**
   * Initializes farts.
   * @param {boolean=} opt_isWet Whether the fart is wet. (Optional)
   */
  constructor(opt_isWet) {
    this.isWet = Boolean(opt_isWet);
  }
  
  /**
   * Farts.
   */
  fart() {}
}

class Fart extends AbstractBaseFart {
  /**
   * Farts.
   */
  fart() {
    if (this.isWet) {
      console.log('pfffffpfpfpffffff?');
    } else {
      console.log('poooOOOot.');
    }
  }
}

class Shart extends AbstractBaseFart {
  /**
   * Sharts.
   */
  fart() {
    // Note that this.isWet is not checked here as all sharts are considered wet.
    console.log('plfffffpfffpllffff');
  }
}

@@ -160,16 +160,111 @@
 tional)%0A
+   * @param %7Bboolean=%7D opt_isSilentButDeadly Whether the fart is silent but deadly. (Optional)%0A
    */%0A  
@@ -280,24 +280,47 @@
 or(opt_isWet
+, opt_isSilentButDeadly
 ) %7B%0A    this
@@ -348,16 +348,77 @@
 isWet);%0A
+    this.isSilentButDeadly = Boolean(opt_isSilentButDeadly);%0A
   %7D%0A  %0A 
@@ -451,24 +451,58 @@
 art() %7B%7D%0A%7D%0A%0A
+class FatalFart extends Error %7B%7D%0A%0A
 class Fart e
@@ -558,24 +558,272 @@
 %0A  fart() %7B%0A
+    if (this.isSilentButDeadly) %7B%0A      // Output nothing for now...%0A      console.log('');%0A      // The fart becomes fatal after a 1.3 second MTTW (mean time to waft).%0A      setTimeout(() =%3E %7B%0A        throw new FatalFart();%0A      %7D, 1300); %0A    %7D%0A
     if (this

implement isSilentButDeadly