Module FunctionDef arguments args NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If CompareEq NameLoad Str body Return Str Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call NameLoad Str decorator_list
N/A buttonClick N/A N/A button N/A N/A N/A N/A JS 
        var doc = @{{button}}.ownerDocument;
        if (doc != null) {
            var evt = doc.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, null, 0, 0,
                                0, 0, 0, false, false, false, false, 0, null);
            @{{button}}.dispatchEvent(evt);
        }
     N/A compare N/A N/A elem1 elem2 N/A N/A N/A N/A JS 
    if (!@{{elem1}} && !@{{elem2}}) {
        return true;
    } else if (!@{{elem1}} || !@{{elem2}}) {
        return false;
    }
	if (!@{{elem1}}.isSameNode) {
		return (@{{elem1}} == @{{elem2}});
	}
    return (@{{elem1}}.isSameNode(@{{elem2}}));
     N/A eventGetType N/A N/A event N/A N/A N/A etype N/A event type N/A N/A etype DOMMouseScroll N/A N/A mousewheel N/A etype N/A eventGetButton N/A N/A evt N/A N/A N/A N/A JS 
    var button = @{{evt}}.which;
    if(button == 2) {
        return 4;
    } else if (button == 3) {
        return 2;
    } else {
        return button || 0;
    }
     N/A getAbsoluteLeft N/A N/A elem N/A N/A N/A N/A JS 
    // Firefox 3 expects getBoundingClientRect
    // getBoundingClientRect can be float: 73.1 instead of 74, see
    // gwt's workaround at user/src/com/google/gwt/dom/client/DOMImplMozilla.java:47
    // Please note, their implementation has 1px offset.
    if (   typeof @{{elem}}.getBoundingClientRect == 'function'  ) {
        var left = Math.ceil(@{{elem}}.getBoundingClientRect().left);
        
        return left  + $doc.body.scrollLeft + $doc.documentElement.scrollLeft;
    }
    // Older Firefox can use getBoxObjectFor
    else {
        var left = $doc.getBoxObjectFor(@{{elem}}).x;
        var parent = @{{elem}}.parentNode;
        while (parent) {
            if (parent.scrollLeft > 0) {
                left = left -  parent.scrollLeft;
            }
            parent = parent.parentNode;
        }
        
        return left + $doc.body.scrollLeft + $doc.documentElement.scrollLeft;
    }
     N/A getAbsoluteTop N/A N/A elem N/A N/A N/A N/A JS 
    // Firefox 3 expects getBoundingClientRect
    if (   typeof @{{elem}}.getBoundingClientRect == 'function'  ) {
        var top = Math.ceil(@{{elem}}.getBoundingClientRect().top);
        return top + $doc.body.scrollTop + $doc.documentElement.scrollTop;
    }
    // Older Firefox can use getBoxObjectFor
    else {
        var top = $doc.getBoxObjectFor(@{{elem}}).y;
        var parent = @{{elem}}.parentNode;
        while (parent) {
            if (parent.scrollTop > 0) {
                top -= parent.scrollTop;
            }
            parent = parent.parentNode;
        }
    
        return top + $doc.body.scrollTop + $doc.documentElement.scrollTop;
    }
     N/A getChildIndex N/A N/A parent child N/A N/A N/A N/A JS 
    var count = 0, current = @{{parent}}.firstChild;
    while (current) {
		if (! current.isSameNode) {
			if (current == @{{child}}) {
			return count;
			}
		}
		else if (current.isSameNode(@{{child}})) {
            return count;
        }
        if (current.nodeType == 1) {
            ++count;
        }
        current = current.nextSibling;
    }
    return -1;
     N/A isOrHasChild N/A N/A parent _child N/A N/A N/A N/A JS 
    var child = @{{_child}};
    while (child) {
        if ((!@{{parent}}.isSameNode)) {
			if (@{{parent}} == child) {
				return true;
			}
		}
		else if (@{{parent}}.isSameNode(child)) {
            return true;
        }
        try {
            child = child.parentNode;
        } catch(e) {
          // Give up on 'Permission denied to get property
          // HTMLDivElement.parentNode'
          // See https://bugzilla.mozilla.org/show_bug.cgi?id=208427
          return false;
        }
        if (child && (child.nodeType != 1)) {
          child = null;
        }
      }
    return false;
     N/A releaseCapture N/A N/A elem N/A N/A N/A N/A JS 
    if ((@{{sCaptureElem}} != null) && @{{compare}}(@{{elem}}, @{{sCaptureElem}}))
        @{{sCaptureElem}} = null;
    
	if (!@{{elem}}.isSameNode) {
		if (@{{elem}} == $wnd.__captureElem) {
			$wnd.__captureElem = null;
		}
	}
	else if (@{{elem}}.isSameNode($wnd.__captureElem)) {
        $wnd.__captureElem = null;
    }
     N/A eventGetMouseWheelVelocityY N/A N/A evt N/A N/A N/A N/A JS 
    return @{{evt}}.detail || 0;
     N/A sinkEventsMozilla N/A N/A element bits N/A N/A N/A N/A JS 
    if (@{{bits}} & 0x40000) {
        @{{element}}.addEventListener("DOMMouseScroll", $wnd.__dispatchEvent,
                                    false);
    } else {
        @{{element}}.removeEventListener("DOMMouseScroll", $wnd.__dispatchEvent,
                                    false);
    }
    if (@{{bits}} & 0x80000) {
        @{{element}}.addEventListener("input", $wnd.__dispatchEvent,
                                    false);
    } else {
        @{{element}}.removeEventListener("input", $wnd.__dispatchEvent,
                                    false);
    }
     N/A