Fixed initial warnings provided by Closure Compiler
Getting ready for release means that we need to rest assured that everything is operating as it should. Tests do an excellent job at aiding in this, but they cannot cover everything. For example, a simple missing comma in a variable declaration list could have terrible, global consequences.perfodd
parent
45f3d62727
commit
d1b1d2691a
7
Makefile
7
Makefile
|
@ -58,13 +58,16 @@ perf-%.js: default
|
|||
|
||||
# minificatino process uses Google Closure compiler
|
||||
min: build/ease.min.js build/ease-full.min.js $(path_build)/browser-test-min.html \
|
||||
| combine
|
||||
$(path_tools)/externs-global.js | combine
|
||||
$(compiler):
|
||||
wget -O- http://closure-compiler.googlecode.com/files/compiler-latest.tar.gz \
|
||||
| tar -C $(path_tools) -xzv compiler.jar
|
||||
build/%.min.js: build/%.js $(compiler)
|
||||
cat $(path_tools)/license.tpl > $@
|
||||
java -jar $(compiler) --js $< >> $@ || rm $@
|
||||
java -jar $(compiler) \
|
||||
--warning_level VERBOSE \
|
||||
--externs $(path_tools)/externs-global.js \
|
||||
--js $< >> $@ || rm $@
|
||||
|
||||
install: doc-info
|
||||
[ -d $(path_info_install) ] || mkdir -p $(path_info_install)
|
||||
|
|
|
@ -64,7 +64,7 @@ var util = require( __dirname + '/util' ),
|
|||
* is performed only for methods. This is for performance reasons. We do not
|
||||
* have a situation where we will want to check for properties as well.
|
||||
*
|
||||
* @type {Object.<string,boolean}
|
||||
* @type {Object.<string,boolean>}
|
||||
*/
|
||||
public_methods = {
|
||||
'__construct': true,
|
||||
|
@ -296,7 +296,7 @@ exports.prototype.build = function extend()
|
|||
static_members = {
|
||||
methods: this._memberBuilder.initMembers(),
|
||||
props: this._memberBuilder.initMembers(),
|
||||
}
|
||||
},
|
||||
|
||||
abstract_methods =
|
||||
util.clone( exports.getMeta( base ).abstractMethods )
|
||||
|
@ -438,10 +438,7 @@ exports.prototype.buildMembers = function buildMembers(
|
|||
// disallow use of our internal __initProps() method
|
||||
if ( reserved_members[ name ] === true )
|
||||
{
|
||||
throw Error(
|
||||
( ( cname ) ? cname + '::' : '' ) +
|
||||
( name + " is reserved" )
|
||||
);
|
||||
throw Error( name + " is reserved" );
|
||||
}
|
||||
|
||||
// if a member was defined multiple times in the same class
|
||||
|
@ -730,7 +727,7 @@ exports.prototype.createAbstractCtor = function( cname )
|
|||
*
|
||||
* @param {{public: Object, protected: Object, private: Object}} members
|
||||
*
|
||||
* @param {function() ctor class
|
||||
* @param {function()} ctor class
|
||||
* @param {number} cid class id
|
||||
*
|
||||
* @return {undefined}
|
||||
|
@ -1095,7 +1092,7 @@ function attachInstanceOf( instance )
|
|||
* @param {function()} inst instance that the method is being called from
|
||||
* @param {number} cid class id
|
||||
*
|
||||
* @return {Object,null} instance object if found, otherwise null
|
||||
* @return {Object|null} instance object if found, otherwise null
|
||||
*/
|
||||
exports.getMethodInstance = function( inst, cid )
|
||||
{
|
||||
|
|
|
@ -109,7 +109,7 @@ exports.prototype._createPrivateLayer = function( atop_of, properties )
|
|||
obj_ctor.prototype = atop_of;
|
||||
|
||||
// we'll be returning an instance, so that the prototype takes effect
|
||||
obj = new obj_ctor();
|
||||
var obj = new obj_ctor();
|
||||
|
||||
// All protected properties need to be proxied from the private object
|
||||
// (which will be passed as the context) to the object containing protected
|
||||
|
@ -142,7 +142,7 @@ exports.prototype._doSetup = function(
|
|||
// copy over the methods
|
||||
if ( methods !== undefined )
|
||||
{
|
||||
for ( method_name in methods )
|
||||
for ( var method_name in methods )
|
||||
{
|
||||
if ( hasOwn.call( methods, method_name ) )
|
||||
{
|
||||
|
@ -172,7 +172,7 @@ exports.prototype._doSetup = function(
|
|||
}
|
||||
|
||||
// initialize private/protected properties and store in instance data
|
||||
for ( prop in properties )
|
||||
for ( var prop in properties )
|
||||
{
|
||||
if ( hasOwn.call( properties, prop ) )
|
||||
{
|
||||
|
@ -205,7 +205,7 @@ exports.prototype.createPropProxy = function( base, dest, props )
|
|||
{
|
||||
var hasOwn = Object.prototype.hasOwnProperty;
|
||||
|
||||
for ( prop in props )
|
||||
for ( var prop in props )
|
||||
{
|
||||
if ( !( hasOwn.call( props, prop ) ) )
|
||||
{
|
||||
|
|
|
@ -51,7 +51,7 @@ var util = require( __dirname + '/util' ),
|
|||
*/
|
||||
module.exports = function()
|
||||
{
|
||||
var type = typeof arguments[ 0 ]
|
||||
var type = typeof arguments[ 0 ],
|
||||
result = null
|
||||
;
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ exports.clone = function clone( data, deep )
|
|||
hasOwn = Object.prototype.hasOwnProperty;
|
||||
|
||||
// copy data to the new object
|
||||
for ( prop in data )
|
||||
for ( var prop in data )
|
||||
{
|
||||
if ( hasOwn.call( data, prop ) )
|
||||
{
|
||||
|
@ -204,7 +204,7 @@ exports.copyTo = function( dest, src, deep )
|
|||
// slower; supports getters/setters
|
||||
if ( can_define_prop )
|
||||
{
|
||||
for ( prop in src )
|
||||
for ( var prop in src )
|
||||
{
|
||||
data = Object.getOwnPropertyDescriptor( src, prop );
|
||||
|
||||
|
@ -228,7 +228,7 @@ exports.copyTo = function( dest, src, deep )
|
|||
// quick (keep if statement out of the loop)
|
||||
else
|
||||
{
|
||||
for ( prop in src )
|
||||
for ( var prop in src )
|
||||
{
|
||||
// normal copy; cloned if deep, otherwise by reference
|
||||
dest[ prop ] = ( deep )
|
||||
|
@ -274,7 +274,7 @@ exports.propParse = function( data, options )
|
|||
|
||||
// for each of the given properties, determine what type of property we're
|
||||
// dealing with (in the classic OO sense)
|
||||
for ( prop in data )
|
||||
for ( var prop in data )
|
||||
{
|
||||
// ignore properties of instance prototypes
|
||||
if ( !( hasOwn.call( data, prop ) ) )
|
||||
|
|
|
@ -81,7 +81,7 @@ require( 'common' ).testCase(
|
|||
|
||||
_self.incAssertCount();
|
||||
|
||||
for ( level in _self.members )
|
||||
for ( var level in _self.members )
|
||||
{
|
||||
if ( typeof _self.members[ level ][ name ] === 'undefined' )
|
||||
{
|
||||
|
@ -264,7 +264,7 @@ require( 'common' ).testCase(
|
|||
;
|
||||
|
||||
// ensure we can initialize the values of each visibility level
|
||||
for ( vis in test )
|
||||
for ( var vis in test )
|
||||
{
|
||||
this.assertStrictEqual( test[ vis ], members[ vis ],
|
||||
"Visibility level '" + vis + "' cannot be initialized"
|
||||
|
@ -282,7 +282,7 @@ require( 'common' ).testCase(
|
|||
var _self = this,
|
||||
tests = [ 'public', 'protected', 'private' ];
|
||||
|
||||
for ( i in tests )
|
||||
for ( var i in tests )
|
||||
{
|
||||
_self.basicVisPropTest( tests[ i ] );
|
||||
_self.basicVisMethodTest( tests[ i ] );
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
var common = require( './common' ),
|
||||
assert = require( 'assert' ),
|
||||
util = common.require( 'util' )
|
||||
util = common.require( 'util' ),
|
||||
sut = common.require( 'MethodWrappers' )
|
||||
;
|
||||
|
||||
|
@ -45,7 +45,7 @@ var common = require( './common' ),
|
|||
{
|
||||
called = true;
|
||||
return instance;
|
||||
}
|
||||
},
|
||||
|
||||
method = sut.standard.wrapNew(
|
||||
function()
|
||||
|
@ -152,7 +152,7 @@ var common = require( './common' ),
|
|||
super_called = true;
|
||||
},
|
||||
null, 0, getInst
|
||||
)
|
||||
),
|
||||
|
||||
// the overriding method
|
||||
override = sut.standard.wrapOverride(
|
||||
|
|
|
@ -111,7 +111,7 @@ var VisibilityObjectFactory = common.require( 'VisibilityObjectFactory' ),
|
|||
sut.createPropProxy( base, dest, props );
|
||||
|
||||
// check to ensure the properties are properly proxied
|
||||
for ( prop in props )
|
||||
for ( var prop in props )
|
||||
{
|
||||
dest[ prop ] = val;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ var assert = require( 'assert' ),
|
|||
assert_wrapped = {},
|
||||
acount = 0,
|
||||
icount = 0,
|
||||
scount = 0,
|
||||
skpcount = 0,
|
||||
tcount = 0,
|
||||
|
||||
|
@ -41,7 +42,7 @@ var assert = require( 'assert' ),
|
|||
|
||||
// wrap each of the assertions so that we can keep track of the number of times
|
||||
// that they were invoked
|
||||
for ( f in assert )
|
||||
for ( var f in assert )
|
||||
{
|
||||
var _assert_cur = assert[ f ];
|
||||
|
||||
|
@ -105,7 +106,7 @@ module.exports = function( test_case )
|
|||
delete test_case.setUp;
|
||||
|
||||
// run each test in the case
|
||||
for ( test in test_case )
|
||||
for ( var test in test_case )
|
||||
{
|
||||
// xUnit-style setup
|
||||
if ( setUp )
|
||||
|
@ -282,7 +283,7 @@ function getMock( proto )
|
|||
proto = Mock.prototype = new P()
|
||||
;
|
||||
|
||||
for ( i in proto )
|
||||
for ( var i in proto )
|
||||
{
|
||||
// only mock out methods
|
||||
if ( typeof proto[ i ] !== 'function' )
|
||||
|
@ -350,7 +351,7 @@ function outputTestFailures( failures )
|
|||
var err = '',
|
||||
i = failures.length;
|
||||
|
||||
for ( i in failures )
|
||||
for ( var i in failures )
|
||||
{
|
||||
var failure = failures[ i ];
|
||||
|
||||
|
@ -368,7 +369,7 @@ function outputTestFailures( failures )
|
|||
throw Error( err );
|
||||
}
|
||||
|
||||
for ( i = 0; i < failures.length; i++ )
|
||||
for ( var i = 0; i < failures.length; i++ )
|
||||
{
|
||||
cur = failures[ i ];
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ var common = require( './common' ),
|
|||
// will still be set even if the context of the constructor is wrong
|
||||
var construct_count = 0,
|
||||
construct_context = null,
|
||||
construct_args = null
|
||||
construct_args = null,
|
||||
|
||||
// create a basic test class
|
||||
Foo = Class.extend(
|
||||
|
|
|
@ -36,7 +36,7 @@ var foo_props = {
|
|||
Class( foo_props ),
|
||||
],
|
||||
|
||||
class_count = classes.length
|
||||
class_count = classes.length,
|
||||
|
||||
// will hold the class being tested
|
||||
Foo = null
|
||||
|
|
|
@ -199,8 +199,8 @@ var common = require( './common' ),
|
|||
( function testCanCreateNamedClassUsingStagingMethod()
|
||||
{
|
||||
var name = 'Foo',
|
||||
named = Class( name ).extend( {} )
|
||||
namedi = Class( name ).implement( Interface( {} ) ).extend( {} )
|
||||
named = Class( name ).extend( {} ),
|
||||
namedi = Class( name ).implement( Interface( {} ) ).extend( {} ),
|
||||
|
||||
// we should also be able to extend classes in this manner
|
||||
namede = Class( name ).implement( Interface( {} ) ).extend( named, {} )
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
var common = require( './common' ),
|
||||
assert = require( 'assert' ),
|
||||
Class = common.require( 'class' );
|
||||
Class = common.require( 'class' ),
|
||||
|
||||
// we store these outside of the class to ensure that visibility bugs do not
|
||||
// get in the way of our assertions
|
||||
|
|
|
@ -28,7 +28,7 @@ var common = require( './common' ),
|
|||
common.require( 'VisibilityObjectFactoryFactory' ).fromEnvironment()
|
||||
),
|
||||
|
||||
Class = common.require( 'class' )
|
||||
Class = common.require( 'class' ),
|
||||
FinalClass = common.require( 'class_final' )
|
||||
;
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
var common = require( './common' ),
|
||||
assert = require( 'assert' ),
|
||||
|
||||
Class = common.require( 'class' ),
|
||||
ClassBuilder = common.require( 'ClassBuilder' ),
|
||||
builder = ClassBuilder(
|
||||
common.require( 'MemberBuilder' )(),
|
||||
|
@ -84,7 +85,7 @@ var common = require( './common' ),
|
|||
count = 0;
|
||||
|
||||
// test each of the reserved members
|
||||
for ( name in reserved )
|
||||
for ( var name in reserved )
|
||||
{
|
||||
// properties
|
||||
assert['throws'](
|
||||
|
@ -137,7 +138,7 @@ var common = require( './common' ),
|
|||
"Can retrieve hash of forced-public methods"
|
||||
);
|
||||
|
||||
for ( name in pub )
|
||||
for ( var name in pub )
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
@ -176,12 +177,12 @@ var common = require( './common' ),
|
|||
var pub = ClassBuilder.getForcedPublicMethods();
|
||||
|
||||
// test each of the reserved members
|
||||
for ( name in pub )
|
||||
for ( var name in pub )
|
||||
{
|
||||
assert['throws']( function()
|
||||
{
|
||||
var obj = {};
|
||||
obj[ name ] = function() {};
|
||||
obj[ 'private ' + name ] = function() {};
|
||||
|
||||
Class( obj );
|
||||
}, Error, "Forced-public methods must be declared as public" );
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
*/
|
||||
|
||||
var common = require( './common' ),
|
||||
fallback = common.require( 'util' ).definePropertyFallback()
|
||||
fallback = common.require( 'util' ).definePropertyFallback(),
|
||||
|
||||
// XXX: get rid of this disgusting mess; we're mid-refactor and all these
|
||||
// dependencies should not be necessary for testing
|
||||
|
@ -183,7 +183,7 @@ require( 'common' ).testCase(
|
|||
// we must define in this manner so older engines won't blow up due to
|
||||
// syntax errors
|
||||
var def = {},
|
||||
val = 'baz'
|
||||
val = 'baz',
|
||||
called = [];
|
||||
|
||||
Object.defineProperty( def, 'public static foo', {
|
||||
|
@ -615,7 +615,7 @@ require( 'common' ).testCase(
|
|||
this.foo = val;
|
||||
},
|
||||
},
|
||||
val = 'baz'
|
||||
val = 'baz',
|
||||
called = [];
|
||||
|
||||
Object.defineProperty( def, 'protected static foo', {
|
||||
|
@ -915,7 +915,7 @@ require( 'common' ).testCase(
|
|||
this.foo = val;
|
||||
},
|
||||
},
|
||||
val = 'baz'
|
||||
val = 'baz',
|
||||
called = [];
|
||||
|
||||
Object.defineProperty( def, 'private static foo', {
|
||||
|
|
|
@ -62,7 +62,7 @@ require( 'common' ).testCase(
|
|||
*/
|
||||
'Self property references instance rather than property object': function()
|
||||
{
|
||||
var result = null
|
||||
var result = null,
|
||||
ref = null,
|
||||
|
||||
foo = this.builder.build( {
|
||||
|
|
|
@ -52,7 +52,7 @@ for ( var i = 0, len = arr.length; i < len; i++ )
|
|||
}
|
||||
|
||||
// ensure object was properly cloned
|
||||
for ( prop in obj )
|
||||
for ( var prop in obj )
|
||||
{
|
||||
assert.equal(
|
||||
obj2[ prop ],
|
||||
|
@ -94,7 +94,7 @@ while ( deep_i-- )
|
|||
);
|
||||
}
|
||||
|
||||
for ( prop in deep_obj )
|
||||
for ( var prop in deep_obj )
|
||||
{
|
||||
assert.ok(
|
||||
( deep_obj2[ prop ] !== deep_obj[ prop ] ),
|
||||
|
|
|
@ -49,7 +49,7 @@ var common = require( './common' ),
|
|||
|
||||
copyTo( dest, src );
|
||||
|
||||
for ( key in src )
|
||||
for ( var key in src )
|
||||
{
|
||||
assert.deepEqual( src[ key ], dest[ key ],
|
||||
"Copies by reference by default"
|
||||
|
|
|
@ -161,7 +161,7 @@ var common = require( './common' ),
|
|||
},
|
||||
} );
|
||||
|
||||
for ( prop in parsed_keywords )
|
||||
for ( var prop in parsed_keywords )
|
||||
{
|
||||
assert.deepEqual(
|
||||
parsed_keywords[ prop ],
|
||||
|
|
|
@ -61,7 +61,7 @@ if ( get_set )
|
|||
|
||||
|
||||
var chk_each = {};
|
||||
for ( i in data )
|
||||
for ( var i in data )
|
||||
{
|
||||
chk_each[ i ] = 1;
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ if ( get_set )
|
|||
|
||||
|
||||
var chk_each_count = 0;
|
||||
for ( item in chk_each )
|
||||
for ( var item in chk_each )
|
||||
{
|
||||
chk_each_count++;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* Common global externs for Closure Compiler
|
||||
*/
|
||||
|
||||
// available in most modern environments or extensions
|
||||
var console = {};
|
||||
|
||||
// Node.js
|
||||
var process = {};
|
Loading…
Reference in New Issue