tools,src: forbid usage of v8::Persistent · noslate-project/node@e23bf8f (original) (raw)
`@@ -321,6 +321,7 @@
`
321
321
`'runtime/string',
`
322
322
`'runtime/threadsafe_fn',
`
323
323
`'runtime/vlog',
`
``
324
`+
'runtime/v8_persistent',
`
324
325
`'whitespace/blank_line',
`
325
326
`'whitespace/braces',
`
326
327
`'whitespace/comma',
`
627
628
``
628
629
`_NULL_TOKEN_PATTERN = re.compile(r'\bNULL\b')
`
629
630
``
``
631
`+
_V8_PERSISTENT_PATTERN = re.compile(r'\bv8::Persistent\b')
`
``
632
+
630
633
`_RIGHT_LEANING_POINTER_PATTERN = re.compile(r'[^=|(,\s><);&?:}]'
`
631
634
`r'(?<!(sizeof|return))'
`
632
635
`r'\s*[a-zA-Z_][0-9a-zA-Z_]*')
`
`@@ -4547,6 +4550,28 @@ def CheckNullTokens(filename, clean_lines, linenum, error):
`
4547
4550
`error(filename, linenum, 'readability/null_usage', 2,
`
4548
4551
`'Use nullptr instead of NULL')
`
4549
4552
``
``
4553
`+
def CheckV8PersistentTokens(filename, clean_lines, linenum, error):
`
``
4554
`+
"""Check v8::Persistent usage.
`
``
4555
+
``
4556
`+
Args:
`
``
4557
`+
filename: The name of the current file.
`
``
4558
`+
clean_lines: A CleansedLines instance containing the file.
`
``
4559
`+
linenum: The number of the line to check.
`
``
4560
`+
error: The function to call with any errors found.
`
``
4561
`+
"""
`
``
4562
`+
line = clean_lines.elided[linenum]
`
``
4563
+
``
4564
`+
Avoid preprocessor lines
`
``
4565
`+
if Match(r'^\s*#', line):
`
``
4566
`+
return
`
``
4567
+
``
4568
`+
if line.find('/') >= 0 or line.find('/') >= 0:
`
``
4569
`+
return
`
``
4570
+
``
4571
`+
for match in _V8_PERSISTENT_PATTERN.finditer(line):
`
``
4572
`+
error(filename, linenum, 'runtime/v8_persistent', 2,
`
``
4573
`+
'Use v8::Global instead of v8::Persistent')
`
``
4574
+
4550
4575
`def CheckLeftLeaningPointer(filename, clean_lines, linenum, error):
`
4551
4576
`"""Check for left-leaning pointer placement.
`
4552
4577
``
`@@ -4723,6 +4748,7 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
`
4723
4748
`CheckCheck(filename, clean_lines, linenum, error)
`
4724
4749
`CheckAltTokens(filename, clean_lines, linenum, error)
`
4725
4750
`CheckNullTokens(filename, clean_lines, linenum, error)
`
``
4751
`+
CheckV8PersistentTokens(filename, clean_lines, linenum, error)
`
4726
4752
`CheckLeftLeaningPointer(filename, clean_lines, linenum, error)
`
4727
4753
`classinfo = nesting_state.InnermostClass()
`
4728
4754
`if classinfo:
`