[Webkit-unassigned] [Bug 71190] Document.importNode's 'deep' argument should default to true
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Nov 2 01:23:21 PDT 2011
https://bugs.webkit.org/show_bug.cgi?id=71190
--- Comment #3 from Kentaro Hara <haraken at chromium.org> 2011-11-02 01:23:21 PST ---
(In reply to comment #2)
> Currently importNode() is defined in Document.idl as,
>
> [OldStyleObjC, ReturnsNew] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
> in [Optional=CallWithDefaultValue] boolean deep)
> raises (DOMException);
>
> Which generates code in JSDocument.cpp as,
>
> bool deep(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toBoolean(exec));
>
> So I thought Document.idl is the correct place to fix this issue but,
>
> on debugging it is found that if there is method in idl with boolean argument as "Optional=CallWithDefaultValue",
> CodeGeneratorJS.pm creates code with policy "MissingIsUndefined" and for boolean jsUndefined() means "false".
> So for all booleans args with "Optional=CallWithDefaultValue" default value is set to false.
>
> This contradicts with this bug's requirement "Document.importNode's 'deep' argument should default to true".
>
> Should we have policy like "MissingIsTrue" or extended attribute like "CallWithTrueValue"..?
>
> Please guide me If I am looking in wrong direction.
According to the spec (http://www.w3.org/TR/DOM-Level-3-Core/core.html#i-Document), the IDL should be
Node importNode(in Node importedNode, in boolean deep)
This means that both "importedNode" and "deep" must not be optional, in the first place. So I think that the right fix to this issue is just to make "deep" a mandatory argument. Are there any concerns about backward compatibility for doing it?
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list