mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1123516 - Implement maplike/setlike in WebIDL parser; r=bz (5d62bcd93) - Bug 1140324 - Remove __noSuchMethod__ handling from WebIDL parser and throw an exception instead. r=peterv (f7ea99339) - Bug 1123516 - Implement maplike/setlike in WebIDL Codegen; r=b (0ca39b335) - Bug 1183604, add some more assertions to help implementing new cycle collectable classes, r=mccr8 (1e66d29fe) - Bug 1178665 - Part 1: Make Promise::DispatchToMicroTask public. r=khuey (b962e6006) - Bug 1178665 - Part 2 - Adapt to latest Animation.finish procedure changes. r=bbirtles (33219fc0d) - Bug 1178665 - Part 3: Make finish notifications asynchronously in most cases. r=bbirtles, r=smaug (144c0944a) - Bug1180770part 1. Remove the unused ThrowNotEnoughArgsError. r=peterv (8bc1690f5) - Bug1180770part 2. Remove the unused ifaceName/memberName arguments of ThrowMethodFailedWithDetails and rename it to ThrowMethodFailed. r=peterv (ee4900547) - Bug 1135961. Implement subclassing of DOM objects. r=peterv (8e7e67b88) - Bug 1170691 - part 1 - add the generating script's directory to sys.path in file_generate.py; r=glandium (dd1520952) - Bug 1168409 - part 1 - avoid importing buildconfig in histogram_tools.py; r=gfritzsche (6a46dce23) - Bug 1168409 - part 2 - avoiding importing usecounters in histogram_tools.py; r=gfritzsche (21a468303) - Bug 1144397. Disallow using fill when dedent would do. r=peterv (544d4978d) - Bug 1158806. Don't try to include stuff for a generated hasInstance hook if we have no interface object, since in that case we don't need the include. r=peterv (d280a1608) - missing bit of Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T> (c51384311) - Bug 1166910 followup: Add missing 'override' keyword to HTMLImageElement method GetImageReferrerPolicy. rs=ehsan (9e3dc8e6d) - Bug 1174913 - remove unnecessary attribute parsing. r=bz (fdb769eda) - Bug 1170680 - Do not add non-animated images to the visible list in response to UNLOCKED_DRAW. r=tn (a594883e8) - Bug 1174923 - Stop delaying the document load event until images are decoded. r=tn a=kwierso (caee1b25f) - Bug 968923 - part 3b - propagating use counters from SVG images into owning/parent documents; r=seth (234a41484) - Bug 968923 - part 3a - add core DOM use counter functionality; r=smaug (98bb77358) - Bug 968923 - part 3c - miscellaneous telemetry changes for use counters; r=gfritzsche (83adec291) - Bug 968923 - part 4 - hook up use counters to WebIDL bindings; r=bz (8545e9a9b) - Bug 771367 - Update test_animations_omta.html to support testing pseudo-elements. r=dbaron (4b2e5481b) - Bug 1177563 - Test that we share agent rule processors across different documents. r=dbaron (d64146359) - Bug 1181450 - Make GENERATED_FILES more visible during the build by printing their name when they are being generated. r=gps (b0c2166e8) - Bug 1215526 - part 1 - pass dependencies file to file_generate.py; r=glandium (a14ea304a) - Bug 1215526 - part 2 - write dependencies to file_generate.py's depfile; r=glandium (dc49ad380)
This commit is contained in:
@@ -15,6 +15,7 @@ import sys
|
||||
import traceback
|
||||
|
||||
from mozbuild.util import FileAvoidWrite
|
||||
from mozbuild.makeutil import Makefile
|
||||
|
||||
def main(argv):
|
||||
parser = argparse.ArgumentParser('Generate a file from a Python script',
|
||||
@@ -25,12 +26,24 @@ def main(argv):
|
||||
help='The method of the script to invoke')
|
||||
parser.add_argument('output_file', metavar='output-file', type=str,
|
||||
help='The file to generate')
|
||||
parser.add_argument('dep_file', metavar='dep-file', type=str,
|
||||
help='File to write any additional make dependencies to')
|
||||
parser.add_argument('additional_arguments', metavar='arg', nargs='*',
|
||||
help="Additional arguments to the script's main() method")
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
script = args.python_script
|
||||
# Permit the script to import modules from the same directory in which it
|
||||
# resides. The justification for doing this is that if we were invoking
|
||||
# the script as:
|
||||
#
|
||||
# python script arg1...
|
||||
#
|
||||
# then importing modules from the script's directory would come for free.
|
||||
# Since we're invoking the script in a roundabout way, we provide this
|
||||
# bit of convenience.
|
||||
sys.path.append(os.path.dirname(script))
|
||||
with open(script, 'r') as fh:
|
||||
module = imp.load_module('script', fh, script,
|
||||
('.py', 'r', imp.PY_SOURCE))
|
||||
@@ -44,6 +57,16 @@ def main(argv):
|
||||
try:
|
||||
with FileAvoidWrite(args.output_file) as output:
|
||||
ret = module.__dict__[method](output, *args.additional_arguments)
|
||||
# We treat sets as a statement of success. Everything else
|
||||
# is an error (so scripts can conveniently |return 1| or
|
||||
# similar).
|
||||
if isinstance(ret, set) and ret:
|
||||
mk = Makefile()
|
||||
mk.create_rule([args.output_file]).add_dependencies(ret)
|
||||
with FileAvoidWrite(args.dep_file) as dep_file:
|
||||
mk.dump(dep_file)
|
||||
# The script succeeded, so reset |ret| to indicate that.
|
||||
ret = None
|
||||
except IOError as e:
|
||||
print('Error opening file "{0}"'.format(e.filename), file=sys.stderr)
|
||||
traceback.print_exc()
|
||||
|
||||
@@ -502,12 +502,16 @@ class RecursiveMakeBackend(CommonBackend):
|
||||
self._process_exports(obj, obj.exports, backend_file)
|
||||
|
||||
elif isinstance(obj, GeneratedFile):
|
||||
dep_file = "%s.pp" % obj.output
|
||||
backend_file.write('GENERATED_FILES += %s\n' % obj.output)
|
||||
backend_file.write('EXTRA_MDDEPEND_FILES += %s\n' % dep_file)
|
||||
if obj.script:
|
||||
backend_file.write("""{output}: {script}{inputs}
|
||||
\t$(call py_action,file_generate,{script} {method} {output}{inputs})
|
||||
\t$(REPORT_BUILD)
|
||||
\t$(call py_action,file_generate,{script} {method} {output} $(MDDEPDIR)/{dep_file}{inputs})
|
||||
|
||||
""".format(output=obj.output,
|
||||
dep_file=dep_file,
|
||||
inputs=' ' + ' '.join(obj.inputs) if obj.inputs else '',
|
||||
script=obj.script,
|
||||
method=obj.method))
|
||||
|
||||
@@ -693,6 +693,9 @@ VARIABLES = {
|
||||
GENERATED_FILES += ['bar.c']
|
||||
bar = GENERATED_FILES['bar.c']
|
||||
bar.script = 'generate.py:make_bar'
|
||||
|
||||
The chosen script entry point may optionally return a set of strings,
|
||||
indicating extra files the output depends on.
|
||||
""", 'export'),
|
||||
|
||||
'DEFINES': (OrderedDict, dict,
|
||||
|
||||
@@ -375,14 +375,19 @@ class TestRecursiveMakeBackend(BackendTester):
|
||||
|
||||
expected = [
|
||||
'GENERATED_FILES += bar.c',
|
||||
'EXTRA_MDDEPEND_FILES += bar.c.pp',
|
||||
'bar.c: %s/generate-bar.py' % env.topsrcdir,
|
||||
'$(call py_action,file_generate,%s/generate-bar.py baz bar.c)' % env.topsrcdir,
|
||||
'$(REPORT_BUILD)',
|
||||
'$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp)' % env.topsrcdir,
|
||||
'',
|
||||
'GENERATED_FILES += foo.c',
|
||||
'EXTRA_MDDEPEND_FILES += foo.c.pp',
|
||||
'foo.c: %s/generate-foo.py %s/foo-data' % (env.topsrcdir, env.topsrcdir),
|
||||
'$(call py_action,file_generate,%s/generate-foo.py main foo.c %s/foo-data)' % (env.topsrcdir, env.topsrcdir),
|
||||
'$(REPORT_BUILD)',
|
||||
'$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp %s/foo-data)' % (env.topsrcdir, env.topsrcdir),
|
||||
'',
|
||||
'GENERATED_FILES += quux.c',
|
||||
'EXTRA_MDDEPEND_FILES += quux.c.pp',
|
||||
]
|
||||
|
||||
self.maxDiff = None
|
||||
|
||||
Reference in New Issue
Block a user