[Webkit-unassigned] [Bug 173737] New: CodeGeneratorJS.pm generates an invalid Prototype::finishCreation when there are both runtime-enabled and settings-enabled properties

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jun 22 15:09:33 PDT 2017


https://bugs.webkit.org/show_bug.cgi?id=173737

            Bug ID: 173737
           Summary: CodeGeneratorJS.pm generates an invalid
                    Prototype::finishCreation when there are both
                    runtime-enabled and settings-enabled properties
           Product: WebKit
           Version: WebKit Local Build
          Hardware: Unspecified
                OS: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Bindings
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: ajuma at chromium.org
                CC: cdumez at apple.com, sam at webkit.org

When there are only settings-enabled properties, the ::finishCreation method gets signature:
void ${className}Prototype::finishCreation(VM& vm)

but when there are also settings-enabled properties, the method gets signature:
void ${className}Prototype::finishCreation(VM& vm, JSDOMGlobalObject& globalObject)

The code that's generated for runtime-enabled properties includes the line:
JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);

which is calling globabObject(). The problem is that when the generated method signature includes globalObject as an argument, that hides the globalObject function, so the globalObject() call is now trying to call operator() on JSDOMGlobalObject, and compilation fails.

Either the generated code needs to use a different name for the argument, or that argument should always be included when we have runtime-enabled properties and then we should use that rather than making the call to globalObject() (assuming that's getting at the same object).

This code was added to CodeGeneratorJS.pm in http://trac.webkit.org/changeset/216198.

I ran into this problem trying to compile JSDocument.cpp after adding a settings-enabled function to DocumentOrShadowRoot.idl.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170622/78abd2e7/attachment-0001.html>


More information about the webkit-unassigned mailing list