| Index: tools/check-name-clashes.py
|
| diff --git a/tools/check-name-clashes.py b/tools/check-name-clashes.py
|
| deleted file mode 100755
|
| index 25f3aace55ba62a2ec12039f429f3dac8050709c..0000000000000000000000000000000000000000
|
| --- a/tools/check-name-clashes.py
|
| +++ /dev/null
|
| @@ -1,118 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright 2014 the V8 project authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import js2c
|
| -import os
|
| -import re
|
| -import sys
|
| -
|
| -FILENAME = "src/runtime/runtime.h"
|
| -LISTHEAD = re.compile(r"#define\s+(FOR_EACH_\w+)\((\w+)\)")
|
| -LISTBODY = re.compile(r".*\\$")
|
| -
|
| -
|
| -class Function(object):
|
| - def __init__(self, match):
|
| - self.name = match.group(1).strip()
|
| -
|
| -def ListMacroRe(list):
|
| - macro = LISTHEAD.match(list[0]).group(2)
|
| - re_string = "\s*%s\((\w+)" % macro
|
| - return re.compile(re_string)
|
| -
|
| -
|
| -def FindLists(filename):
|
| - lists = []
|
| - current_list = []
|
| - mode = "SEARCHING"
|
| - with open(filename, "r") as f:
|
| - for line in f:
|
| - if mode == "SEARCHING":
|
| - match = LISTHEAD.match(line)
|
| - if match:
|
| - mode = "APPENDING"
|
| - current_list.append(line)
|
| - else:
|
| - current_list.append(line)
|
| - match = LISTBODY.match(line)
|
| - if not match:
|
| - mode = "SEARCHING"
|
| - lists.append(current_list)
|
| - current_list = []
|
| - return lists
|
| -
|
| -
|
| -# Detects runtime functions by parsing FILENAME.
|
| -def FindRuntimeFunctions():
|
| - functions = []
|
| - lists = FindLists(FILENAME)
|
| - for list in lists:
|
| - function_re = ListMacroRe(list)
|
| - for line in list:
|
| - match = function_re.match(line)
|
| - if match:
|
| - functions.append(Function(match))
|
| - return functions
|
| -
|
| -
|
| -class Builtin(object):
|
| - def __init__(self, match):
|
| - self.name = match.group(1)
|
| -
|
| -
|
| -def FindJSNatives():
|
| - PATH = "src"
|
| - fileslist = []
|
| - for (root, dirs, files) in os.walk(PATH):
|
| - for f in files:
|
| - if f.endswith(".js"):
|
| - fileslist.append(os.path.join(root, f))
|
| - natives = []
|
| - regexp = re.compile("^function (\w+)\s*\((.*?)\) {")
|
| - matches = 0
|
| - for filename in fileslist:
|
| - with open(filename, "r") as f:
|
| - file_contents = f.read()
|
| - file_contents = js2c.ExpandInlineMacros(file_contents)
|
| - lines = file_contents.split("\n")
|
| - partial_line = ""
|
| - for line in lines:
|
| - if line.startswith("function") and not '{' in line:
|
| - partial_line += line.rstrip()
|
| - continue
|
| - if partial_line:
|
| - partial_line += " " + line.strip()
|
| - if '{' in line:
|
| - line = partial_line
|
| - partial_line = ""
|
| - else:
|
| - continue
|
| - match = regexp.match(line)
|
| - if match:
|
| - natives.append(Builtin(match))
|
| - return natives
|
| -
|
| -
|
| -def Main():
|
| - functions = FindRuntimeFunctions()
|
| - natives = FindJSNatives()
|
| - errors = 0
|
| - runtime_map = {}
|
| - for f in functions:
|
| - runtime_map[f.name] = 1
|
| - for b in natives:
|
| - if b.name in runtime_map:
|
| - print("JS_Native/Runtime_Function name clash: %s" % b.name)
|
| - errors += 1
|
| -
|
| - if errors > 0:
|
| - return 1
|
| - print("Runtime/Natives name clashes: checked %d/%d functions, all good." %
|
| - (len(functions), len(natives)))
|
| - return 0
|
| -
|
| -
|
| -if __name__ == "__main__":
|
| - sys.exit(Main())
|
|
|