Merge "Fix error when try assign on getter with existing property"
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface.js b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface.js
index 6f9268c..4286fc9 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface.js
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface.js
@@ -147,13 +147,16 @@
       //
       // This clone and getter can be removed after plugins migrate to use
       // info.mergeable.
-      const change = Object.assign({
+      //
+      // assign on getter with existing property will report error
+      // see Issue: 12286
+      const change = Object.assign({}, detail.change, {
         get mergeable() {
           console.warn('Accessing change.mergeable from SHOW_CHANGE is ' +
               'deprecated! Use info.mergeable instead.');
-          return detail.info.mergeable;
+          return detail.info && detail.info.mergeable;
         },
-      }, detail.change);
+      });
       const patchNum = detail.patchNum;
       const info = detail.info;