"use strict";
var Clipboard = {
  textArea: null,
  getTextArea: function() {
    var el = this.textArea;
    if (! el) {
      el = this.textArea = document.createElement("textarea");
      el.style.position = "absolute";
      el.style.left = "-100%";
    }
    return el;
  },
  copy: function(data) {
    var textArea = this.getTextArea();
    textArea.value = data;
    document.documentElement.appendChild(textArea);
    textArea.select();
    document.execCommand("Copy");
    textArea.remove();
    textArea.value = "";
  },
  paste: function() {
    var textArea = this.getTextArea(), value;
    document.documentElement.appendChild(textArea);
    textArea.focus();
    document.execCommand("Paste");
    value = textArea.value;
    textArea.remove();
    textArea.value = "";
    return value;
  }
};

@@ -31,26 +31,9 @@
 %7B%0A  
-textArea: null,%0A  
+_
 getT
@@ -70,66 +70,8 @@
 el =
- this.textArea;%0A    if (! el) %7B%0A      el = this.textArea =
  doc
@@ -103,26 +103,24 @@
 area%22);%0A    
-  
 el.style.pos
@@ -139,18 +139,16 @@
 olute%22;%0A
-  
     el.s
@@ -171,16 +171,60 @@
 0%25%22;%0A   
+ this._getTextArea = function() %7B return el;
  %7D%0A    r
@@ -279,32 +279,33 @@
 textArea = this.
+_
 getTextArea();%0A 
@@ -339,39 +339,28 @@
    document.
-documentElement
+body
 .appendChild
@@ -527,16 +527,17 @@
  = this.
+_
 getTextA
@@ -567,23 +567,12 @@
 ent.
-documentElement
+body
 .app

rework Clipboard.getTextArea into @_getTextArea