/tests/document.js:1: ERROR - Access to "document" property of global object is disallowed
document.bar();
^

/tests/document.js:2: ERROR - Access to "document" property of global object is disallowed
window.document.bar();
       ^

/tests/document.js:5: ERROR - Access to "document" property of global object is disallowed
document();
^

/tests/document.js:6: ERROR - Access to "document" property of global object is disallowed
var x = window.document;
               ^

/tests/document.js:24: ERROR - Access to "document" property of global object is disallowed
    document.bar();
    ^

/tests/document.js:25: ERROR - Access to "document" property of global object is disallowed
    document();
    ^

/tests/document.js:26: ERROR - Access to "document" property of global object is disallowed
    var inner = document + bar;
                ^

/tests/document.js:47: ERROR - Access to "document" property of global object is disallowed
    document;
    ^

/tests/document.js:48: ERROR - Access to "document" property of global object is disallowed
    window.document;
           ^

/tests/document.js:53: ERROR - Access to "document" property of global object is disallowed
var z = document.document;
        ^

/tests/document.js:54: ERROR - Access to "document" property of global object is disallowed
var bar = window + window.document;
                          ^

/tests/document.js:56: ERROR - Access to "document" property of global object is disallowed
self.document = bar;
     ^

/tests/document.js:57: ERROR - Access to "addEventListener" property of global object is disallowed
self.addEventListener();
     ^

/tests/document.js:58: ERROR - Access to "removeEventListener" property of global object is disallowed
self.removeEventListener();
     ^

/tests/document.js:59: ERROR - Access to "requestAnimationFrame" property of global object is disallowed
self.requestAnimationFrame();
     ^

/tests/document.js:60: ERROR - Access to "cancelAnimationFrame" property of global object is disallowed
window.cancelAnimationFrame();
       ^

/tests/document.js:61: ERROR - Access to "getSelection" property of global object is disallowed
getSelection();
^

