Comments (7)
Yeah it's a bug in Es6RewriteDestructuring
. I'll get to it soon. Thanks for the stack trace!
from closure-compiler-js.
I admit the stack trace is not helpful at all. While I dig into it more, have you tried using the Java version instead (https://www.npmjs.com/package/google-closure-compiler)?
from closure-compiler-js.
From commit jashkenas/coffeescript@db216ec, I edited docs/v2/browser-compiler/coffeescript.js
to remove the embedded markdown-it.min.js
, just to try to isolate the issue. I still get errors. Here’s the Java compiler, from java -jar /usr/local/lib/node_modules/google-closure-compiler/compiler.jar coffeescript.js --js_output_file coffeescript.min.js
:
coffeescript.js:1740: WARNING - Suspicious code. The result of the 'getelem' operator is not being used.
match[0], before = match[1], octal = match[2], hex = match[3], unicode = match[4];
^^^^^^^^
coffeescript.js:1818: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
true;
^^^^
coffeescript.js:2032: WARNING - If this if/for/while really shouldn't have a body, use {}
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,22],$V1=[1,52],$V2=[1,86],$V3=[1,82],$V4=[1,87],$V5=[1,88],$V6=[1,84],$V7=[1,85],$V8=[1,60],$V9=[1,62],$Va=[1,63],$Vb=[1,64],$Vc=[1,65],$Vd=[1,66],$Ve=[1,53],$Vf=[1,40],$Vg=[1,54],$Vh=[1,34],$Vi=[1,71],$Vj=[1,72],$Vk=[1,33],$Vl=[1,81],$Vm=[1,50],$Vn=[1,55],$Vo=[1,56],$Vp=[1,69],$Vq=[1,70],$Vr=[1,68],$Vs=[1,45],$Vt=[1,51],$Vu=[1,67],$Vv=[1,76],$Vw=[1,77],$Vx=[1,78],$Vy=[1,79],$Vz=[1,49],$VA=[1,75],$VB=[1,36],$VC=[1,37],$VD=[1,38],$VE=[1,39],$VF=[1,41],$VG=[1,42],$VH=[1,89],$VI=[1,6,34,44,134],$VJ=[1,104],$VK=[1,92],$VL=[1,91],$VM=[1,90],$VN=[1,93],$VO=[1,94],$VP=[1,95],$VQ=[1,96],$VR=[1,97],$VS=[1,98],$VT=[1,99],$VU=[1,100],$VV=[1,101],$VW=[1,102],$VX=[1,103],$VY=[1,107],$VZ=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V_=[2,171],$V$=[1,113],$V01=[1,118],$V11=[1,114],$V21=[1,115],$V31=[1,116],$V41=[1,119],$V51=[1,112],$V61=[1,6,34,44,134,136,138,142,159],$V71=[1,6,33,34,42,43,44,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V81=[2,98],$V91=[2,77],$Va1=[1,129],$Vb1=[1,134],$Vc1=[1,135],$Vd1=[1,137],$Ve1=[1,141],$Vf1=[1,139],$Vg1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vh1=[2,95],$Vi1=[1,6,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vj1=[2,29],$Vk1=[1,167],$Vl1=[2,65],$Vm1=[1,175],$Vn1=[1,187],$Vo1=[1,189],$Vp1=[1,184],$Vq1=[1,191],$Vr1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],$Vs1=[2,117],$Vt1=[1,6,33,34,42,43,44,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vu1=[1,6,33,34,42,43,44,48,60,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vv1=[1,239],$Vw1=[42,43,117],$Vx1=[1,249],$Vy1=[1,248],$Vz1=[2,75],$VA1=[1,259],$VB1=[6,33,34,68,73],$VC1=[6,33,34,57,68,73,76],$VD1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,168,169,170,171,172,173,174,175,176,177],$VE1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,167,169,170,171,172,173,174,175,176,177],$VF1=[42,43,87,88,90,91,92,95,116,117],$VG1=[1,279],$VH1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159],$VI1=[2,64],$VJ1=[1,291],$VK1=[1,293],$VL1=[1,298],$VM1=[1,300],$VN1=[2,192],$VO1=[1,6,33,34,42,43,44,57,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$VP1=[1,309],$VQ1=[6,33,34,73,118,123],$VR1=[1,6,33,34,42,43,44,57,60,68,73,76,87,88,89,90,91,92,95,99,101,116,117,118,123,125,134,136,137,138,142,143,149,150,151,159,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],$VS1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,143,159],$VT1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,137,143,159],$VU1=[149,150,151],$VV1=[73,149,150,151],$VW1=[6,33,99],$VX1=[1,321],$VY1=[6,33,34,73,99],$VZ1=[6,33,34,60,73,99],$V_1=[6,33,34,57,60,73,99],$V$1=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,159,162,163,169,170,171,172,173,174,175,176,177],$V02=[1,6,33,34,44,48,68,73,76,87,88,89,90,91,92,95,99,116,117,118,123,125,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V12=[14,30,36,40,42,43,46,47,50,51,52,53,54,55,63,64,65,66,70,71,86,89,97,100,102,110,120,121,122,128,132,133,136,138,140,142,152,158,160,161,162,163,164,165],$V22=[2,181],$V32=[6,33,34],$V42=[2,76],$V52=[1,336],$V62=[1,337],$V72=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,131,134,136,137,138,142,143,154,156,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$V82=[34,154,156],$V92=[1,6,34,44,68,73,76,89,99,118,123,125,134,137,143,159],$Va2=[1,363],$Vb2=[1,369],$Vc2=[1,6,34,44,134,159],$Vd2=[2,90],$Ve2=[1,380],$Vf2=[1,381],$Vg2=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,137,138,142,143,154,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vh2=[1,6,33,34,44,68,73,76,89,99,118,123,125,134,136,138,142,143,159],$Vi2=[1,393],$Vj2=[1,394],$Vk2=[6,33,34,99],$Vl2=[6,33,34,73],$Vm2=[1,6,33,34,44,68,73,76,89,99,118,123,125,130,134,136,137,138,142,143,159,162,163,166,167,168,169,170,171,172,173,174,175,176,177],$Vn2=[33,73],$Vo2=[1,421],$Vp2=[1,422],$Vq2=[1,428],$Vr2=[1,429];
^
coffeescript.js:3256: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
[].splice.apply(children, [i, i - i + 1].concat(ref2 = replacement(child, this))), ref2;
^^^^
coffeescript.js:3356: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
[].splice.apply(fragments, [i, i - i + 1].concat(ref1 = this.expand(fragment.fragments))), ref1;
^^^^
coffeescript.js:4542: WARNING - Suspicious code. The result of the 'void' operator is not being used.
key = prop instanceof Assign && prop.context === 'object' ? prop.variable : prop instanceof Assign ? (!this.lhs ? prop.operatorToken.error(`unexpected ${prop.operatorToken.value}`) : void 0, prop.variable) : !(prop instanceof Comment) ? prop : void 0;
^^^^^^
coffeescript.js:4849: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
[].splice.apply(expressions, [i, i - i + 1].concat(exprs)), exprs;
^^^^^
coffeescript.js:6624: WARNING - Suspicious code. The result of the 'void' operator is not being used.
}), placeholder = new IdentifierLiteral(generatedErrorVariableName), this.errorVariable ? (message = isUnassignable(this.errorVariable.unwrapAll().value), message ? this.errorVariable.error(message) : void 0, this.recovery.unshift(new Assign(this.errorVariable, placeholder))) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode(`\n${this.tab}}`))) : !(this.ensure || this.recovery) ? (generatedErrorVariableName = o.scope.freeVariable('error', {
^^^^^^
coffeescript.js:6624: WARNING - Suspicious code. The result of the 'void' operator is not being used.
}), placeholder = new IdentifierLiteral(generatedErrorVariableName), this.errorVariable ? (message = isUnassignable(this.errorVariable.unwrapAll().value), message ? this.errorVariable.error(message) : void 0, this.recovery.unshift(new Assign(this.errorVariable, placeholder))) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode(`\n${this.tab}}`))) : !(this.ensure || this.recovery) ? (generatedErrorVariableName = o.scope.freeVariable('error', {
^^^^^^
0 error(s), 9 warning(s)
java.lang.RuntimeException: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
null
Node(ARRAY_PATTERN): coffeescript.js:1788:54
location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
Parent(ASSIGN): coffeescript.js:1788:54
location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
at com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread(CompilerExecutor.java:126)
at com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:753)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:723)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:693)
at com.google.javascript.jscomp.AbstractCommandLineRunner.doRun(AbstractCommandLineRunner.java:1080)
at com.google.javascript.jscomp.AbstractCommandLineRunner.run(AbstractCommandLineRunner.java:492)
at com.google.javascript.jscomp.CommandLineRunner.main(CommandLineRunner.java:1898)
Caused by: java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Please report this problem.
null
Node(ARRAY_PATTERN): coffeescript.js:1788:54
location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
Parent(ASSIGN): coffeescript.js:1788:54
location = 'first_line' in options ? options : ([first_line, first_column] = this.getLineAndColumnFromChunk((ref = options.offset) != null ? ref : 0), {
at com.google.common.base.Preconditions.checkState(Preconditions.java:429)
at com.google.javascript.jscomp.Es6RewriteDestructuring.visitArrayPattern(Es6RewriteDestructuring.java:324)
at com.google.javascript.jscomp.Es6RewriteDestructuring.visit(Es6RewriteDestructuring.java:75)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:639)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseClass(NodeTraversal.java:701)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:629)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBlockScope(NodeTraversal.java:726)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:633)
at com.google.javascript.jscomp.NodeTraversal.traverseFunction(NodeTraversal.java:670)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:627)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:711)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:635)
at com.google.javascript.jscomp.NodeTraversal.traverse(NodeTraversal.java:311)
at com.google.javascript.jscomp.NodeTraversal.traverseEs6(NodeTraversal.java:582)
at com.google.javascript.jscomp.TranspilationPasses.processTranspile(TranspilationPasses.java:240)
at com.google.javascript.jscomp.Es6RewriteDestructuring.process(Es6RewriteDestructuring.java:45)
at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:304)
at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:236)
at com.google.javascript.jscomp.Compiler.check(Compiler.java:892)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:781)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:87)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:726)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:723)
at com.google.javascript.jscomp.CompilerExecutor$2.call(CompilerExecutor.java:91)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException
... 91 more
from closure-compiler-js.
Reduced to a minimal repro:
var x;
([x] = [1], 2)
from closure-compiler-js.
Hi, sorry for the wait. This particular issue should have been fixed by google/closure-compiler@1ea642a. Could you build closure-compiler-js from HEAD and take a look? Thanks!
from closure-compiler-js.
I’m not sure how to do that, but my reproduction instructions above should work for you to test it:
git clone https://github.com/jashkenas/coffeescript.git
cd coffeescript
git checkout 9b77371ea846d498b06d0a88aeaa06bafed2abd9
npm install
cake build:browser
from closure-compiler-js.
If this is still an issue can you post it at https://github.com/google/closure-compiler?
from closure-compiler-js.
Related Issues (20)
- Using with node module gulp-closure-compiler HOT 1
- --languageOut flag for CLI HOT 1
- Feature request: support strictCheckTypes HOT 3
- google-closure-compiler-js:command not found HOT 1
- NTI vs OTI inconsistency in @record missed property handling HOT 1
- Sample code not working
- Setting ECMASCRIPT_2017 for the languageOut option always errors HOT 13
- "<>=&" is compiled to "\x3c\x3e\x3d\x26" HOT 6
- Google Closure Compiler REST API, AJAX, No Compiled Code Returned HOT 1
- Closure Compiler for use in the browser without webpack or grunt HOT 2
- Generating source map from command line? HOT 4
- env setting doesn't seem to be respected HOT 2
- [Please] Add "js_output_file" flag HOT 2
- passing --defines on command line HOT 4
- Add lumo in the Build systems section HOT 1
- Garbage on stdout HOT 3
- Generated JS contains references to home HOT 3
- INTERNAL COMPILER ERROR: async functions should have already been converted HOT 1
- INTERNAL COMPILER ERROR. undefined Node(FUNCTION ) HOT 1
- Gulp: doesn't work with empty streams HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from closure-compiler-js.