tools,src: forbid usage of v8::Persistent · MoLow/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:

`