/**
 * observe-plus.js - https://github.com/podefr/observe-plus
 * Copyright(c) 2014-2015 Olivier Scherrer <pode.fr@gmail.com>
 * MIT Licensed
 */
"use strict";

module.exports = {
    // This stuff works but it's a mess.
    // At least it's hidden in this file
    create: function (ev, properties) {
        var copy = JSON.parse(JSON.stringify(ev));

        copy.object = properties.rootObject;

        if ("name" in copy) {
            copy.name = properties.namespacedName;
            if (copy.type != "add" && properties.eventType == "name") {
               copy.oldValue = properties.oldValue;
            }
        } else {
            copy.index = properties.namespacedName;
        }

        if ("value" in properties) {
            copy.value = properties.value;
        }

        return copy;
    }
};
@@ -155,16 +155,192 @@
 rict%22;%0A%0A
+function shallowCopy(object) %7B%0A    return Object.keys(object).reduce(function (copy, property) %7B%0A        copy%5Bproperty%5D = object%5Bproperty%5D;%0A        return copy;%0A    %7D, %7B%7D);%0A%7D%0A%0A
 module.e
@@ -495,38 +495,23 @@
 y = 
-JSON.parse(JSON.stringif
+shallowCop
 y(ev)
-)
 ;%0A%0A 

copy via reduce instead of JSON stringify/parse for performance