code: function movePropsToBackingStore(instance) {
  
      var bs = getBackingStore(instance);
      var proto = Object.getPrototypeOf(instance);
      var stype = proto.entityType || proto.complexType;
      stype.getProperties().forEach(function (prop) {
        var propName = prop.name;
        if (prop.isUnmapped) {
          // insure that any unmapped properties that were added after entityType
          // was first created are wrapped with a property descriptor.
          if (!core.getPropertyDescriptor(proto, propName)) {
            var descr = makePropDescription(proto, prop);
            Object.defineProperty(proto, propName, descr);
          }
        }
        if (!instance.hasOwnProperty(propName)) return;
        // pulls off the value, removes the instance property and then rewrites it via ES5 accessor
        var value = instance[propName];
        delete instance[propName];
        instance[propName] = value;
      });
      return bs;
    }
docs: This method is called when an instance is first created via materialization or createEntity. this method cannot be called while a 'defineProperty' accessor is executing because of IE bug mentioned above.