/tests/function.js:1: ERROR - @return annotation is required for API functions that return value
function badFuncNoAnnotation() {
         ^

/tests/function.js:8: ERROR - @return annotation found, yet function does not return value
function badFuncAnnotatedButNoReturn() // ERROR - no @return annotation.
         ^

/tests/function.js:15: ERROR - @return annotation found, yet function does not return value
function badFuncAnnotatedButNoReturnValue() // ERROR - no returned value.
         ^

/tests/function.js:29: ERROR - invalid return type annotation found - should be "@return {<type>}"
 * @returns {number}
   ^

/tests/function.js:37: ERROR - invalid return type annotation found - should be "@return {<type>}"
 * @return number
   ^

/tests/function.js:45: ERROR - Invalid @param annotation found - should be "@param {<type>} paramName"
 * @param number foo
          ^

/tests/function.js:46: ERROR - Invalid @param annotation found - should be "@param {<type>} paramName"
 * @param bar
          ^

/tests/function.js:48: ERROR - @return annotation is required for API functions that return value
function badParamAnnotationsFunc(foo, bar) // ERROR - @param's should be well-formed
         ^

/tests/function.js:55: ERROR - invalid return type annotation found - please remove, as function does not return value
 * @returns {number}
   ^

/tests/function.js:63: ERROR - invalid return type annotation found - please remove, as function does not return value
 * @returns {number}
   ^

/tests/function.js:80: ERROR - @return annotation is required for API functions that return value
    badApiMethodNoAnnotation: function() // ERROR - public method.
    ^

/tests/function.js:97: ERROR - @this annotation is required for functions referencing 'this'
        /**
        ^

/tests/function.js:126: ERROR - @return annotation found, yet function does not return value
    badMethodDoesNotReturnValue: function() // ERROR - does not return value.
    ^

/tests/function.js:134: ERROR - @return annotation found, yet function does not return value
    badMethodDoesNotReturn: function() // ERROR - does not return.
    ^

/tests/function.js:140: ERROR - invalid return type annotation found - should be "@return {<type>}"
     * @returns {number}
       ^

/tests/function.js:148: ERROR - invalid return type annotation found - please remove, as function does not return value
     * @returns {number}
       ^

/tests/function.js:156: ERROR - invalid return type annotation found - please remove, as function does not return value
     * @returns {number}
       ^

/tests/function.js:176: ERROR - @return annotation is required for API functions that return value
    badApiMethodNoAnnotation: function() // ERROR - public method.
    ^

/tests/function.js:197: ERROR - @return annotation found, yet function does not return value
    badMethodDoesNotReturnValue: function() // ERROR - does not return value.
    ^

/tests/function.js:205: ERROR - @return annotation found, yet function does not return value
    badMethodDoesNotReturn: function() // ERROR - does not return.
    ^

/tests/function.js:211: ERROR - invalid return type annotation found - should be "@return {<type>}"
     * @returns {number}
       ^

/tests/function.js:219: ERROR - invalid return type annotation found - please remove, as function does not return value
     * @returns {number}
       ^

/tests/function.js:227: ERROR - invalid return type annotation found - please remove, as function does not return value
     * @returns {number}
       ^

/tests/function.js:247: ERROR - invalid return type annotation found - should be "@return {<type>}"
     * @returns {number}
       ^

/tests/function.js:268: ERROR - @return annotation is required for API functions that return value
    badApiMethodNoAnnotation: function() // ERROR - public method.
    ^

/tests/function.js:289: ERROR - @return annotation found, yet function does not return value
    badMethodDoesNotReturnValue: function() // ERROR - does not return value.
    ^

/tests/function.js:297: ERROR - @return annotation found, yet function does not return value
    badMethodDoesNotReturn: function() // ERROR - does not return.
    ^

/tests/function.js:303: ERROR - invalid return type annotation found - should be "@return {<type>}"
     * @returns {number}
       ^

/tests/function.js:311: ERROR - invalid return type annotation found - should be "@return {<type>}"
     * @returns number
       ^

/tests/function.js:319: ERROR - invalid return type annotation found - please remove, as function does not return value
     * @returns {number}
       ^

/tests/function.js:327: ERROR - invalid return type annotation found - please remove, as function does not return value
     * @returns {number}
       ^

/tests/function.js:335: ERROR - Invalid @param annotation found - should be "@param {<type>} paramName"
     * @param number foo
              ^

/tests/function.js:336: ERROR - Invalid @param annotation found - should be "@param {<type>} paramName"
     * @param bar
              ^

/tests/function.js:338: ERROR - @return annotation is required for API functions that return value
    badMethodParamAnnotations: function(foo, bar) // ERROR - @param's should be well-formed
    ^

/tests/function.js:357: ERROR - No @param JSDoc tag found for parameters: [b]
/**
^

/tests/function.js:363: ERROR - No @param JSDoc tag found for parameters: [b,c]
/**
^

/tests/proto.js:8: ERROR - No __proto__ assigned for type DerivedNoProto having @extends
 * @extends {Base}
             ^

/tests/proto.js:10: ERROR - Type DerivedNoProto extends Base but does not properly invoke its constructor
DerivedNoProto = function() {}
^

/tests/proto.js:16: ERROR - Type DerivedBadProto extends Base but does not properly invoke its constructor
DerivedBadProto = function() {}
^

/tests/proto.js:19: ERROR - __proto__ value is not a prototype
    __proto__: Base
               ^

/tests/proto.js:28: ERROR - __proto__ defined for interface InterfaceWithProto
    __proto__: Base.prototype
    ^

/tests/proto.js:37: ERROR - No @extends annotation for ProtoNoExtends extending Base
    __proto__: Base.prototype
               ^

/tests/proto.js:44: ERROR - Type ProtoNotSameAsExtends extends Base but does not properly invoke its constructor
ProtoNotSameAsExtends = function() {}
^

/tests/proto.js:47: ERROR - Supertype does not match Base declared in @extends for ProtoNotSameAsExtends (line 42)
    __proto__: Object.prototype
               ^

/tests/proto.js:52: ERROR - No __proto__ assigned for type ProtoNotObjectLiteral having @extends
 * @extends {Base}
             ^

/tests/proto.js:54: ERROR - Type ProtoNotObjectLiteral extends Base but does not properly invoke its constructor
ProtoNotObjectLiteral = function() {}
^

/tests/proto.js:56: ERROR - @extends found for type ProtoNotObjectLiteral but its prototype is not an object containing __proto__
ProtoNotObjectLiteral.prototype = Object;
                                  ^

/tests/proto.js:62: ERROR - Type DerivedNoSuperCall extends Base but does not properly invoke its constructor
DerivedNoSuperCall = function() {
^

/tests/proto.js:73: ERROR - Type DerivedBadSuperCall extends Base but does not properly invoke its constructor
DerivedBadSuperCall = function() {
^

/tests/proto.js:107: ERROR - No __proto__ assigned for type GoodSetSubclass = function()
{
    Set.call(this);
} having @extends
 * @extends {Set.<T>}
             ^

/tests/proto.js:121: ERROR - No __proto__ assigned for type BadSetSubclass = function()
{
} having @extends
 * @extends {Set.<T>}
             ^

/tests/proto.js:124: ERROR - Type BadSetSubclass = function()
{
} extends Set but does not properly invoke its constructor
var BadSetSubclass = function()
    ^

/tests/proto.js:135: ERROR - No __proto__ assigned for type NS.BadSubClass having @extends
 * @extends {Base}
             ^

/tests/proto.js:137: ERROR - Type NS.BadSubClass extends Base but does not properly invoke its constructor
NS.BadSubClass = function() {}
^

/tests/this.js:19: ERROR - @this annotation is required for functions referencing 'this'
        function badInnerCallback() {
                 ^

/tests/this.js:24: ERROR - @this annotation is required for functions referencing 'this'
    function badCallbackInCtor() {
             ^

/tests/this.js:54: ERROR - @this annotation is required for functions referencing 'this'
        function badCallbackInMethod() {
                 ^

/tests/this.js:73: ERROR - @this annotation is required for functions referencing 'this'
        function badInnerCallback() {
                 ^

/tests/this.js:78: ERROR - @this annotation is required for functions referencing 'this'
    function badCallbackInCtor() {
             ^

/tests/this.js:98: ERROR - @this annotation is required for functions referencing 'this'
        function badCallbackInMethod() {
                 ^

/tests/this.js:121: ERROR - @this annotation is required for functions referencing 'this'
        function badInnerCallback() {
                 ^

/tests/this.js:126: ERROR - @this annotation is required for functions referencing 'this'
    function badCallbackInCtor() {
             ^

/tests/this.js:146: ERROR - @this annotation is required for functions referencing 'this'
        function badCallbackInMethod() {
                 ^

/tests/this.js:153: ERROR - @this annotation found for function not referencing 'this'
        function callbackNotReferencingThis() {
                 ^

/tests/this.js:191: ERROR - Member function can only be bound to 'this' as the receiver
        var badMemberBinding1 = this.memberTwo.bind(null); // ERROR - Member not bound to |this| receiver.
                                ^

/tests/this.js:192: ERROR - Member function can only be bound to 'this' as the receiver
        var badMemberBinding2 = this.memberTwo.bind(bar); // ERROR - Member not bound to |this| receiver.
                                ^

/tests/this.js:217: ERROR - Receiver not specified for a function referencing 'this'
        callbackWithThis(); // ERROR - No receiver.
        ^

/tests/this.js:218: ERROR - Receiver not specified for a function referencing 'this'
        callbackWithThis.call(); // ERROR - No receiver.
        ^

/tests/this.js:219: ERROR - Receiver not specified for a function referencing 'this'
        callbackWithThis.call(null); // ERROR - No receiver.
        ^

/tests/this.js:220: ERROR - Receiver not specified for a function referencing 'this'
        callbackWithThis.apply(); // ERROR - No receiver.
        ^

/tests/this.js:221: ERROR - Receiver not specified for a function referencing 'this'
        callbackWithThis.apply(null); // ERROR - No receiver.
        ^

/tests/this.js:222: ERROR - Receiver specified for a function not referencing 'this'
        callbackNoThis.call(this); // ERROR - Function has no @this annotation.
        ^

/tests/this.js:223: ERROR - Receiver specified for a function not referencing 'this'
        callbackNoThis.call(foo); // ERROR - Function has no @this annotation.
        ^

/tests/this.js:224: ERROR - Receiver specified for a function not referencing 'this'
        callbackNoThis.apply(this); // ERROR - Function has no @this annotation.
        ^

/tests/this.js:225: ERROR - Receiver specified for a function not referencing 'this'
        callbackNoThis.bind(this); // ERROR - Function has no @this annotation.
        ^

/tests/this.js:227: ERROR - Function referencing 'this' used as argument without a receiver. This check can be suppressed using @suppressReceiverCheck annotation on function declaration.
        this.memberTwo(callbackWithThis); // ERROR - Used as argument with no bound receiver.
                       ^

/tests/this.js:228: ERROR - Receiver not specified for a function referencing 'this'
        this.memberTwo(callbackWithThis.bind(null, 2)); // ERROR - Used as argument with no bound receiver (null means "no receiver").
                       ^

/tests/this.js:229: ERROR - Receiver specified for a function not referencing 'this'
        this.memberTwo(callbackNoThis.bind(this)); // ERROR - Bound to a receiver but has no @this annotation.
                       ^

/tests/this.js:230: ERROR - Receiver specified for a function not referencing 'this'
        this.memberTwo(callbackNoThis.bind(foo)); // ERROR - Bound to a receiver but has no @this annotation.
                       ^

/tests/this.js:237: ERROR - Function referencing 'this' used as argument without a receiver. This check can be suppressed using @suppressReceiverCheck annotation on function declaration.
        array.forEach(callbackWithThis); // ERROR - No receiver.
                      ^

/tests/this.js:238: ERROR - Function not referencing 'this' used as argument with a receiver. This check can be suppressed using @suppressReceiverCheck annotation on function declaration.
        array.forEach(callbackNoThis, this); // ERROR - Receiver for callback with no @this annotation.
                      ^

/tests/this.js:247: ERROR - Function not referencing 'this' used as argument with a receiver. This check can be suppressed using @suppressReceiverCheck annotation on function declaration.
        element.addEventListener("click", callbackNoThis, this); // ERROR.
                                          ^

/tests/this.js:253: ERROR - Function referencing 'this' used as argument without a receiver. This check can be suppressed using @suppressReceiverCheck annotation on function declaration.
        element.addEventListener("click", callbackWithThis, true); // ERROR.
                                          ^

/tests/this.js:254: ERROR - Function referencing 'this' used as argument without a receiver. This check can be suppressed using @suppressReceiverCheck annotation on function declaration.
        element.addEventListener("click", callbackWithThis, false); // ERROR.
                                          ^

/tests/this.js:268: ERROR - @this annotation is required for functions referencing 'this'
        function callbackReferencingThisNotAnnotated()
                 ^

/tests/this.js:277: ERROR - @this annotation found for function not referencing 'this'
        function callbackNotReferencingThisAnnotated()
                 ^

/tests/this.js:321: ERROR - @this annotation is required for functions referencing 'this'
        function testArrowFunctionReferencingThisMissingAnnotation(a)
                 ^

Total errors: 104
