Line # Revision Author
1 583 dhwang Coding standards for Selenium Core Javascript code
2 --------------------------------------------------
3
4 Here is a set of conventions agreed by the active Selenium Core
5 developers at ThoughtWorks. Please stick to these guidelines when
6 working on the Selenium Core code-base.
7
8 Whitespace: we use spaces, NOT TABS. Indent in 4-space increments.
9
10 Braces: we place open-braces on the same line as the associated keyword,
11 for example:
12
13 if (command.isBreakpoint) {
14 this.pause();
15 } else {
16 window.setTimeout(this.resume.bind(this), delay);
17 }
18
19 Encapsulation: we prefer to encapsulate functions and variables inside
20 objects, where possible.
21
22 Variable declarations: declare variables (using "var") ... even if they're
23 "global".
24
25 Class definitions: we're shifting to "prototype.js" style for
26 definition of classes, e.g.
27
28 var MyClass = Class.create();
29 Object.extend(MyClass.prototype, {
30
31 initialize: function() {
32 // ... constructor code ...
33 },
34
35 doStuff: function() {
36 // ... method body ...
37 }
38
39 });
40
41 'Private' functions/properties: we simulate "private" properties by
42 prepended the name with an underscore ("_"), e.g.
43
44 _resumeAfterDelay : function() {
45 // ...etc...
46 },
47
48 Element addressing: use "$(id)" rather than
49 "document.getElementById('id')".
50
51 Timeout functions: pass function objects to setTimeout(), rather than
52 strings, e.g.
53
54 window.setTimeout(this.resume.bind(this), delay);