LayoutTests:
authorweinig <weinig@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2007 20:04:31 +0000 (20:04 +0000)
committerweinig <weinig@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2007 20:04:31 +0000 (20:04 +0000)
        Reviewed by Mitz.

        Test for http://bugs.webkit.org/show_bug.cgi?id=14504
        REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly

        * fast/dom/Window/window-property-shadowing-expected.txt: Added.
        * fast/dom/Window/window-property-shadowing.html: Added.

WebCore:

        Reviewed by Mitz.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=14504
        REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly

        - Made it possible (again) to shadow window properties with local variable names.

        Test: fast/dom/Window/window-property-shadowing.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::customPut):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::put):
        * bindings/scripts/CodeGeneratorJS.pm:
        * page/DOMWindow.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@23987 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/Window/window-property-shadowing-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/Window/window-property-shadowing.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/bindings/js/JSDOMWindowCustom.cpp
WebCore/bindings/js/kjs_window.cpp
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/page/DOMWindow.idl

index 0a976e5dd830d658941dec697aaf5f00d937dfa3..88659527d066a45a904c1c518993cb7cac176c5c 100644 (file)
@@ -1,3 +1,13 @@
+2007-07-04  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Mitz.
+
+        Test for http://bugs.webkit.org/show_bug.cgi?id=14504
+        REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly
+
+        * fast/dom/Window/window-property-shadowing-expected.txt: Added.
+        * fast/dom/Window/window-property-shadowing.html: Added.
+
 2007-07-03  Darin Adler  <darin@apple.com>
 
         Reviewed by Tim Hatcher.
