]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
updates unregisterPlugin fn to null out props on plugin objects, removes unused code...
authorChris Oyler <chris@zurb.com>
Thu, 17 Dec 2015 20:55:20 +0000 (12:55 -0800)
committerChris Oyler <chris@zurb.com>
Thu, 17 Dec 2015 20:55:20 +0000 (12:55 -0800)
js/foundation.core.js

index cbf252572b0369e3986776e129ab7f27cab6403d..6bcac1aef7484f8ff77a7251f80d2bf3c3ae20d8 100644 (file)
@@ -51,8 +51,8 @@ var Foundation = {
    * @param {Object} plugin - an instance of a plugin, usually `this` in context.
    * @fires Plugin#init
    */
-  registerPlugin: function(plugin){
-    var pluginName = functionName(plugin.constructor).toLowerCase();
+  registerPlugin: function(plugin, name){
+    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();
 
     plugin.uuid = this.GetYoDigits(6, pluginName);
 
@@ -80,13 +80,15 @@ var Foundation = {
     var pluginName = functionName(plugin.constructor).toLowerCase();
 
     delete this._activePlugins[plugin.uuid];
-    plugin.$element.removeAttr('data-' + pluginName)
+    plugin.$element.removeAttr('data-' + pluginName).removeData('zf-plugin')
           /**
            * Fires when the plugin has been destroyed.
            * @event Plugin#destroyed
            */
           .trigger('destroyed.zf.' + pluginName);
-
+    for(prop in plugin){
+      plugin[prop] = null;//clean up script to prep for garbage collection.
+    }
     return;
   },
 
@@ -363,7 +365,7 @@ function functionName(fn) {
 function parseValue(str){
   if(/true/.test(str)) return true;
   else if(/false/.test(str)) return false;
-  else if(!isNaN(str * 1)/* && typeof (str * 1) === "number"*/) return parseFloat(str);
+  else if(!isNaN(str * 1)) return parseFloat(str);
   return str;
 }
 // Convert PascalCase to kebab-case