2 # Copyright 2014 the V8 project authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
10 DECLARE_FILE = "src/assembler.h"
11 REGISTER_FILE = "src/snapshot/serialize.cc"
12 DECLARE_RE = re.compile("\s*static ExternalReference ([^(]+)\(")
13 REGISTER_RE = re.compile("\s*Add\(ExternalReference::([^(]+)\(")
15 WORKSPACE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), ".."))
25 def Find(filename, re):
27 with open(filename, "r") as f:
29 match = re.match(line)
31 references.append(match.group(1))
35 declarations = Find(DECLARE_FILE, DECLARE_RE)
36 registrations = Find(REGISTER_FILE, REGISTER_RE)
37 difference = list(set(declarations) - set(registrations) - set(BLACKLISTED))
38 for reference in difference:
39 print("Declared but not registered: ExternalReference::%s" % reference)
40 return len(difference) > 0
42 if __name__ == "__main__":