summaryrefslogtreecommitdiffstats
path: root/config/check_js_opcode.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--config/check_js_opcode.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/config/check_js_opcode.py b/config/check_js_opcode.py
new file mode 100644
index 0000000000..c42ea5ee63
--- /dev/null
+++ b/config/check_js_opcode.py
@@ -0,0 +1,50 @@
+# vim: set ts=8 sts=4 et sw=4 tw=99:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# ----------------------------------------------------------------------------
+# This script checks bytecode documentation in js/src/vm/Opcodes.h
+# ----------------------------------------------------------------------------
+
+from __future__ import absolute_import
+from __future__ import print_function
+
+import os
+import sys
+
+scriptname = os.path.basename(__file__)
+topsrcdir = os.path.dirname(os.path.dirname(__file__))
+
+
+def log_pass(text):
+ print("TEST-PASS | {} | {}".format(scriptname, text))
+
+
+def log_fail(text):
+ print("TEST-UNEXPECTED-FAIL | {} | {}".format(scriptname, text))
+
+
+def check_opcode():
+ sys.path.insert(0, os.path.join(topsrcdir, "js", "src", "vm"))
+ import jsopcode
+
+ try:
+ jsopcode.get_opcodes(topsrcdir)
+ except Exception as e:
+ log_fail(e.args[0])
+ return False
+
+ log_pass("ok")
+ return True
+
+
+def main():
+ if not check_opcode():
+ sys.exit(1)
+
+ sys.exit(0)
+
+
+if __name__ == "__main__":
+ main()