diff --git a/LayoutTests/fast/dom/Window/window-property-shadowing-expected.txt b/LayoutTests/fast/dom/Window/window-property-shadowing-expected.txt
new file mode 100644 (file)
index 0000000..99b69ef
--- /dev/null
@@ -0,0 +1,201 @@
+PASS: screen successfully shadowed
+PASS: history successfully shadowed
+PASS: locationbar successfully shadowed
+PASS: menubar successfully shadowed
+PASS: personalbar successfully shadowed
+PASS: statusbar successfully shadowed
+PASS: toolbar successfully shadowed
+PASS: devicePixelRatio successfully shadowed
+PASS: closed successfully shadowed
+PASS: crypto successfully shadowed
+PASS: defaultStatus successfully shadowed
+PASS: defaultstatus successfully shadowed
+PASS: status successfully shadowed
+PASS: frames successfully shadowed
+PASS: event successfully shadowed
+PASS: innerHeight successfully shadowed
+PASS: innerWidth successfully shadowed
+PASS: length successfully shadowed
+PASS: name successfully shadowed
+PASS: navigator successfully shadowed
+PASS: location successfully shadowed
+PASS: clientInformation successfully shadowed
+PASS: offscreenBuffering successfully shadowed
+PASS: opener successfully shadowed
+PASS: outerHeight successfully shadowed
+PASS: outerWidth successfully shadowed
+PASS: pageXOffset successfully shadowed
+PASS: pageYOffset successfully shadowed
+PASS: parent successfully shadowed
+PASS: screenX successfully shadowed
+PASS: screenY successfully shadowed
+PASS: screenLeft successfully shadowed
+PASS: screenTop successfully shadowed
+PASS: scrollX successfully shadowed
+PASS: scrollY successfully shadowed
+PASS: self successfully shadowed
+PASS: top successfully shadowed
+PASS: onabort successfully shadowed
+PASS: onblur successfully shadowed
+PASS: onchange successfully shadowed
+PASS: onclick successfully shadowed
+PASS: ondblclick successfully shadowed
+PASS: onerror successfully shadowed
+PASS: onfocus successfully shadowed
+PASS: onkeydown successfully shadowed
+PASS: onkeypress successfully shadowed
+PASS: onkeyup successfully shadowed
+PASS: onload successfully shadowed
+PASS: onmousedown successfully shadowed
+PASS: onmousemove successfully shadowed
+PASS: onmouseout successfully shadowed
+PASS: onmouseover successfully shadowed
+PASS: onmouseup successfully shadowed
+PASS: onmousewheel successfully shadowed
+PASS: onreset successfully shadowed
+PASS: onresize successfully shadowed
+PASS: onscroll successfully shadowed
+PASS: onsearch successfully shadowed
+PASS: onselect successfully shadowed
+PASS: onsubmit successfully shadowed
+PASS: onunload successfully shadowed
+PASS: onbeforeunload successfully shadowed
+PASS: frameElement successfully shadowed
+PASS: window successfully shadowed
+PASS: getSelection successfully shadowed
+PASS: getComputedStyle successfully shadowed
+PASS: getMatchedCSSRules successfully shadowed
+PASS: atob successfully shadowed
+PASS: btoa successfully shadowed
+PASS: scroll successfully shadowed
+PASS: scrollBy successfully shadowed
+PASS: scrollTo successfully shadowed
+PASS: moveBy successfully shadowed
+PASS: moveTo successfully shadowed
+PASS: resizeBy successfully shadowed
+PASS: resizeTo successfully shadowed
+PASS: alert successfully shadowed
+PASS: confirm successfully shadowed
+PASS: prompt successfully shadowed
+PASS: open successfully shadowed
+PASS: print successfully shadowed
+PASS: setTimeout successfully shadowed
+PASS: clearTimeout successfully shadowed
+PASS: focus successfully shadowed
+PASS: blur successfully shadowed
+PASS: close successfully shadowed
+PASS: setInterval successfully shadowed
+PASS: clearInterval successfully shadowed
+PASS: captureEvents successfully shadowed
+PASS: releaseEvents successfully shadowed
+PASS: addEventListener successfully shadowed
+PASS: removeEventListener successfully shadowed
+PASS: showModalDialog successfully shadowed
+PASS: find successfully shadowed
+PASS: stop successfully shadowed
+PASS: Image successfully shadowed
+PASS: Option successfully shadowed
+PASS: DOMException successfully shadowed
+PASS: XMLHttpRequest successfully shadowed
+PASS: XSLTProcessor successfully shadowed
+PASS: StyleSheet successfully shadowed
+PASS: CSSStyleSheet successfully shadowed
+PASS: CSSValue successfully shadowed
+PASS: CSSPrimitiveValue successfully shadowed
+PASS: CSSValueList successfully shadowed
+PASS: CSSRule successfully shadowed
+PASS: CSSCharsetRule successfully shadowed
+PASS: CSSFontFaceRule successfully shadowed
+PASS: CSSImportRule successfully shadowed
+PASS: CSSMediaRule successfully shadowed
+PASS: CSSPageRule successfully shadowed
+PASS: CSSStyleRule successfully shadowed
+PASS: CSSStyleDeclaration successfully shadowed
+PASS: MediaList successfully shadowed
+PASS: Counter successfully shadowed
+PASS: CSSRuleList successfully shadowed
+PASS: Rect successfully shadowed
+PASS: DOMImplementation successfully shadowed
+PASS: DocumentFragment successfully shadowed
+PASS: Document successfully shadowed
+PASS: Node successfully shadowed
+PASS: NodeList successfully shadowed
+PASS: NamedNodeMap successfully shadowed
+PASS: CharacterData successfully shadowed
+PASS: Attr successfully shadowed
+PASS: Element successfully shadowed
+PASS: Text successfully shadowed
+PASS: Comment successfully shadowed
+PASS: CDATASection successfully shadowed
+PASS: DocumentType successfully shadowed
+PASS: Notation successfully shadowed
+PASS: Entity successfully shadowed
+PASS: EntityReference successfully shadowed
+PASS: ProcessingInstruction successfully shadowed
+PASS: HTMLDocument successfully shadowed
+PASS: HTMLElement successfully shadowed
+PASS: HTMLAnchorElement successfully shadowed
+PASS: HTMLAppletElement successfully shadowed
+PASS: HTMLAreaElement successfully shadowed
+PASS: HTMLBRElement successfully shadowed
+PASS: HTMLBaseElement successfully shadowed
+PASS: HTMLBaseFontElement successfully shadowed
+PASS: HTMLBlockquoteElement successfully shadowed
+PASS: HTMLBodyElement successfully shadowed
+PASS: HTMLButtonElement successfully shadowed
+PASS: HTMLCanvasElement successfully shadowed
+PASS: HTMLDListElement successfully shadowed
+PASS: HTMLDirectoryElement successfully shadowed
+PASS: HTMLDivElement successfully shadowed
+PASS: HTMLEmbedElement successfully shadowed
+PASS: HTMLFieldSetElement successfully shadowed
+PASS: HTMLFontElement successfully shadowed
+PASS: HTMLFormElement successfully shadowed
+PASS: HTMLFrameElement successfully shadowed
+PASS: HTMLFrameSetElement successfully shadowed
+PASS: HTMLHRElement successfully shadowed
+PASS: HTMLHeadElement successfully shadowed
+PASS: HTMLHeadingElement successfully shadowed
+PASS: HTMLHtmlElement successfully shadowed
+PASS: HTMLIFrameElement successfully shadowed
+PASS: HTMLImageElement successfully shadowed
+PASS: HTMLInputElement successfully shadowed
+PASS: HTMLIsIndexElement successfully shadowed
+PASS: HTMLLIElement successfully shadowed
+PASS: HTMLLabelElement successfully shadowed
+PASS: HTMLLegendElement successfully shadowed
+PASS: HTMLLinkElement successfully shadowed
+PASS: HTMLMapElement successfully shadowed
+PASS: HTMLMarqueeElement successfully shadowed
+PASS: HTMLMenuElement successfully shadowed
+PASS: HTMLMetaElement successfully shadowed
+PASS: HTMLModElement successfully shadowed
+PASS: HTMLOListElement successfully shadowed
+PASS: HTMLObjectElement successfully shadowed
+PASS: HTMLOptGroupElement successfully shadowed
+PASS: HTMLOptionElement successfully shadowed
+PASS: HTMLParagraphElement successfully shadowed
+PASS: HTMLParamElement successfully shadowed
+PASS: HTMLPreElement successfully shadowed
+PASS: HTMLQuoteElement successfully shadowed
+PASS: HTMLScriptElement successfully shadowed
+PASS: HTMLSelectElement successfully shadowed
+PASS: HTMLStyleElement successfully shadowed
+PASS: HTMLTableCaptionElement successfully shadowed
+PASS: HTMLTableCellElement successfully shadowed
+PASS: HTMLTableColElement successfully shadowed
+PASS: HTMLTableElement successfully shadowed
+PASS: HTMLTableRowElement successfully shadowed
+PASS: HTMLTableSectionElement successfully shadowed
+PASS: HTMLTextAreaElement successfully shadowed
+PASS: HTMLTitleElement successfully shadowed
+PASS: HTMLUListElement successfully shadowed
+PASS: Event successfully shadowed
+PASS: MutationEvent successfully shadowed
+PASS: NodeFilter successfully shadowed
+PASS: Range successfully shadowed
+PASS: RangeException successfully shadowed
+PASS: XMLDocument successfully shadowed
+PASS: DOMParser successfully shadowed
+PASS: XMLSerializer successfully shadowed
+
diff --git a/LayoutTests/fast/dom/Window/window-property-shadowing.html b/LayoutTests/fast/dom/Window/window-property-shadowing.html
new file mode 100644 (file)
index 0000000..d046426
--- /dev/null
@@ -0,0 +1,424 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <script type="text/javascript">
+        function log(msg)
+        {
+            document.getElementById('console').appendChild(document.createTextNode(msg + '\n'));
+        }
+    </script>
+</head>
+<body>
+    <pre id="console"></pre>
+    <script>
+        if (window.layoutTestController)
+            layoutTestController.dumpAsText();
+
+        // Window Attributes
+        var screen = 1;
+        log(screen == 1 ? "PASS: screen successfully shadowed" : "FAIL: screen was not shadowed");
+        var history = 1;
+        log(history == 1 ? "PASS: history successfully shadowed" : "FAIL: history was not shadowed");
+        var locationbar = 1;
+        log(locationbar == 1 ? "PASS: locationbar successfully shadowed" : "FAIL: locationbar was not shadowed");
+        var menubar = 1;
+        log(menubar == 1 ? "PASS: menubar successfully shadowed" : "FAIL: menubar was not shadowed");
+        var personalbar = 1;
+        log(personalbar == 1 ? "PASS: personalbar successfully shadowed" : "FAIL: personalbar was not shadowed");
+        var statusbar = 1;
+        log(statusbar == 1 ? "PASS: statusbar successfully shadowed" : "FAIL: statusbar was not shadowed");
+        var toolbar = 1;
+        log(toolbar == 1 ? "PASS: toolbar successfully shadowed" : "FAIL: toolbar was not shadowed");
+        var devicePixelRatio = 1;
+        log(devicePixelRatio == 1 ? "PASS: devicePixelRatio successfully shadowed" : "FAIL: devicePixelRatio was not shadowed");
+        var closed = 1;
+        log(closed == 1 ? "PASS: closed successfully shadowed" : "FAIL: closed was not shadowed");
+        var crypto = 1;
+        log(crypto == 1 ? "PASS: crypto successfully shadowed" : "FAIL: crypto was not shadowed");
+        var defaultStatus = 1;
+        log(defaultStatus == 1 ? "PASS: defaultStatus successfully shadowed" : "FAIL: defaultStatus was not shadowed");
+        var defaultstatus = 1;
+        log(defaultstatus == 1 ? "PASS: defaultstatus successfully shadowed" : "FAIL: defaultstatus was not shadowed");
+        var status = 1;
+        log(status == 1 ? "PASS: status successfully shadowed" : "FAIL: status was not shadowed");
+        var frames = 1;
+        log(frames == 1 ? "PASS: frames successfully shadowed" : "FAIL: frames was not shadowed");
+        var event = 1;
+        log(event == 1 ? "PASS: event successfully shadowed" : "FAIL: event was not shadowed");
+        var innerHeight = 1;
+        log(innerHeight == 1 ? "PASS: innerHeight successfully shadowed" : "FAIL: innerHeight was not shadowed");
+        var innerWidth = 1;
+        log(innerWidth == 1 ? "PASS: innerWidth successfully shadowed" : "FAIL: innerWidth was not shadowed");
+        var length = 1;
+        log(length == 1 ? "PASS: length successfully shadowed" : "FAIL: length was not shadowed");
+        var name = 1;
+        log(name == 1 ? "PASS: name successfully shadowed" : "FAIL: name was not shadowed");
+        var navigator = 1;
+        log(navigator == 1 ? "PASS: navigator successfully shadowed" : "FAIL: navigator was not shadowed");
+        var location = 1;
+        log(location == 1 ? "PASS: location successfully shadowed" : "FAIL: location was not shadowed");
+        var clientInformation = 1;
+        log(clientInformation == 1 ? "PASS: clientInformation successfully shadowed" : "FAIL: clientInformation was not shadowed");
+        var offscreenBuffering = 1;
+        log(offscreenBuffering == 1 ? "PASS: offscreenBuffering successfully shadowed" : "FAIL: offscreenBuffering was not shadowed");
+        var opener = 1;
+        log(opener == 1 ? "PASS: opener successfully shadowed" : "FAIL: opener was not shadowed");
+        var outerHeight = 1;
+        log(outerHeight == 1 ? "PASS: outerHeight successfully shadowed" : "FAIL: outerHeight was not shadowed");
+        var outerWidth = 1;
+        log(outerWidth == 1 ? "PASS: outerWidth successfully shadowed" : "FAIL: outerWidth was not shadowed");
+        var pageXOffset = 1;
+        log(pageXOffset == 1 ? "PASS: pageXOffset successfully shadowed" : "FAIL: pageXOffset was not shadowed");
+        var pageYOffset = 1;
+        log(pageYOffset == 1 ? "PASS: pageYOffset successfully shadowed" : "FAIL: pageYOffset was not shadowed");
+        var parent = 1;
+        log(parent == 1 ? "PASS: parent successfully shadowed" : "FAIL: parent was not shadowed");
+        var screenX = 1;
+        log(screenX == 1 ? "PASS: screenX successfully shadowed" : "FAIL: screenX was not shadowed");
+        var screenY = 1;
+        log(screenY == 1 ? "PASS: screenY successfully shadowed" : "FAIL: screenY was not shadowed");
+        var screenLeft = 1;
+        log(screenLeft == 1 ? "PASS: screenLeft successfully shadowed" : "FAIL: screenLeft was not shadowed");
+        var screenTop = 1;
+        log(screenTop == 1 ? "PASS: screenTop successfully shadowed" : "FAIL: screenTop was not shadowed");
+        var scrollX = 1;
+        log(scrollX == 1 ? "PASS: scrollX successfully shadowed" : "FAIL: scrollX was not shadowed");
+        var scrollY = 1;
+        log(scrollY == 1 ? "PASS: scrollY successfully shadowed" : "FAIL: scrollY was not shadowed");
+        var self = 1;
+        log(self == 1 ? "PASS: self successfully shadowed" : "FAIL: self was not shadowed");
+        var top = 1;
+        log(top == 1 ? "PASS: top successfully shadowed" : "FAIL: top was not shadowed");
+        var onabort = 1;
+        log(onabort == 1 ? "PASS: onabort successfully shadowed" : "FAIL: onabort was not shadowed");
+        var onblur = 1;
+        log(onblur == 1 ? "PASS: onblur successfully shadowed" : "FAIL: onblur was not shadowed");
+        var onchange = 1;
+        log(onchange == 1 ? "PASS: onchange successfully shadowed" : "FAIL: onchange was not shadowed");
+        var onclick = 1;
+        log(onclick == 1 ? "PASS: onclick successfully shadowed" : "FAIL: onclick was not shadowed");
+        var ondblclick = 1;
+        log(ondblclick == 1 ? "PASS: ondblclick successfully shadowed" : "FAIL: ondblclick was not shadowed");
+        var onerror = 1;
+        log(onerror == 1 ? "PASS: onerror successfully shadowed" : "FAIL: onerror was not shadowed");
+        var onfocus = 1;
+        log(onfocus == 1 ? "PASS: onfocus successfully shadowed" : "FAIL: onfocus was not shadowed");
+        var onkeydown = 1;
+        log(onkeydown == 1 ? "PASS: onkeydown successfully shadowed" : "FAIL: onkeydown was not shadowed");
+        var onkeypress = 1;
+        log(onkeypress == 1 ? "PASS: onkeypress successfully shadowed" : "FAIL: onkeypress was not shadowed");
+        var onkeyup = 1;
+        log(onkeyup == 1 ? "PASS: onkeyup successfully shadowed" : "FAIL: onkeyup was not shadowed");
+        var onload = 1;
+        log(onload == 1 ? "PASS: onload successfully shadowed" : "FAIL: onload was not shadowed");
+        var onmousedown = 1;
+        log(onmousedown == 1 ? "PASS: onmousedown successfully shadowed" : "FAIL: onmousedown was not shadowed");
+        var onmousemove = 1;
+        log(onmousemove == 1 ? "PASS: onmousemove successfully shadowed" : "FAIL: onmousemove was not shadowed");
+        var onmouseout = 1;
+        log(onmouseout == 1 ? "PASS: onmouseout successfully shadowed" : "FAIL: onmouseout was not shadowed");
+        var onmouseover = 1;
+        log(onmouseover == 1 ? "PASS: onmouseover successfully shadowed" : "FAIL: onmouseover was not shadowed");
+        var onmouseup = 1;
+        log(onmouseup == 1 ? "PASS: onmouseup successfully shadowed" : "FAIL: onmouseup was not shadowed");
+        var onmousewheel = 1;
+        log(onmousewheel == 1 ? "PASS: onmousewheel successfully shadowed" : "FAIL: onmousewheel was not shadowed");
+        var onreset = 1;
+        log(onreset == 1 ? "PASS: onreset successfully shadowed" : "FAIL: onreset was not shadowed");
+        var onresize = 1;
+        log(onresize == 1 ? "PASS: onresize successfully shadowed" : "FAIL: onresize was not shadowed");
+        var onscroll = 1;
+        log(onscroll == 1 ? "PASS: onscroll successfully shadowed" : "FAIL: onscroll was not shadowed");
+        var onsearch = 1;
+        log(onsearch == 1 ? "PASS: onsearch successfully shadowed" : "FAIL: onsearch was not shadowed");
+        var onselect = 1;
+        log(onselect == 1 ? "PASS: onselect successfully shadowed" : "FAIL: onselect was not shadowed");
+        var onsubmit = 1;
+        log(onsubmit == 1 ? "PASS: onsubmit successfully shadowed" : "FAIL: onsubmit was not shadowed");
+        var onunload = 1;
+        log(onunload == 1 ? "PASS: onunload successfully shadowed" : "FAIL: onunload was not shadowed");
+        var onbeforeunload = 1;
+        log(onbeforeunload == 1 ? "PASS: onbeforeunload successfully shadowed" : "FAIL: onbeforeunload was not shadowed");
+        var frameElement = 1;
+        log(frameElement == 1 ? "PASS: frameElement successfully shadowed" : "FAIL: frameElement was not shadowed");
+        var window = 1;
+        log(window == 1 ? "PASS: window successfully shadowed" : "FAIL: window was not shadowed");
+
+        // Window functions
+        var getSelection = 1;
+        log(getSelection == 1 ? "PASS: getSelection successfully shadowed" : "FAIL: getSelection was not shadowed");
+        var getComputedStyle = 1;
+        log(getComputedStyle == 1 ? "PASS: getComputedStyle successfully shadowed" : "FAIL: getComputedStyle was not shadowed");
+        var getMatchedCSSRules = 1;
+        log(getMatchedCSSRules == 1 ? "PASS: getMatchedCSSRules successfully shadowed" : "FAIL: getMatchedCSSRules was not shadowed");
+        var atob = 1;
+        log(atob == 1 ? "PASS: atob successfully shadowed" : "FAIL: atob was not shadowed");
+        var btoa = 1;
+        log(btoa == 1 ? "PASS: btoa successfully shadowed" : "FAIL: btoa was not shadowed");
+        var scroll = 1;
+        log(scroll == 1 ? "PASS: scroll successfully shadowed" : "FAIL: scroll was not shadowed");
+        var scrollBy = 1;
+        log(scrollBy == 1 ? "PASS: scrollBy successfully shadowed" : "FAIL: scrollBy was not shadowed");
+        var scrollTo = 1;
+        log(scrollTo == 1 ? "PASS: scrollTo successfully shadowed" : "FAIL: scrollTo was not shadowed");
+        var moveBy = 1;
+        log(moveBy == 1 ? "PASS: moveBy successfully shadowed" : "FAIL: moveBy was not shadowed");
+        var moveTo = 1;
+        log(moveTo == 1 ? "PASS: moveTo successfully shadowed" : "FAIL: moveTo was not shadowed");
+        var resizeBy = 1;
+        log(resizeBy == 1 ? "PASS: resizeBy successfully shadowed" : "FAIL: resizeBy was not shadowed");
+        var resizeTo = 1;
+        log(resizeTo == 1 ? "PASS: resizeTo successfully shadowed" : "FAIL: resizeTo was not shadowed");
+        var alert = 1;
+        log(alert == 1 ? "PASS: alert successfully shadowed" : "FAIL: alert was not shadowed");
+        var confirm = 1;
+        log(confirm == 1 ? "PASS: confirm successfully shadowed" : "FAIL: confirm was not shadowed");
+        var prompt = 1;
+        log(prompt == 1 ? "PASS: prompt successfully shadowed" : "FAIL: prompt was not shadowed");
+        var open = 1;
+        log(open == 1 ? "PASS: open successfully shadowed" : "FAIL: open was not shadowed");
+        var print = 1;
+        log(print == 1 ? "PASS: print successfully shadowed" : "FAIL: print was not shadowed");
+        var setTimeout = 1;
+        log(setTimeout == 1 ? "PASS: setTimeout successfully shadowed" : "FAIL: setTimeout was not shadowed");
+        var clearTimeout = 1;
+        log(clearTimeout == 1 ? "PASS: clearTimeout successfully shadowed" : "FAIL: clearTimeout was not shadowed");
+        var focus = 1;
+        log(focus == 1 ? "PASS: focus successfully shadowed" : "FAIL: focus was not shadowed");
+        var blur = 1;
+        log(blur == 1 ? "PASS: blur successfully shadowed" : "FAIL: blur was not shadowed");
+        var close = 1;
+        log(close == 1 ? "PASS: close successfully shadowed" : "FAIL: close was not shadowed");
+        var setInterval = 1;
+        log(setInterval == 1 ? "PASS: setInterval successfully shadowed" : "FAIL: setInterval was not shadowed");
+        var clearInterval = 1;
+        log(clearInterval == 1 ? "PASS: clearInterval successfully shadowed" : "FAIL: clearInterval was not shadowed");
+        var captureEvents = 1;
+        log(captureEvents == 1 ? "PASS: captureEvents successfully shadowed" : "FAIL: captureEvents was not shadowed");
+        var releaseEvents = 1;
+        log(releaseEvents == 1 ? "PASS: releaseEvents successfully shadowed" : "FAIL: releaseEvents was not shadowed");
+        var addEventListener = 1;
+        log(addEventListener == 1 ? "PASS: addEventListener successfully shadowed" : "FAIL: addEventListener was not shadowed");
+        var removeEventListener = 1;
+        log(removeEventListener == 1 ? "PASS: removeEventListener successfully shadowed" : "FAIL: removeEventListener was not shadowed");
+        var showModalDialog = 1;
+        log(showModalDialog == 1 ? "PASS: showModalDialog successfully shadowed" : "FAIL: showModalDialog was not shadowed");
+        var find = 1;
+        log(find == 1 ? "PASS: find successfully shadowed" : "FAIL: find was not shadowed");
+        var stop = 1;
+        log(stop == 1 ? "PASS: stop successfully shadowed" : "FAIL: stop was not shadowed");
+
+        // Constructors
+        var Image = 1;
+        log(Image == 1 ? "PASS: Image successfully shadowed" : "FAIL: Image was not shadowed");
+        var Option = 1;
+        log(Option == 1 ? "PASS: Option successfully shadowed" : "FAIL: Option was not shadowed");
+        var DOMException = 1;
+        log(DOMException == 1 ? "PASS: DOMException successfully shadowed" : "FAIL: DOMException was not shadowed");
+        var XMLHttpRequest = 1;
+        log(XMLHttpRequest == 1 ? "PASS: XMLHttpRequest successfully shadowed" : "FAIL: XMLHttpRequest was not shadowed");
+        var XSLTProcessor = 1;
+        log(XSLTProcessor == 1 ? "PASS: XSLTProcessor successfully shadowed" : "FAIL: XSLTProcessor was not shadowed");
+        var StyleSheet = 1;
+        log(StyleSheet == 1 ? "PASS: StyleSheet successfully shadowed" : "FAIL: StyleSheet was not shadowed");
+        var CSSStyleSheet = 1;
+        log(CSSStyleSheet == 1 ? "PASS: CSSStyleSheet successfully shadowed" : "FAIL: CSSStyleSheet was not shadowed");
+        var CSSValue = 1;
+        log(CSSValue == 1 ? "PASS: CSSValue successfully shadowed" : "FAIL: CSSValue was not shadowed");
+        var CSSPrimitiveValue = 1;
+        log(CSSPrimitiveValue == 1 ? "PASS: CSSPrimitiveValue successfully shadowed" : "FAIL: CSSPrimitiveValue was not shadowed");
+        var CSSValueList = 1;
+        log(CSSValueList == 1 ? "PASS: CSSValueList successfully shadowed" : "FAIL: CSSValueList was not shadowed");
+        var CSSRule = 1;
+        log(CSSRule == 1 ? "PASS: CSSRule successfully shadowed" : "FAIL: CSSRule was not shadowed");
+        var CSSCharsetRule = 1;
+        log(CSSCharsetRule == 1 ? "PASS: CSSCharsetRule successfully shadowed" : "FAIL: CSSCharsetRule was not shadowed");
+        var CSSFontFaceRule = 1;
+        log(CSSFontFaceRule == 1 ? "PASS: CSSFontFaceRule successfully shadowed" : "FAIL: CSSFontFaceRule was not shadowed");
+        var CSSImportRule = 1;
+        log(CSSImportRule == 1 ? "PASS: CSSImportRule successfully shadowed" : "FAIL: CSSImportRule was not shadowed");
+        var CSSMediaRule = 1;
+        log(CSSMediaRule == 1 ? "PASS: CSSMediaRule successfully shadowed" : "FAIL: CSSMediaRule was not shadowed");
+        var CSSPageRule = 1;
+        log(CSSPageRule == 1 ? "PASS: CSSPageRule successfully shadowed" : "FAIL: CSSPageRule was not shadowed");
+        var CSSStyleRule = 1;
+        log(CSSStyleRule == 1 ? "PASS: CSSStyleRule successfully shadowed" : "FAIL: CSSStyleRule was not shadowed");
+        var CSSStyleDeclaration = 1;
+        log(CSSStyleDeclaration == 1 ? "PASS: CSSStyleDeclaration successfully shadowed" : "FAIL: CSSStyleDeclaration was not shadowed");
+        var MediaList = 1;
+        log(MediaList == 1 ? "PASS: MediaList successfully shadowed" : "FAIL: MediaList was not shadowed");
+        var Counter = 1;
+        log(Counter == 1 ? "PASS: Counter successfully shadowed" : "FAIL: Counter was not shadowed");
+        var CSSRuleList = 1;
+        log(CSSRuleList == 1 ? "PASS: CSSRuleList successfully shadowed" : "FAIL: CSSRuleList was not shadowed");
+        var Rect = 1;
+        log(Rect == 1 ? "PASS: Rect successfully shadowed" : "FAIL: Rect was not shadowed");
+        var DOMImplementation = 1;
+        log(DOMImplementation == 1 ? "PASS: DOMImplementation successfully shadowed" : "FAIL: DOMImplementation was not shadowed");
+        var DocumentFragment = 1;
+        log(DocumentFragment == 1 ? "PASS: DocumentFragment successfully shadowed" : "FAIL: DocumentFragment was not shadowed");
+        var Document = 1;
+        log(Document == 1 ? "PASS: Document successfully shadowed" : "FAIL: Document was not shadowed");
+        var Node = 1;
+        log(Node == 1 ? "PASS: Node successfully shadowed" : "FAIL: Node was not shadowed");
+        var NodeList = 1;
+        log(NodeList == 1 ? "PASS: NodeList successfully shadowed" : "FAIL: NodeList was not shadowed");
+        var NamedNodeMap = 1;
+        log(NamedNodeMap == 1 ? "PASS: NamedNodeMap successfully shadowed" : "FAIL: NamedNodeMap was not shadowed");
+        var CharacterData = 1;
+        log(CharacterData == 1 ? "PASS: CharacterData successfully shadowed" : "FAIL: CharacterData was not shadowed");
+        var Attr = 1;
+        log(Attr == 1 ? "PASS: Attr successfully shadowed" : "FAIL: Attr was not shadowed");
+        var Element = 1;
+        log(Element == 1 ? "PASS: Element successfully shadowed" : "FAIL: Element was not shadowed");
+        var Text = 1;
+        log(Text == 1 ? "PASS: Text successfully shadowed" : "FAIL: Text was not shadowed");
+        var Comment = 1;
+        log(Comment == 1 ? "PASS: Comment successfully shadowed" : "FAIL: Comment was not shadowed");
+        var CDATASection = 1;
+        log(CDATASection == 1 ? "PASS: CDATASection successfully shadowed" : "FAIL: CDATASection was not shadowed");
+        var DocumentType = 1;
+        log(DocumentType == 1 ? "PASS: DocumentType successfully shadowed" : "FAIL: DocumentType was not shadowed");
+        var Notation = 1;
+        log(Notation == 1 ? "PASS: Notation successfully shadowed" : "FAIL: Notation was not shadowed");
+        var Entity = 1;
+        log(Entity == 1 ? "PASS: Entity successfully shadowed" : "FAIL: Entity was not shadowed");
+        var EntityReference = 1;
+        log(EntityReference == 1 ? "PASS: EntityReference successfully shadowed" : "FAIL: EntityReference was not shadowed");
+        var ProcessingInstruction = 1;
+        log(ProcessingInstruction == 1 ? "PASS: ProcessingInstruction successfully shadowed" : "FAIL: ProcessingInstruction was not shadowed");
+        var HTMLDocument = 1;
+        log(HTMLDocument == 1 ? "PASS: HTMLDocument successfully shadowed" : "FAIL: HTMLDocument was not shadowed");
+        var HTMLElement = 1;
+        log(HTMLElement == 1 ? "PASS: HTMLElement successfully shadowed" : "FAIL: HTMLElement was not shadowed");
+        var HTMLAnchorElement = 1;
+        log(HTMLAnchorElement == 1 ? "PASS: HTMLAnchorElement successfully shadowed" : "FAIL: HTMLAnchorElement was not shadowed");
+        var HTMLAppletElement = 1;
+        log(HTMLAppletElement == 1 ? "PASS: HTMLAppletElement successfully shadowed" : "FAIL: HTMLAppletElement was not shadowed");
+        var HTMLAreaElement = 1;
+        log(HTMLAreaElement == 1 ? "PASS: HTMLAreaElement successfully shadowed" : "FAIL: HTMLAreaElement was not shadowed");
+        var HTMLBRElement = 1;
+        log(HTMLBRElement == 1 ? "PASS: HTMLBRElement successfully shadowed" : "FAIL: HTMLBRElement was not shadowed");
+        var HTMLBaseElement = 1;
+        log(HTMLBaseElement == 1 ? "PASS: HTMLBaseElement successfully shadowed" : "FAIL: HTMLBaseElement was not shadowed");
+        var HTMLBaseFontElement = 1;
+        log(HTMLBaseFontElement == 1 ? "PASS: HTMLBaseFontElement successfully shadowed" : "FAIL: HTMLBaseFontElement was not shadowed");
+        var HTMLBlockquoteElement = 1;
+        log(HTMLBlockquoteElement == 1 ? "PASS: HTMLBlockquoteElement successfully shadowed" : "FAIL: HTMLBlockquoteElement was not shadowed");
+        var HTMLBodyElement = 1;
+        log(HTMLBodyElement == 1 ? "PASS: HTMLBodyElement successfully shadowed" : "FAIL: HTMLBodyElement was not shadowed");
+        var HTMLButtonElement = 1;
+        log(HTMLButtonElement == 1 ? "PASS: HTMLButtonElement successfully shadowed" : "FAIL: HTMLButtonElement was not shadowed");
+        var HTMLCanvasElement = 1;
+        log(HTMLCanvasElement == 1 ? "PASS: HTMLCanvasElement successfully shadowed" : "FAIL: HTMLCanvasElement was not shadowed");
+        var HTMLDListElement = 1;
+        log(HTMLDListElement == 1 ? "PASS: HTMLDListElement successfully shadowed" : "FAIL: HTMLDListElement was not shadowed");
+        var HTMLDirectoryElement = 1;
+        log(HTMLDirectoryElement == 1 ? "PASS: HTMLDirectoryElement successfully shadowed" : "FAIL: HTMLDirectoryElement was not shadowed");
+        var HTMLDivElement = 1;
+        log(HTMLDivElement == 1 ? "PASS: HTMLDivElement successfully shadowed" : "FAIL: HTMLDivElement was not shadowed");
+        var HTMLEmbedElement = 1;
+        log(HTMLEmbedElement == 1 ? "PASS: HTMLEmbedElement successfully shadowed" : "FAIL: HTMLEmbedElement was not shadowed");
+        var HTMLFieldSetElement = 1;
+        log(HTMLFieldSetElement == 1 ? "PASS: HTMLFieldSetElement successfully shadowed" : "FAIL: HTMLFieldSetElement was not shadowed");
+        var HTMLFontElement = 1;
+        log(HTMLFontElement == 1 ? "PASS: HTMLFontElement successfully shadowed" : "FAIL: HTMLFontElement was not shadowed");
+        var HTMLFormElement = 1;
+        log(HTMLFormElement == 1 ? "PASS: HTMLFormElement successfully shadowed" : "FAIL: HTMLFormElement was not shadowed");
+        var HTMLFrameElement = 1;
+        log(HTMLFrameElement == 1 ? "PASS: HTMLFrameElement successfully shadowed" : "FAIL: HTMLFrameElement was not shadowed");
+        var HTMLFrameSetElement = 1;
+        log(HTMLFrameSetElement == 1 ? "PASS: HTMLFrameSetElement successfully shadowed" : "FAIL: HTMLFrameSetElement was not shadowed");
+        var HTMLHRElement = 1;
+        log(HTMLHRElement == 1 ? "PASS: HTMLHRElement successfully shadowed" : "FAIL: HTMLHRElement was not shadowed");
+        var HTMLHeadElement = 1;
+        log(HTMLHeadElement == 1 ? "PASS: HTMLHeadElement successfully shadowed" : "FAIL: HTMLHeadElement was not shadowed");
+        var HTMLHeadingElement = 1;
+        log(HTMLHeadingElement == 1 ? "PASS: HTMLHeadingElement successfully shadowed" : "FAIL: HTMLHeadingElement was not shadowed");
+        var HTMLHtmlElement = 1;
+        log(HTMLHtmlElement == 1 ? "PASS: HTMLHtmlElement successfully shadowed" : "FAIL: HTMLHtmlElement was not shadowed");
+        var HTMLIFrameElement = 1;
+        log(HTMLIFrameElement == 1 ? "PASS: HTMLIFrameElement successfully shadowed" : "FAIL: HTMLIFrameElement was not shadowed");
+        var HTMLImageElement = 1;
+        log(HTMLImageElement == 1 ? "PASS: HTMLImageElement successfully shadowed" : "FAIL: HTMLImageElement was not shadowed");
+        var HTMLInputElement = 1;
+        log(HTMLInputElement == 1 ? "PASS: HTMLInputElement successfully shadowed" : "FAIL: HTMLInputElement was not shadowed");
+        var HTMLIsIndexElement = 1;
+        log(HTMLIsIndexElement == 1 ? "PASS: HTMLIsIndexElement successfully shadowed" : "FAIL: HTMLIsIndexElement was not shadowed");
+        var HTMLLIElement = 1;
+        log(HTMLLIElement == 1 ? "PASS: HTMLLIElement successfully shadowed" : "FAIL: HTMLLIElement was not shadowed");
+        var HTMLLabelElement = 1;
+        log(HTMLLabelElement == 1 ? "PASS: HTMLLabelElement successfully shadowed" : "FAIL: HTMLLabelElement was not shadowed");
+        var HTMLLegendElement = 1;
+        log(HTMLLegendElement == 1 ? "PASS: HTMLLegendElement successfully shadowed" : "FAIL: HTMLLegendElement was not shadowed");
+        var HTMLLinkElement = 1;
+        log(HTMLLinkElement == 1 ? "PASS: HTMLLinkElement successfully shadowed" : "FAIL: HTMLLinkElement was not shadowed");
+        var HTMLMapElement = 1;
+        log(HTMLMapElement == 1 ? "PASS: HTMLMapElement successfully shadowed" : "FAIL: HTMLMapElement was not shadowed");
+        var HTMLMarqueeElement = 1;
+        log(HTMLMarqueeElement == 1 ? "PASS: HTMLMarqueeElement successfully shadowed" : "FAIL: HTMLMarqueeElement was not shadowed");
+        var HTMLMenuElement = 1;
+        log(HTMLMenuElement == 1 ? "PASS: HTMLMenuElement successfully shadowed" : "FAIL: HTMLMenuElement was not shadowed");
+        var HTMLMetaElement = 1;
+        log(HTMLMetaElement == 1 ? "PASS: HTMLMetaElement successfully shadowed" : "FAIL: HTMLMetaElement was not shadowed");
+        var HTMLModElement = 1;
+        log(HTMLModElement == 1 ? "PASS: HTMLModElement successfully shadowed" : "FAIL: HTMLModElement was not shadowed");
+        var HTMLOListElement = 1;
+        log(HTMLOListElement == 1 ? "PASS: HTMLOListElement successfully shadowed" : "FAIL: HTMLOListElement was not shadowed");
+        var HTMLObjectElement = 1;
+        log(HTMLObjectElement == 1 ? "PASS: HTMLObjectElement successfully shadowed" : "FAIL: HTMLObjectElement was not shadowed");
+        var HTMLOptGroupElement = 1;
+        log(HTMLOptGroupElement == 1 ? "PASS: HTMLOptGroupElement successfully shadowed" : "FAIL: HTMLOptGroupElement was not shadowed");
+        var HTMLOptionElement = 1;
+        log(HTMLOptionElement == 1 ? "PASS: HTMLOptionElement successfully shadowed" : "FAIL: HTMLOptionElement was not shadowed");
+        var HTMLParagraphElement = 1;
+        log(HTMLParagraphElement == 1 ? "PASS: HTMLParagraphElement successfully shadowed" : "FAIL: HTMLParagraphElement was not shadowed");
+        var HTMLParamElement = 1;
+        log(HTMLParamElement == 1 ? "PASS: HTMLParamElement successfully shadowed" : "FAIL: HTMLParamElement was not shadowed");
+        var HTMLPreElement = 1;
+        log(HTMLPreElement == 1 ? "PASS: HTMLPreElement successfully shadowed" : "FAIL: HTMLPreElement was not shadowed");
+        var HTMLQuoteElement = 1;
+        log(HTMLQuoteElement == 1 ? "PASS: HTMLQuoteElement successfully shadowed" : "FAIL: HTMLQuoteElement was not shadowed");
+        var HTMLScriptElement = 1;
+        log(HTMLScriptElement == 1 ? "PASS: HTMLScriptElement successfully shadowed" : "FAIL: HTMLScriptElement was not shadowed");
+        var HTMLSelectElement = 1;
+        log(HTMLSelectElement == 1 ? "PASS: HTMLSelectElement successfully shadowed" : "FAIL: HTMLSelectElement was not shadowed");
+        var HTMLStyleElement = 1;
+        log(HTMLStyleElement == 1 ? "PASS: HTMLStyleElement successfully shadowed" : "FAIL: HTMLStyleElement was not shadowed");
+        var HTMLTableCaptionElement = 1;
+        log(HTMLTableCaptionElement == 1 ? "PASS: HTMLTableCaptionElement successfully shadowed" : "FAIL: HTMLTableCaptionElement was not shadowed");
+        var HTMLTableCellElement = 1;
+        log(HTMLTableCellElement == 1 ? "PASS: HTMLTableCellElement successfully shadowed" : "FAIL: HTMLTableCellElement was not shadowed");
+        var HTMLTableColElement = 1;
+        log(HTMLTableColElement == 1 ? "PASS: HTMLTableColElement successfully shadowed" : "FAIL: HTMLTableColElement was not shadowed");
+        var HTMLTableElement = 1;
+        log(HTMLTableElement == 1 ? "PASS: HTMLTableElement successfully shadowed" : "FAIL: HTMLTableElement was not shadowed");
+        var HTMLTableRowElement = 1;
+        log(HTMLTableRowElement == 1 ? "PASS: HTMLTableRowElement successfully shadowed" : "FAIL: HTMLTableRowElement was not shadowed");
+        var HTMLTableSectionElement = 1;
+        log(HTMLTableSectionElement == 1 ? "PASS: HTMLTableSectionElement successfully shadowed" : "FAIL: HTMLTableSectionElement was not shadowed");
+        var HTMLTextAreaElement = 1;
+        log(HTMLTextAreaElement == 1 ? "PASS: HTMLTextAreaElement successfully shadowed" : "FAIL: HTMLTextAreaElement was not shadowed");
+        var HTMLTitleElement = 1;
+        log(HTMLTitleElement == 1 ? "PASS: HTMLTitleElement successfully shadowed" : "FAIL: HTMLTitleElement was not shadowed");
+        var HTMLUListElement = 1;
+        log(HTMLUListElement == 1 ? "PASS: HTMLUListElement successfully shadowed" : "FAIL: HTMLUListElement was not shadowed");
+        var Event = 1;
+        log(Event == 1 ? "PASS: Event successfully shadowed" : "FAIL: Event was not shadowed");
+        var MutationEvent = 1;
+        log(MutationEvent == 1 ? "PASS: MutationEvent successfully shadowed" : "FAIL: MutationEvent was not shadowed");
+        var NodeFilter = 1;
+        log(NodeFilter == 1 ? "PASS: NodeFilter successfully shadowed" : "FAIL: NodeFilter was not shadowed");
+        var Range = 1;
+        log(Range == 1 ? "PASS: Range successfully shadowed" : "FAIL: Range was not shadowed");
+        var RangeException = 1;
+        log(RangeException == 1 ? "PASS: RangeException successfully shadowed" : "FAIL: RangeException was not shadowed");
+        var XMLDocument = 1;
+        log(XMLDocument == 1 ? "PASS: XMLDocument successfully shadowed" : "FAIL: XMLDocument was not shadowed");
+        var DOMParser = 1;
+        log(DOMParser == 1 ? "PASS: DOMParser successfully shadowed" : "FAIL: DOMParser was not shadowed");
+        var XMLSerializer = 1;
+        log(XMLSerializer == 1 ? "PASS: XMLSerializer successfully shadowed" : "FAIL: XMLSerializer was not shadowed");
+    </script>
+</body>
+</html>
index bae6ebf571864ee454f0c723937373b7096e40b5..394028de00829a03ed9a7b003c7a23802eab3c2c 100644 (file)
@@ -1,3 +1,21 @@
+2007-07-04  Sam Weinig  <sam@webkit.org>
+
+        Reviewed by Mitz.
+
+        Patch for http://bugs.webkit.org/show_bug.cgi?id=14504
+        REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly
+
+        - Made it possible (again) to shadow window properties with local variable names.
+
+        Test: fast/dom/Window/window-property-shadowing.html
+
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::JSDOMWindow::customPut):
+        * bindings/js/kjs_window.cpp:
+        (KJS::Window::put):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        * page/DOMWindow.idl:
+
 2007-07-03  Alice Liu  <alice.liu@apple.com>
 
         Reviewed by Adam.
