summaryrefslogtreecommitdiffstats
path: root/ios/web/js_compile_checked.gypi
blob: 359bc69c7b28e4c6b0a1da6b985431e914a5ab77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This file should be identical to js_compile.gypi except it passes jscomp_error
# flags to the compiler. One should prefer this over js_compile.gypi once the
# JS code being compiled are error free.
#
# This file should be eventually deprecated in favor of
# third_party/closure_compiler/compile_js.gypi once they have the same set of
# jscomp_error flags enabled. See http://crbug.com/487804
{
  'variables': {
    'closure_compiler_path': '<(DEPTH)/third_party/closure_compiler/compiler/compiler.jar',
    'compile_javascript%': 1,
  },
  'conditions': [
    ['compile_javascript==1', {
      'rules': [
        {
          'rule_name': 'jscompilation',
          'extension': 'js',
          'inputs': [
            '<(closure_compiler_path)',
          ],
          'outputs': [
            '<(SHARED_INTERMEDIATE_DIR)/<(RULE_INPUT_NAME)',
          ],
          'action': [
            'java',
            '-jar',
            '<(closure_compiler_path)',
            '--compilation_level',
            'SIMPLE_OPTIMIZATIONS',
            '--jscomp_error=accessControls',
            '--jscomp_error=ambiguousFunctionDecl',
            '--jscomp_error=checkStructDictInheritance',
            # '--jscomp_error=checkTypes',
            # '--jscomp_error=checkVars',
            '--jscomp_error=constantProperty',
            '--jscomp_error=deprecated',
            '--jscomp_error=externsValidation',
            '--jscomp_error=globalThis',
            '--jscomp_error=invalidCasts',
            # '--jscomp_error=missingProperties',
            # '--jscomp_error=missingReturn',
            '--jscomp_error=nonStandardJsDocs',
            '--jscomp_error=suspiciousCode',
            '--jscomp_error=undefinedNames',
            # '--jscomp_error=undefinedVars',
            '--jscomp_error=unknownDefines',
            '--jscomp_error=uselessCode',
            '--jscomp_error=visibility',
            '--js',
            '<(RULE_INPUT_PATH)',
            '--js_output_file',
            '<@(_outputs)',
          ],
          'message': 'Running closure compiler on <(RULE_INPUT_NAME)',
        }  # rule_name: jscompilation
      ]},
     {  # else
      'rules': [
        {
          'rule_name': 'jscompilation',
          'extension': 'js',
          'outputs': [
            '<(SHARED_INTERMEDIATE_DIR)/<(RULE_INPUT_NAME)',
          ],
          'action': [
            'cp',
            '<(RULE_INPUT_PATH)',
            '<@(_outputs)',
          ],
        }
      ]}  # rule_name: jscompilation
    ]  # condition: compile_javascript
  ]  # conditions
}