function noCustomDataAfterDestroy() {
		// Report and ignore only write calls; read and remove calls are well-behaving
		var argLength = arguments.length;
		if ( argLength === 1 && arguments[0] !== null && typeof arguments[0] == "object"
			 || argLength > 1 && argLength < 4 && arguments[1] !== null ) {
			future.errorThrows("Cannot create custom data on an already destroyed element '" + this + "'");
			return this;
		}
		return Element.prototype.data.apply(this, arguments);
	}
Define CustomData class as the default for the built-in "customData" aggregation.
We need to do this here via the aggregation itself, since the CustomData class is
an Element subclass and thus cannot be directly referenced in Element's metadata definition.