index 2f836034fef66535e10c282071855def02692a9f..8ad03282a1f724dbdb6a22b032b3b3c7d949e54c 100644 (file)
@@ -29,4 +29,19 @@ bool JSDOMWindow::customGetOwnPropertySlot(KJS::ExecState* exec, const KJS::Iden
     return getOverridePropertySlot(exec, propertyName, slot);
 }
 
+bool JSDOMWindow::customPut(KJS::ExecState* exec, const KJS::Identifier& propertyName, KJS::JSValue* value, int attr)
+{
+    if (!frame())
+        return true;
+
+    // Called by an internal KJS call or if we have a local override (e.g. "var location")
+    // If yes, save time and jump directly to JSObject.
+    if ((attr != KJS::None && attr != KJS::DontDelete) || (KJS::JSObject::getDirect(propertyName) && isSafeScript(exec))) {
+        JSObject::put(exec, propertyName, value, attr);
+        return true;
+    }
+
+    return false;
+}
+
 } // namespace WebCore
index 78cdd9d99e786ea49a1a3bf09d2fc1c8fd5aee39..68fa5944992d241e2d1b641f38b93759df89b56a 100644 (file)
@@ -874,20 +874,8 @@ bool Window::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName,
   return JSObject::getOwnPropertySlot(exec, propertyName, slot);
 }
 
