aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py225
-rw-r--r--components/script/dom/bindings/codegen/Configuration.py13
2 files changed, 4 insertions, 234 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 9bfaa0c9cfd..d6ca15dd546 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5,7 +5,6 @@
# Common codegen classes.
import operator
-import os
import re
import string
import textwrap
@@ -24,7 +23,6 @@ from Configuration import getTypesFromDescriptor, getTypesFromDictionary, getTyp
AUTOGENERATED_WARNING_COMMENT = \
"/* THIS FILE IS AUTOGENERATED - DO NOT EDIT */\n\n"
-ADDPROPERTY_HOOK_NAME = '_addProperty'
FINALIZE_HOOK_NAME = '_finalize'
TRACE_HOOK_NAME = '_trace'
CONSTRUCT_HOOK_NAME = '_constructor'
@@ -528,17 +526,6 @@ class CGMethodCall(CGThing):
return self.cgRoot.define()
-class FakeCastableDescriptor():
- def __init__(self, descriptor):
- self.nativeType = "*const %s" % descriptor.concreteType
- self.name = descriptor.name
-
- class FakeInterface:
- def inheritanceDepth(self):
- return descriptor.interface.inheritanceDepth()
- self.interface = FakeInterface()
-
-
def dictionaryHasSequenceMember(dictionary):
return (any(typeIsSequenceOrHasSequenceMember(m.type) for m in
dictionary.members) or
@@ -695,15 +682,6 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
'%s' % (firstCap(sourceDescription), exceptionCode))),
post="\n")
- def onFailureBadType(failureCode, typeName):
- return CGWrapper(
- CGGeneric(
- failureCode or
- ('throw_type_error(cx, \"%s does not implement interface %s.\");\n'
- '%s' % (firstCap(sourceDescription), typeName,
- exceptionCode))),
- post="\n")
-
def onFailureNotCallable(failureCode):
return CGWrapper(
CGGeneric(
@@ -1267,18 +1245,6 @@ def typeNeedsCx(type, retVal=False):
return type.isAny() or type.isObject()
-def typeRetValNeedsRooting(type):
- if type is None:
- return False
- if type.nullable():
- type = type.inner
- return type.isGeckoInterface() and not type.isCallback() and not type.isCallbackInterface()
-
-
-def memberIsCreator(member):
- return member.getExtendedAttribute("Creator") is not None
-
-
# Returns a CGThing containing the type of the return value.
def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType is None or returnType.isVoid():
@@ -1726,13 +1692,6 @@ class CGImports(CGWrapper):
CGWrapper.__init__(self, child,
pre='\n'.join(statements) + '\n\n')
- @staticmethod
- def getDeclarationFilename(decl):
- # Use our local version of the header, not the exported one, so that
- # test bindings, which don't export, will work correctly.
- basename = os.path.basename(decl.filename())
- return basename.replace('.webidl', 'Binding.rs')
-
class CGIfWrapper(CGWrapper):
def __init__(self, child, condition):
@@ -2649,11 +2608,6 @@ class CGCallGenerator(CGThing):
return self.cgRoot.define()
-class MethodNotCreatorError(Exception):
- def __init__(self, typename):
- self.typename = typename
-
-
class CGPerSignatureCall(CGThing):
"""
This class handles the guts of generating code for a particular
@@ -2826,10 +2780,6 @@ class CGSetterCall(CGPerSignatureCall):
def getArgc(self):
return "1"
- def getArgvDecl(self):
- # We just get our stuff from our last arg no matter what
- return ""
-
class CGAbstractStaticBindingMethod(CGAbstractMethod):
"""
@@ -3695,31 +3645,6 @@ class ClassMethod(ClassItem):
pass
-class ClassUsingDeclaration(ClassItem):
- """"
- Used for importing a name from a base class into a CGClass
-
- baseClass is the name of the base class to import the name from
-
- name is the name to import
-
- visibility determines the visibility of the name (public,
- protected, private), defaults to public.
- """
- def __init__(self, baseClass, name, visibility='public'):
- self.baseClass = baseClass
- ClassItem.__init__(self, name, visibility)
-
- def declare(self, cgClass):
- return string.Template("""\
-using ${baseClass}::${name};
-""").substitute({'baseClass': self.baseClass,
- 'name': self.name})
-
- def define(self, cgClass):
- return ''
-
-
class ClassConstructor(ClassItem):
"""
Used for adding a constructor to a CGClass.
@@ -3825,77 +3750,6 @@ ${className}::${className}(${args})${initializationList}
'body': body})
-class ClassDestructor(ClassItem):
- """
- Used for adding a destructor to a CGClass.
-
- inline should be True if the destructor should be marked inline.
-
- bodyInHeader should be True if the body should be placed in the class
- declaration in the header.
-
- visibility determines the visibility of the destructor (public,
- protected, private), defaults to private.
-
- body contains a string with the code for the destructor, defaults to empty.
-
- virtual determines whether the destructor is virtual, defaults to False.
- """
- def __init__(self, inline=False, bodyInHeader=False,
- visibility="private", body='', virtual=False):
- self.inline = inline or bodyInHeader
- self.bodyInHeader = bodyInHeader
- self.body = body
- self.virtual = virtual
- ClassItem.__init__(self, None, visibility)
-
- def getDecorators(self, declaring):
- decorators = []
- if self.virtual and declaring:
- decorators.append('virtual')
- if self.inline and declaring:
- decorators.append('inline')
- if decorators:
- return ' '.join(decorators) + ' '
- return ''
-
- def getBody(self):
- return self.body
-
- def declare(self, cgClass):
- if self.bodyInHeader:
- body = ' ' + self.getBody()
- body = stripTrailingWhitespace(body.replace('\n', '\n '))
- if len(body) > 0:
- body += '\n'
- body = '\n{\n' + body + '}'
- else:
- body = ';'
-
- return string.Template("""\
-${decorators}~${className}()${body}
-""").substitute({'decorators': self.getDecorators(True),
- 'className': cgClass.getNameString(),
- 'body': body})
-
- def define(self, cgClass):
- if self.bodyInHeader:
- return ''
-
- body = ' ' + self.getBody()
- body = '\n' + stripTrailingWhitespace(body.replace('\n', '\n '))
- if len(body) > 0:
- body += '\n'
-
- return string.Template("""\
-${decorators}
-${className}::~${className}()
-{${body}}
-""").substitute({'decorators': self.getDecorators(False),
- 'className': cgClass.getNameString(),
- 'body': body})
-
-
class ClassMember(ClassItem):
def __init__(self, name, type, visibility="priv", static=False,
body=None):
@@ -3918,63 +3772,14 @@ class ClassMember(ClassItem):
self.name, body)
-class ClassTypedef(ClassItem):
- def __init__(self, name, type, visibility="public"):
- self.type = type
- ClassItem.__init__(self, name, visibility)
-
- def declare(self, cgClass):
- return 'typedef %s %s;\n' % (self.type, self.name)
-
- def define(self, cgClass):
- # Only goes in the header
- return ''
-
-
-class ClassEnum(ClassItem):
- def __init__(self, name, entries, values=None, visibility="public"):
- self.entries = entries
- self.values = values
- ClassItem.__init__(self, name, visibility)
-
- def declare(self, cgClass):
- entries = []
- for i in range(0, len(self.entries)):
- if not self.values or i >= len(self.values):
- entry = '%s' % self.entries[i]
- else:
- entry = '%s = %s' % (self.entries[i], self.values[i])
- entries.append(entry)
- name = '' if not self.name else ' ' + self.name
- return 'enum%s\n{\n%s\n};\n' % (name, ',\n '.join(entries))
-
- def define(self, cgClass):
- # Only goes in the header
- return ''
-
-
-class ClassUnion(ClassItem):
- def __init__(self, name, entries, visibility="public"):
- self.entries = [entry + ";" for entry in entries]
- ClassItem.__init__(self, name, visibility)
-
- def declare(self, cgClass):
- return 'union %s\n{\n%s\n};\n' % (self.name, '\n '.join(self.entries))
-
- def define(self, cgClass):
- # Only goes in the header
- return ''
-
-
class CGClass(CGThing):
def __init__(self, name, bases=[], members=[], constructors=[],
destructor=None, methods=[],
typedefs=[], enums=[], unions=[], templateArgs=[],
- templateSpecialization=[], isStruct=False,
+ templateSpecialization=[],
disallowCopyConstruction=False, indent='',
decorators='',
- extradeclarations='',
- extradefinitions=''):
+ extradeclarations=''):
CGThing.__init__(self)
self.name = name
self.bases = bases
@@ -3989,12 +3794,10 @@ class CGClass(CGThing):
self.unions = unions
self.templateArgs = templateArgs
self.templateSpecialization = templateSpecialization
- self.isStruct = isStruct
self.disallowCopyConstruction = disallowCopyConstruction
self.indent = indent
self.decorators = decorators
self.extradeclarations = extradeclarations
- self.extradefinitions = extradefinitions
def getNameString(self):
className = self.name
@@ -4170,15 +3973,6 @@ class CGProxyNamedGetter(CGProxySpecialOperation):
CGProxySpecialOperation.__init__(self, descriptor, 'NamedGetter')
-class CGProxyNamedPresenceChecker(CGProxyNamedGetter):
- """
- Class to generate a call that checks whether a named property exists.
- For now, we just delegate to CGProxyNamedGetter
- """
- def __init__(self, descriptor):
- CGProxyNamedGetter.__init__(self, descriptor)
-
-
class CGProxyNamedSetter(CGProxySpecialOperation):
"""
Class to generate a call to a named setter.
@@ -5041,10 +4835,6 @@ class CGDictionary(CGThing):
return CGGeneric(conversion)
@staticmethod
- def makeIdName(name):
- return name + "_id"
-
- @staticmethod
def makeMemberName(name):
# Can't use Rust keywords as member names.
if name == "type":
@@ -5297,12 +5087,8 @@ def return_type(descriptorProvider, rettype, infallible):
class CGNativeMember(ClassMethod):
def __init__(self, descriptorProvider, member, name, signature, extendedAttrs,
- breakAfter=True, passJSBitsAsNeeded=True, visibility="public",
- jsObjectsArePtr=False, variadicIsSequence=False):
+ breakAfter=True, passJSBitsAsNeeded=True, visibility="public"):
"""
- If jsObjectsArePtr is true, typed arrays and "object" will be
- passed as JSObject*.
-
If passJSBitsAsNeeded is false, we don't automatically pass in a
JSContext* or a JSObject* based on the return and argument types.
"""
@@ -5310,8 +5096,6 @@ class CGNativeMember(ClassMethod):
self.member = member
self.extendedAttrs = extendedAttrs
self.passJSBitsAsNeeded = passJSBitsAsNeeded
- self.jsObjectsArePtr = jsObjectsArePtr
- self.variadicIsSequence = variadicIsSequence
breakAfterSelf = "\n" if breakAfter else ""
ClassMethod.__init__(self, name,
self.getReturnType(signature[0]),
@@ -5543,8 +5327,7 @@ class CallbackMember(CGNativeMember):
name, (self.retvalType, args),
extendedAttrs={},
passJSBitsAsNeeded=False,
- visibility=visibility,
- jsObjectsArePtr=True)
+ visibility=visibility)
# We have to do all the generation of our body now, because
# the caller relies on us throwing if we can't manage it.
self.exceptionCode = "return Err(JSFailed);"
diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py
index 436823a9329..4e740f83a16 100644
--- a/components/script/dom/bindings/codegen/Configuration.py
+++ b/components/script/dom/bindings/codegen/Configuration.py
@@ -4,8 +4,6 @@
from WebIDL import IDLInterface
-autogenerated_comment = "/* THIS FILE IS AUTOGENERATED - DO NOT EDIT */\n"
-
class Configuration:
"""
@@ -344,17 +342,6 @@ def getTypesFromDescriptor(descriptor):
return types
-def getFlatTypes(types):
- retval = set()
- for type in types:
- type = type.unroll()
- if type.isUnion():
- retval |= set(type.flatMemberTypes)
- else:
- retval.add(type)
- return retval
-
-
def getTypesFromDictionary(dictionary):
"""
Get all member types for this dictionary