export default function (obj, props) {
  Object.keys(props).forEach(function (name) {
    const prop = props[name];
    const descrptor = Object.getOwnPropertyDescriptor(obj, name);
    const isDinosaurBrowser = name !== 'arguments' && name !== 'caller' && 'value' in prop;
    const isConfigurable = !descrptor || descrptor.configurable;

    if (isConfigurable) {
      Object.defineProperty(obj, name, prop);
    } else if (isDinosaurBrowser) {
      obj[name] = prop.value;
    }
  });
}

@@ -120,24 +120,25 @@
  const descr
+i
 ptor = Objec
@@ -176,16 +176,16 @@
  name);%0A
-
     cons
@@ -297,24 +297,25 @@
 ble = !descr
+i
 ptor %7C%7C desc
@@ -315,16 +315,17 @@
 %7C%7C descr
+i
 ptor.con
@@ -334,16 +334,75 @@
 gurable;
+%0A    const isWritable = !descriptor %7C%7C descriptor.writable;
 %0A%0A    if
@@ -467,16 +467,16 @@
  prop);%0A
-
     %7D el
@@ -499,16 +499,30 @@
 rBrowser
+ && isWritable
 ) %7B%0A    

Fix variable spelling error and ensure prop is writable before applying it.