-void Window::put(ExecState* exec, const Identifier &propertyName, JSValue *value, int attr)
+void Window::put(ExecState* exec, const Identifier& propertyName, JSValue* value, int attr)
 {
-  if (!m_frame)
-    return;
-    
-  // Called by an internal KJS call.
-  // If yes, save time and jump directly to JSObject.
-  if ((attr != None && attr != DontDelete)
-       // Same thing if we have a local override (e.g. "var location")
-       || (JSObject::getDirect(propertyName) && isSafeScript(exec))) {
-    JSObject::put( exec, propertyName, value, attr );
-    return;
-  }
-
   const HashEntry* entry = Lookup::findEntry(&WindowTable, propertyName);
   if (entry) {
     switch(entry->value) {
index aa9b499cb935a116414391fdf8644a98c8306653..98e1240937e41b53f17527a27cc31ed1e5c3c999 100644 (file)
@@ -984,8 +984,7 @@ sub GenerateImplementation
                 push(@implContent, "    }\n");
             }
             if ($dataNode->extendedAttributes->{"CustomPutFunction"}) {
-                push(@implContent, "    bool didPut = customPut(exec, propertyName, value, attr);\n");
-                push(@implContent, "    if (didPut)\n");
+                push(@implContent, "    if (customPut(exec, propertyName, value, attr))\n");
                 push(@implContent, "        return;\n");
             }
 
index aaa491625329328154ca8d7ed0680449edf6be74..ef0cd5957aaab32c9619daa729691fc2d34e1ee1 100644 (file)
@@ -25,7 +25,7 @@
 
 module window {
 
-    interface [LegacyParent=KJS::Window, DoNotCache, CheckDomainSecurity, GenerateNativeConverter, CustomGetOwnPropertySlot] DOMWindow {
+    interface [LegacyParent=KJS::Window, DoNotCache, CheckDomainSecurity, GenerateNativeConverter, CustomGetOwnPropertySlot, CustomPutFunction] DOMWindow {
         // DOM Level 0
         readonly attribute Screen screen;
         readonly attribute [DoNotCheckDomainSecurity] History history;