You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by ps...@apache.org on 2010/03/22 12:20:16 UTC

svn commit: r926032 - /incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js

Author: psharples
Date: Mon Mar 22 11:20:16 2010
New Revision: 926032

URL: http://svn.apache.org/viewvc?rev=926032&view=rev
Log:
Partial fix for IE 8.  Wookie wrapper now does not produce an error alert when defining getters/setters, although the setter does not propagate the updates back to the wookie backend. See WOOKIE-44

Modified:
    incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js

Modified: incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js?rev=926032&r1=926031&r2=926032&view=diff
==============================================================================
--- incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js (original)
+++ incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js Mon Mar 22 11:20:16 2010
@@ -56,9 +56,16 @@ WidgetPreferences = new function WidgetP
             }
         } else {
         	// Setup prototype methods
-            eval("Widget.preferences.__defineGetter__('"+key+"', function(){return Widget.preferences.getItem('"+key+"')})");
-            eval("Widget.preferences.__defineSetter__('"+key+"', function(v){return Widget.preferences.setItem('"+key+"',v)})");
-            eval("Widget.preferences.prefs."+key+"=pref");
+        	try{
+        		eval("Widget.preferences.__defineGetter__('"+key+"', function(){return Widget.preferences.getItem('"+key+"')})");
+        		eval("Widget.preferences.__defineSetter__('"+key+"', function(v){return Widget.preferences.setItem('"+key+"',v)})");
+        		eval("Widget.preferences.prefs."+key+"=pref");
+            }
+            // Catch IE 8 error. See WOOKIE-44 
+            catch(err){
+            	eval("Widget.preferences." + key + "='" + value + "'");
+				eval("Widget.preferences.prefs." + key + "=pref");
+            }
         }
 		this.prefs[key] = pref;
 		Widget.setPreferenceForKey(key, value);
@@ -155,9 +162,16 @@ var Widget = {	
 		for (i in map){
             obj = map[i];
             key = obj["dkey"];
-			eval("Widget.preferences.__defineGetter__('"+key+"', function(){return Widget.preferences.getItem('"+key+"')})");
-            eval("Widget.preferences.__defineSetter__('"+key+"', function(v){return Widget.preferences.setItem('"+key+"',v)})");
-            eval("this.preferences.prefs."+key+"=obj");
+            try{
+				eval("Widget.preferences.__defineGetter__('"+key+"', function(){return Widget.preferences.getItem('"+key+"')})");
+            	eval("Widget.preferences.__defineSetter__('"+key+"', function(v){return Widget.preferences.setItem('"+key+"',v)})");
+            	eval("this.preferences.prefs."+key+"=obj");
+            }
+            // Catch IE 8 error. See WOOKIE-44
+            catch(err){
+            	eval("Widget.preferences." + key + "='" + obj["dvalue"] + "'");
+            	eval("this.preferences.prefs."+key+"=obj");
+            }
 		}
 		this.preferences.calcLength();
 	},