def generate_members(self):
     guards = set([object.annotations.get('conditional') for object in self.internals if 'conditional' in object.annotations])
     lines = [BuiltinsGenerator.wrap_with_guard(" || ".join(guards), "    JSC::VM& m_vm;")]
     for object in self.internals:
         member = "    %s %s;" % (self.member_type(object), self.member_name(object))
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), member))
     return '\n'.join(lines)
 def generate_constructor(self):
     guards = set([object.annotations.get('conditional') for object in self.internals if 'conditional' in object.annotations])
     lines = ["JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM& vm)",
              BuiltinsGenerator.wrap_with_guard(" || ".join(guards), "    : m_vm(vm)")]
     for object in self.internals:
         initializer = "    , %s(m_vm)" % self.member_name(object)
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), initializer))
     lines.append("{")
     lines.append("    UNUSED_PARAM(vm);")
     lines.append("}\n")
     return '\n'.join(lines)
コード例 #3
0
 def generate_constructor(self):
     lines = ["    explicit JSBuiltinFunctions(JSC::VM& vm)",
              "        : m_vm(vm)"]
     for object in self.model().objects:
         member_init = "        , %s(&m_vm)" % self.member_name(object)
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), member_init))
     lines.append("    {")
     for object in self.model().objects:
         if not 'internal' in object.annotations:
             continue
         internal_export_names = "        %s.exportNames();" % self.member_name(object)
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), internal_export_names))
     lines.append("    }\n")
     return '\n'.join(lines)
コード例 #4
0
    def generate_initialize_method(self):
        lines = ["void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject& globalObject)",
                "{",
                "    UNUSED_PARAM(globalObject);"]

        for object in self.internals:
            init = "    %s.init(globalObject);" % self.member_name(object)
            lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), init))
        lines.append("")

        guards = set([object.annotations.get('conditional') for object in self.internals if 'conditional' in object.annotations])
        lines.append(BuiltinsGenerator.wrap_with_guard(" || ".join(guards), self._generate_initialize_static_globals()))

        lines.append("}")
        return '\n'.join(lines)
 def generate_accessors(self):
     lines = []
     for object in self.internals:
         accessor = "    %s& %s() { return %s; }" % (self.member_type(object), self.accessor_name(object), self.member_name(object))
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), accessor))
     lines.append("")
     return '\n'.join(lines)
コード例 #6
0
 def generate_accessors(self):
     lines = []
     for object in self.model().objects:
         accessor = "    %s& %s() { return %s; }" % (self.member_type(object), self.accessor_name(object), self.member_name(object))
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), accessor))
     lines.append("")
     return '\n'.join(lines)
コード例 #7
0
 def generate_members(self):
     guards = set([
         object.annotations.get('conditional') for object in self.internals
         if 'conditional' in object.annotations
     ])
     lines = [
         BuiltinsGenerator.wrap_with_guard(" || ".join(guards),
                                           "    JSC::VM& m_vm;")
     ]
     for object in self.internals:
         member = "    %s %s;" % (self.member_type(object),
                                  self.member_name(object))
         lines.append(
             BuiltinsGenerator.wrap_with_guard(
                 object.annotations.get('conditional'), member))
     return '\n'.join(lines)
コード例 #8
0
 def _generate_initialize_static_globals(self):
     lines = ["    JSVMClientData& clientData = *static_cast<JSVMClientData*>(m_vm.clientData);",
              "    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {"]
     for object in self.internals:
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), self.property_macro(object)))
     lines.append("    };")
     lines.append("    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));")
     lines.append("    UNUSED_PARAM(clientData);")
     return '\n'.join(lines)
コード例 #9
0
 def generate_visit_method(self):
     lines = ["void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor& visitor)",
              "{"]
     for object in self.internals:
         visit = "    %s.visit(visitor);" % self.member_name(object)
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), visit))
     lines.append("    UNUSED_PARAM(visitor);")
     lines.append("}\n")
     return '\n'.join(lines)
 def generate_members(self):
     lines = ["    JSC::VM& m_vm;"]
     for object in self.model().objects:
         member = "    %s %s;" % (self.member_type(object),
                                  self.member_name(object))
         lines.append(
             BuiltinsGenerator.wrap_with_guard(
                 object.annotations.get('conditional'), member))
     return '\n'.join(lines)
コード例 #11
0
 def generate_constructor(self):
     guards = set([
         object.annotations.get('conditional') for object in self.internals
         if 'conditional' in object.annotations
     ])
     lines = [
         "JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM& vm)",
         BuiltinsGenerator.wrap_with_guard(" || ".join(guards),
                                           "    : m_vm(vm)")
     ]
     for object in self.internals:
         initializer = "    , %s(m_vm)" % self.member_name(object)
         lines.append(
             BuiltinsGenerator.wrap_with_guard(
                 object.annotations.get('conditional'), initializer))
     lines.append("{")
     lines.append("    UNUSED_PARAM(vm);")
     lines.append("}\n")
     return '\n'.join(lines)
コード例 #12
0
 def generate_constructor(self):
     lines = [
         "JSBuiltinInternalFunctions::JSBuiltinInternalFunctions(JSC::VM& vm)",
         "    : m_vm(vm)"
     ]
     for object in self.internals:
         initializer = "    , %s(m_vm)" % self.member_name(object)
         lines.append(
             BuiltinsGenerator.wrap_with_guard(
                 object.annotations.get('conditional'), initializer))
     lines.append("{\n}\n")
     return '\n'.join(lines)
コード例 #13
0
    def generate_methods(self):
        lines = [
            "void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor& visitor)",
            "{"
        ]
        for object in self.internals:
            visit = "    %s.visit(visitor);" % self.member_name(object)
            lines.append(
                BuiltinsGenerator.wrap_with_guard(
                    object.annotations.get('conditional'), visit))
        lines.append("    UNUSED_PARAM(visitor);\n}")

        lines.append(
            "void JSBuiltinInternalFunctions::initialize(JSDOMGlobalObject& globalObject)"
        )
        lines.append("{")
        for object in self.internals:
            init = "    %s.init(globalObject);" % self.member_name(object)
            lines.append(
                BuiltinsGenerator.wrap_with_guard(
                    object.annotations.get('conditional'), init))

        lines.append(
            "    JSVMClientData& clientData = *static_cast<JSVMClientData*>(m_vm.clientData);"
        )
        lines.append(
            "    JSDOMGlobalObject::GlobalPropertyInfo staticGlobals[] = {")
        for object in self.internals:
            lines.append(
                BuiltinsGenerator.wrap_with_guard(
                    object.annotations.get('conditional'),
                    self.property_macro(object)))
        lines.append("    };")
        lines.append(
            "    globalObject.addStaticGlobals(staticGlobals, WTF_ARRAY_LENGTH(staticGlobals));"
        )
        lines.append("    UNUSED_PARAM(clientData);")
        lines.append("}")
        return '\n'.join(lines)
コード例 #14
0
 def generate_members(self):
     lines = ["    JSC::VM& m_vm;"]
     for object in self.model().objects:
         member = "    %s %s;" % (self.member_type(object), self.member_name(object))
         lines.append(BuiltinsGenerator.wrap_with_guard(object.annotations.get('conditional'), member))
     return '\n'.join(lines)