aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/run.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen/run.py')
-rw-r--r--components/script/dom/bindings/codegen/run.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/run.py b/components/script/dom/bindings/codegen/run.py
index 52840b1b1d3..2dee39814b2 100644
--- a/components/script/dom/bindings/codegen/run.py
+++ b/components/script/dom/bindings/codegen/run.py
@@ -5,10 +5,13 @@
import os
import sys
import json
+import re
SCRIPT_PATH = os.path.abspath(os.path.dirname(__file__))
SERVO_ROOT = os.path.abspath(os.path.join(SCRIPT_PATH, "..", "..", "..", "..", ".."))
+FILTER_PATTERN = re.compile("// skip-unless ([A-Z_]+)\n")
+
def main():
os.chdir(os.path.join(os.path.dirname(__file__)))
@@ -32,7 +35,14 @@ def main():
for webidl in webidls:
filename = os.path.join(webidls_dir, webidl)
with open(filename, "r", encoding="utf-8") as f:
- parser.parse(f.read(), filename)
+ contents = f.read()
+ filter_match = FILTER_PATTERN.search(contents)
+ if filter_match:
+ env_var = filter_match.group(1)
+ if not os.environ.get(env_var):
+ continue
+
+ parser.parse(contents, filename)
add_css_properties_attributes(css_properties_json, parser)
parser_results = parser.finish()