1
0
Fork 0
Commit Graph

758 Commits (66fd2ece83ea1027b99c78ac0286d32d8a667e01)

Author SHA1 Message Date
Mike Gerwitz 66fd2ece83 Switched to Closure Compiler
This is nothing against uglify. Rather, here's the story on this:

Commit e4cd1e fixed an error that was causing minified files to break in IE.
This was due to how IE interprets things, not how UglifyJS was minifying them.
Indeed, Closure Compiler had the exact same problem.

The decision to move to Closure Compiler was due to a variety of factors, which
came down to primarily feature set and tests. Closure Compiler is well tested
and maintained. It also includes a number of additional, beneficial features.
UglifyJS is an excellent project and I would recommend it to anyone, but it is
not tested (no unit tests; it's tested by ensuring common libraries like jQuery
run after minification). It is, however, significantly faster.

It's likely that, in the future, once I add autoconf for the build process to
configure certain settings, that I will add UglifyJS as an option. I'm sure many
people would prefer that, especially those who dislike Java and do not wish to
have it installed. Hopefully those that do decide to install Java will go with
openjdk, not Oracle's proprietary implementation.
2011-12-06 18:28:58 -05:00
Mike Gerwitz 58f2e3afc4 Made necessary changes to tests to prevent Closure Compiler from optimizing them away, causing test failures 2011-12-06 18:28:16 -05:00
Mike Gerwitz a18dedbddb Added missing client-side "fail" assertion 2011-12-06 18:27:41 -05:00
Mike Gerwitz e385a9c8fb MemberBuilderValidator tests now properly wrap certain functions (they were working, but let's be safe) 2011-12-06 18:27:20 -05:00
Mike Gerwitz e4cd1eabe5 Fixed issue with minified files in IE
Ah - you have to love those "ah-ha!" moments. The issue here is that both
uglify-js and closure compiler mangled the names in such a way that the var and
the function name had different values. In the case of closure compiler, the
function name was used to instantiate the constructor if the 'new' keyword was
omitted. This worked fine in all other tested browsers, but IE handles it
differently.
2011-12-06 18:20:43 -05:00
Mike Gerwitz 74dd239de0 Corrected errors/warnings as indicated by Google Closure compiler 2011-12-04 19:26:53 -05:00
Mike Gerwitz f39fc05ae2 test/inc-*.js files will now be recognized by make to rebuild combined file 2011-12-04 19:13:51 -05:00
Mike Gerwitz e86ed63fd8 Fixed trailing comma issue in test
- Caused problems in IE6
- Comma stripping script did not catch it due to trailing comments
2011-12-04 13:06:28 -05:00
Mike Gerwitz 1a3b5f2893 Now using vm module in node instead of process.binding.Script (deprecated in newer versions of node) 2011-12-04 12:55:00 -05:00
Mike Gerwitz 27eea93d6f Now setting mocked console in warn module for tests
- Replacing console broken in newer versions of node/v8
- Replacing console.warn/log works fine, but is a poor choice for testing
2011-12-04 12:54:56 -05:00
Mike Gerwitz 0f4ce6acc1 Warning test workaround for FF
- Note that warnings do work properly in practice in FF
2011-12-04 11:38:24 -05:00
Mike Gerwitz 446aa8d413 Fixed __self assignment for FF
This little experience was rather frustrating. Indeed, it would imply that
the static implementation (at least, accessing protected and private static
members) was always broken in FF. I should be a bit more diligent in my testing.
Or perhaps it broke in a more recent version of FF, which is more likely. The
problem seems to be that we used defineSecureProp() for an assignment to the
actual class, then later properly assigned it to class.___$$svis$$.
Of course, defineSecureProp() makes it read-only, so this failed, causing
an improper assignment for __self, breaking the implementation. As such,
this probably broke in newer versions of FF and worked properly in older versions.

More concerningly is that the implementations clearly differ between Chromium
and Firefox. It may be that Firefox checks the prototype chain, whereas Chromium
(v8, specifically) will simply write to that object, ignoring that the property
further down the prototype chain is read-only.
2011-12-04 00:32:16 -05:00
Mike Gerwitz f2e0bbc2f6 Outputting stack trace in browser tests if available 2011-12-03 15:51:53 -05:00
Mike Gerwitz 599f100cfa Added browser-test-min.html 2011-12-03 12:56:37 -05:00
Mike Gerwitz 075e73e4d1 [#5] Added private naming conflict mention and inheritance information to Inheritance section of manual 2011-12-03 12:26:03 -05:00
Mike Gerwitz e41495c0d1 Added private member name conflict validations 2011-12-03 00:38:41 -05:00
Mike Gerwitz 50da560c1f [#5] Added pre-es5 fallback section to visibility object implementation 2011-11-29 21:07:24 -05:00
Mike Gerwitz b339cf0859 [#5] Removed doc-* prefix from doc Makefile; redundant 2011-11-29 19:48:26 -05:00
Mike Gerwitz 2c5bc6b63c uglify's mangle currently causing problems in IE8; removing until it can be further researched 2011-11-29 15:06:34 -05:00
Mike Gerwitz ba28f0a753 Now implicitly adding abstract keyword for interface method declarations 2011-11-28 15:10:26 -05:00
Mike Gerwitz bdc32906e7 [#5] Added FinalClass to manual 2011-11-27 22:53:43 -05:00
Mike Gerwitz d730481332 [#5] Updated "Root Directory" section of manual 2011-11-27 22:43:31 -05:00
Mike Gerwitz e376770cf4 [#5] Updated "Lib Directory" section 2011-11-27 22:40:55 -05:00
Mike Gerwitz 80577e06b0 [#5] Updated "Test Directory" section 2011-11-27 22:39:35 -05:00
Mike Gerwitz 4d50a40577 [#5] Slightly adjusted *-wide.dia PNG output size 2011-11-27 21:42:14 -05:00
Mike Gerwitz 412f8ad769 [#5] Added method wrapping details for visibility implementation 2011-11-27 21:40:30 -05:00
Mike Gerwitz 5ef46d4992 [#5] Added property proxy implementation details 2011-11-27 18:33:56 -05:00
Mike Gerwitz 0a88a0f83b [#5] Added bulk of "The Visibility Object" section to manual 2011-11-27 15:32:38 -05:00
Mike Gerwitz 49dd78f5c2 [#5] Altered doc Makefile to build wide pngs from dia diagrams 2011-11-27 11:56:19 -05:00
Mike Gerwitz 4c4c716596 [#5] Added additional visibility rationale examples 2011-11-25 17:28:00 -05:00
Mike Gerwitz 9aaef9736e [#5] Began adding visibility implementation details 2011-11-25 12:53:06 -05:00
Mike Gerwitz 2ef17cd297 IE uses empty string (rather than undefined) for unmatched regex groups 2011-11-20 20:37:59 -05:00
Mike Gerwitz a701ee40a7 [#5] Typo correction in abstract class example 2011-11-20 18:08:52 -05:00
Mike Gerwitz 20b3abc008 [#5] Added abstract classes section to manual 2011-11-20 14:25:37 -05:00
Mike Gerwitz 8655a6a58f [#5] Added mention to Interfaces section in manual that Interface must be imported 2011-11-20 10:53:16 -05:00
Mike Gerwitz a7258f99cb [#5] Adjusted manual CSS to place border around @samp 2011-11-20 00:28:56 -05:00
Mike Gerwitz 199bba3c38 [#5] Added interface documentation to manual (abstract class pending) 2011-11-20 00:28:51 -05:00
Mike Gerwitz b2fcf8880a [#5] Corrected <= in doc Makefile for HTML replacement 2011-11-19 22:32:55 -05:00
Mike Gerwitz 058e5f5f7d [#5] Minor typo correction in inheritance section of manual 2011-11-19 22:30:10 -05:00
Mike Gerwitz 87dd1b8961 [#29] Re-added interface name to interface errors since abstract requirement change 2011-11-19 22:17:59 -05:00
Mike Gerwitz a33df4dcbe [#29] Refactored interface extend() test against non-interface into ExtendTest 2011-11-19 22:05:18 -05:00
Mike Gerwitz 4fe20762c8 'abstract' keyword no longer required for interface method declarations
- A warning is not yet being thrown for redundancy if the abstract keyword is
  explicitly specified
2011-11-19 19:37:59 -05:00
Mike Gerwitz 91db43d21d [#29] Outputting newline and count every 60 tests 2011-11-19 14:15:31 -05:00
Mike Gerwitz c605113412 [#29] Refactored test-interface-extend into new test case format
- Preparing for minor changes
2011-11-19 14:09:59 -05:00
Mike Gerwitz 164b6a925b [#29] Added @each() support to test cases
- A little sloppy, but it gets the job done
2011-11-19 14:09:26 -05:00
Mike Gerwitz a022b62f8f [#5] Committed forgotten mkeywords.texi (oops 2011-11-19 12:40:16 -05:00
Mike Gerwitz cef0c0146b [#29] Refactored test-interface.js into new test case format 2011-11-19 12:39:45 -05:00
Mike Gerwitz 4e49282515 Fixed bug causing invocation error when accessing undefined static members on a non-class base 2011-11-19 00:10:30 -05:00
Mike Gerwitz 80846e95f3 __proto__ => getPrototypeOf 2011-11-19 00:10:24 -05:00
Mike Gerwitz 94419742c0 Resolved IE8 test failures
- Additional checks for its buggy defineProperty(), etc implementation
2011-11-18 08:57:37 -05:00