From 44140343f489842ec9ca92b072601bf7de7b4abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Sat, 16 Aug 2008 00:25:09 +0000 Subject: [PATCH] Core: Modified widget factory to prevent access to internal methods through the API (internal methods are any methods preceded by an underscore). Provides framework for #3188. --- ui/ui.core.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ui/ui.core.js b/ui/ui.core.js index fa9b0e919..b101ee524 100644 --- a/ui/ui.core.js +++ b/ui/ui.core.js @@ -38,12 +38,19 @@ $.widget = function(name, prototype) { var isMethodCall = (typeof options == 'string'), args = Array.prototype.slice.call(arguments, 1); + // prevent calls to internal methods + if (isMethodCall && options.substring(0, 1) == '_') { + return this; + } + + // handle getter methods if (isMethodCall && getter(namespace, name, options)) { var instance = $.data(this[0], name); return (instance ? instance[options].apply(instance, args) : undefined); } + // handle initialization and non-getter methods return this.each(function() { var instance = $.data(this, name); if (isMethodCall && instance && $.isFunction(instance[options])) {