closure-compiler
closure-compiler copied to clipboard
A JavaScript checker and optimizer.
Closure compiler should allow instantiating or extending the native EventTarget class, see [1]. Also see [2] which depicts that this is already implemented in Chrome. Unfortunately closure compiler throws an...
Something that is quite handy in nodejs es module is the possibility to specify module loaders. This allows developer to customize how modules are resolved... with this you could also...
https://tc39.es/proposal-relative-indexing-method/ It's stage 3 at the moment but I'm eager to use it :)
resolveLocalFileSystemURL() is missing from built-in extern nonstandard_fileapi.js. (resolveLocalFileSystemURI is there, but it's not what cordova-plugin-file uses)
Reported by Dominic in https://groups.google.com/g/closure-compiler-discuss/c/5ofdcVdWgQs The unshaded jar should not contain copies of dependencies. Instead it should use dependencies from Maven. Copying the important details here: > These commands will...
While it's a non-goal of Closure Compiler to interoperate with code transpiled by different transpilers (there's simply no reliable way to guarantee this), it should at least be the case...
In the below example, `Object.getOwnPropertyDescriptor` is annotated with `@nosideeffects` in `es5.js`, but its calls are not removed. [closure-compiler-debugger](https://closure-compiler-debugger.appspot.com/#input0%3Dlet%2520a%2520%253D%2520Object.getOwnPropertyDescriptor%253B%250A%250Alet%2520b%2520%253D%2520Object.getOwnPropertyDescriptor(Object.prototype%252C%2520'hasOwnProperty')%253B%250A%250Alet%2520c%2520%253D%2520a(Object.prototype%252C'__proto__').get%253B%26input1%26conformanceConfig%26externs%26refasterjs-template%26includeDefaultExterns%3Dtrue%26CHECK_TYPES%3Dtrue%26REWRITE_MODULES_BEFORE_TYPECHECKING%3Dtrue%26ALIAS_ALL_STRINGS%3Dtrue%26AMBIGUATE_PROPERTIES%3Dtrue%26COALESCE_VARIABLE_NAMES%3Dtrue%26COLLAPSE_VARIABLE_DECLARATIONS%3Dtrue%26COLLAPSE_ANONYMOUS_FUNCTIONS%3Dtrue%26COLLAPSE_PROPERTIES%3Dtrue%26COLLAPSE_OBJECT_LITERALS%3Dtrue%26COMPUTE_FUNCTION_SIDE_EFFECTS%3Dtrue%26CONVERT_TO_DOTTED_PROPERTIES%3Dtrue%26CROSS_CHUNK_CODE_MOTION%3Dtrue%26CROSS_CHUNK_METHOD_MOTION%3Dtrue%26DEAD_ASSIGNMENT_ELIMINATION%3Dtrue%26DEVIRTUALIZE_METHODS%3Dtrue%26DISAMBIGUATE_PROPERTIES%3Dtrue%26EXTRACT_PROTOTYPE_MEMBER_DECLARATIONS%3Dtrue%26FOLD_CONSTANTS%3Dtrue%26INLINE_CONSTANTS%3Dtrue%26INLINE_FUNCTIONS%3Dtrue%26INLINE_PROPERTIES%3Dtrue%26INLINE_VARIABLES%3Dtrue%26LABEL_RENAMING%3Dtrue%26OPTIMIZE_CALLS%3Dtrue%26OPTIMIZE_CONSTRUCTORS%3Dtrue%26OPTIMIZE_ARGUMENTS_ARRAY%3Dtrue%26REMOVE_ABSTRACT_METHODS%3Dtrue%26REMOVE_DEAD_CODE%3Dtrue%26REMOVE_UNUSED_CLASS_PROPERTIES%3Dtrue%26REMOVE_UNUSED_PROTOTYPE_PROPERTIES%3Dtrue%26REMOVE_UNUSED_VARIABLES%3Dtrue%26REWRITE_FUNCTION_EXPRESSIONS%3Dtrue%26SMART_NAME_REMOVAL%3Dtrue%26USE_TYPES_FOR_LOCAL_OPTIMIZATION%3Dtrue%26VARIABLE_RENAMING%3Dtrue%26PROPERTY_RENAMING%3Dtrue%26MOVE_FUNCTION_DECLARATIONS%3Dtrue%26SYNTHETIC_BLOCK_MARKER%3Dtrue%26CLOSURE_PASS%3Dtrue%26PRESERVE_TYPE_ANNOTATIONS%3Dtrue%26PRETTY_PRINT%3Dtrue) ```js let a = Object.getOwnPropertyDescriptor; let b = Object.getOwnPropertyDescriptor(Object.prototype, 'hasOwnProperty'); let c...
With code that looks like: ```javascript class SUB_CLASS extends ALIASED_CLASS { SOME_METHOD(t) { const ALIASED_CLASS = call1(); super.SOME_METHOD(t); } } ``` This produces code that looks like: ```javascript var SUB_CLASS...
It is becoming common place to use class fields and this is not yet supported from ES6 to ES5 conversion via closure compiler https://github.com/tc39/proposal-class-fields