Revision: 5449
Author: [email protected]
Date: Thu Jun 13 15:57:55 2013
Log: Replace domitaModules with lexical variables.
https://codereview.appspot.com/10236047
domitaModules was introduced at a time when attachDocument was a
top-level function, and now has no advantage over lexical variables,
nor is it currently used in any consistent fashion.
[email protected]
http://code.google.com/p/google-caja/source/detail?r=5449
Modified:
/trunk/src/com/google/caja/plugin/domado.js
=======================================
--- /trunk/src/com/google/caja/plugin/domado.js Thu Jun 13 12:07:58 2013
+++ /trunk/src/com/google/caja/plugin/domado.js Thu Jun 13 15:57:55 2013
@@ -124,13 +124,8 @@
});
}
- // TODO(kpreid): If not used for the upcoming
modularity-of-element-tamings
- // refactoring, eliminate the domitaModules object.
- var domitaModules = {};
-
- domitaModules.proxiesAvailable = typeof Proxy !== 'undefined';
- domitaModules.proxiesInterceptNumeric = domitaModules.proxiesAvailable &&
- (function() {
+ var proxiesAvailable = typeof Proxy !== 'undefined';
+ var proxiesInterceptNumeric = proxiesAvailable && (function() {
var handler = {
toString: function() { return 'proxiesInterceptNumeric test
handler'; },
getOwnPropertyDescriptor: function(name) {
@@ -159,14 +154,14 @@
}
})();
- domitaModules.getPropertyDescriptor = function (o, n) {
+ function getPropertyDescriptor(o, n) {
if (o === null || o === undefined) {
return undefined;
} else {
return Object.getOwnPropertyDescriptor(o, n)
- || domitaModules.getPropertyDescriptor(Object.getPrototypeOf(o),
n);
+ || getPropertyDescriptor(Object.getPrototypeOf(o), n);
}
- };
+ }
/**
* The Caja WeakMap emulation magic property name.
@@ -320,7 +315,7 @@
// Find the weakMapMagicName. This occurs after ProxyHandler is defined
// because it uses ProxyHandler.
(function() {
- if (!domitaModules.proxiesAvailable) {
+ if (!proxiesAvailable) {
// unobservable so doesn't matter
return;
}
@@ -456,13 +451,12 @@
*
* @param aCallback some user-supplied "function-like" callback.
*/
- domitaModules.ensureValidCallback =
- function (aCallback) {
+ function ensureValidCallback(aCallback) {
if ('function' !== typeof aCallback) {
throw new Error('Expected function not ' + typeof aCallback);
}
- };
+ }
/**
* This combines trademarks with amplification, and is really a thin
wrapper
@@ -481,7 +475,7 @@
* ability for one object to access the private state of other similar
* objects).
*/
- domitaModules.Confidence = (function () {
+ var Confidence = (function () {
function Confidence(typename) {
var table = new WeakMap();
@@ -911,7 +905,7 @@
}());
/** XMLHttpRequest or an equivalent on IE 6. */
- domitaModules.XMLHttpRequestCtor = function (makeDOMAccessible,
+ function XMLHttpRequestCtor(makeDOMAccessible,
XMLHttpRequest, ActiveXObject, XDomainRequest) {
if (XMLHttpRequest &&
makeDOMAccessible(new XMLHttpRequest()).withCredentials !==
undefined) {
@@ -967,15 +961,14 @@
} else {
throw new Error('ActiveXObject not available');
}
- };
+ }
- domitaModules.TameXMLHttpRequest = function(
+ function TameXMLHttpRequest(
taming,
rulebreaker,
xmlHttpRequestMaker,
naiveUriPolicy,
getBaseURL) {
- var Confidence = domitaModules.Confidence;
// See http://www.w3.org/TR/XMLHttpRequest/
// TODO(ihab.awad): Improve implementation (interleaving, memory leaks)
@@ -1147,12 +1140,12 @@
}))
});
return cajaVM.def(TameXMLHttpRequest);
- };
+ }
// TODO(kpreid): Review whether this has unnecessary features (as we're
// statically generating Style accessors rather than proxy/handler-ing
// Domita did).
- domitaModules.CssPropertiesCollection = function(aStyleObject) {
+ function CssPropertiesCollection(aStyleObject) {
var canonicalStylePropertyNames = {};
// Maps style property names, e.g. cssFloat, to property names, e.g.
float.
var cssPropertyNames = {};
@@ -1199,7 +1192,7 @@
}
}
};
- };
+ }
function TamingClassTable() {
var hop = Object.prototype.hasOwnProperty;
@@ -1294,8 +1287,6 @@
return prototypeNames.get(prototype);
};
}
-
- cajaVM.def(domitaModules);
var NOT_EDITABLE = "Node not editable.";
var UNSAFE_TAGNAME = "Unsafe tag name.";
@@ -1364,8 +1355,6 @@
var makeDOMAccessible = rulebreaker.makeDOMAccessible;
var makeFunctionAccessible = rulebreaker.makeFunctionAccessible;
- var Confidence = domitaModules.Confidence;
-
// value transforming/trivial functions
function noop() { return undefined; }
function identity(x) { return x; }
@@ -1923,7 +1912,7 @@
*/
function finishNode(node) {
nodeAmplify(node, function(privates) {
- if (domitaModules.proxiesAvailable && privates.proxyHandler) {
+ if (proxiesAvailable && privates.proxyHandler) {
// The proxy construction is deferred until now because the
ES5/3
// implementation of proxies requires that the proxy's
prototype is
// frozen.
@@ -3060,8 +3049,7 @@
// NamedNodeMap is a NodeList + live string-named properties;
therefore we
// can't just use ArrayLike.
var TameNamedNodeMap, namedNodeMapsAreLive;
- if (domitaModules.proxiesAvailable &&
- domitaModules.proxiesInterceptNumeric) {
+ if (proxiesAvailable && proxiesInterceptNumeric) {
namedNodeMapsAreLive = true;
/**
* @param {NamedNodeMap} feral
@@ -3477,7 +3465,7 @@
}
function makeEventHandlerWrapper(thisNode, listener) {
- domitaModules.ensureValidCallback(listener);
+ ensureValidCallback(listener);
function wrapper(event) {
return plugin_dispatchEvent(
thisNode, event, rulebreaker.getId(tameWindow), listener,
@@ -3677,7 +3665,7 @@
nodeAmplify(this, function(privates) {
privates.feral = node;
- if (domitaModules.proxiesAvailable && opt_proxyType) {
+ if (proxiesAvailable && opt_proxyType) {
privates.proxyHandler = new opt_proxyType(this);
}
});
@@ -6038,7 +6026,7 @@
addEventListener: Props.ampMethod(
function(privates, name, listener, useCapture) {
if (name === 'DOMContentLoaded') {
- domitaModules.ensureValidCallback(listener);
+ ensureValidCallback(listener);
privates.onDCLListeners.push(listener);
} else {
return privates.tameContainerNode.addEventListener(
@@ -6313,8 +6301,7 @@
var aStyleForCPC = elementForFeatureTests.style;
aStyleForCPC = makeDOMAccessible(aStyleForCPC);
- var allCssProperties = domitaModules.CssPropertiesCollection(
- aStyleForCPC);
+ var allCssProperties = CssPropertiesCollection(aStyleForCPC);
// Sealed internals for TameStyle objects, not to be exposed.
var TameStyleConf = new Confidence('Style');
@@ -6485,10 +6472,10 @@
// Note: XMLHttpRequest is a ctor that *can* be directly
// called by cajoled code, so we do not use inertCtor().
tamingClassTable.registerSafeCtor('XMLHttpRequest',
- cajaVM.def(domitaModules.TameXMLHttpRequest(
+ cajaVM.def(TameXMLHttpRequest(
taming,
rulebreaker,
- domitaModules.XMLHttpRequestCtor(
+ XMLHttpRequestCtor(
makeDOMAccessible,
makeFunctionAccessible(window.XMLHttpRequest),
makeFunctionAccessible(window.ActiveXObject),
@@ -6711,12 +6698,12 @@
addEventListener: Props.plainMethod(
function(name, listener, useCapture) {
if (name === 'load') {
- domitaModules.ensureValidCallback(listener);
+ ensureValidCallback(listener);
nodeAmplify(tameDocument, function(privates) {
privates.onLoadListeners.push(listener);
});
} else if (name === 'DOMContentLoaded') {
- domitaModules.ensureValidCallback(listener);
+ ensureValidCallback(listener);
nodeAmplify(tameDocument, function(privates) {
privates.onDCLListeners.push(listener);
});
--
---
You received this message because you are subscribed to the Google Groups "Google Caja Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.