Skip to content

Instantly share code, notes, and snippets.

@mhuebert
Created July 6, 2019 13:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhuebert/6898da15723a26da485a984bc3249022 to your computer and use it in GitHub Desktop.
Save mhuebert/6898da15723a26da485a984bc3249022 to your computer and use it in GitHub Desktop.
shadow-cljs :npm-module target
(ns ftest.core
(:require ["./util" :as util]
["./myJs1" :as js1]
;["./myJs2" :as js2] ;; fails at compile time
))
;; works
(js/console.log (util/identity 10))
;; fails at runtime
(js/console.log (js1/IDENTITY 10))
;; fails at compile time
;(js/console.log (js2/IDENTITY 10))
import {identity} from './util'
export const IDENTITY = (x) => identity(x)
/*
const IDENTITY$$module$ftest$myJs1 = x => (0,null.identity)(x);
^
TypeError: Cannot read property 'identity' of null
*/
import * as util from './util'
export const IDENTITY = (x) => util.identity(x)
// cannot compile
//
// failed to convert sources
// {:tag :shadow.build.closure/convert-error, :sources [[:shadow.build.classpath/resource "ftest/myJs2.js"]]}
// ExceptionInfo: failed to convert sources
// shadow.build.closure/convert-sources*/fn--12102 (closure.clj:1441)
// shadow.build.closure/convert-sources* (closure.clj:1411)
// shadow.build.closure/convert-sources* (closure.clj:1294)
// shadow.build.closure/convert-sources (closure.clj:1628)
// shadow.build.closure/convert-sources (closure.clj:1556)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1016)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1009)
// shadow.build.compiler/compile-all (compiler.clj:1264)
// shadow.build.compiler/compile-all (compiler.clj:1128)
// shadow.build.api/compile-sources (api.clj:256)
// shadow.build.api/compile-sources (api.clj:248)
// shadow.build/compile (build.clj:377)
// shadow.build/compile (build.clj:368)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:304)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:290)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:887)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:850)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683/fn--14691 (util.clj:304)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683 (util.clj:303)
// shadow.cljs.devtools.server.util/server-thread/fn--14682 (util.clj:276)
// java.lang.Thread.run (Thread.java:748)
// Caused by:
// RuntimeException: INTERNAL COMPILER ERROR.
// Please report this problem.
//
// INTERNAL COMPILER ERROR.
// Please report this problem.
//
// null
// Node(NAME util): ftest/myJs2.js:3:31
// export const IDENTITY = (x) => util.identity(x)
// Parent(GETPROP): ftest/myJs2.js:3:31
// export const IDENTITY = (x) => util.identity(x)
//
// Node(SCRIPT): ftest/myJs2.js:1:0
// import * as util from '/ftest/util.js'
// Parent(ROOT): [source unknown]
//
// com.google.javascript.jscomp.NodeUtil.newQName (NodeUtil.java:4014)
// com.google.javascript.jscomp.ModuleRenaming.replace (ModuleRenaming.java:207)
// com.google.javascript.jscomp.Es6RewriteModules$RenameGlobalVars.visit (Es6RewriteModules.java:867)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:887)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseFunction (NodeTraversal.java:926)
// com.google.javascript.jscomp.NodeTraversal.handleFunction (NodeTraversal.java:849)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:865)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:837)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:862)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:371)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:381)
// com.google.javascript.jscomp.Es6RewriteModules.visitScript (Es6RewriteModules.java:549)
// com.google.javascript.jscomp.Es6RewriteModules.visit (Es6RewriteModules.java:378)
// com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:839)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:862)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:371)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:381)
// com.google.javascript.jscomp.Es6RewriteModules.processFile (Es6RewriteModules.java:186)
// com.google.javascript.jscomp.Es6RewriteModules.hotSwapScript (Es6RewriteModules.java:175)
// com.google.javascript.jscomp.Es6RewriteModules.process (Es6RewriteModules.java:164)
// com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:328)
// com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:237)
// com.google.javascript.jscomp.Compiler.check (Compiler.java:1021)
// com.google.javascript.jscomp.Compiler.performChecksAndTranspilation (Compiler.java:829)
// com.google.javascript.jscomp.Compiler.lambda$stage1Passes$0 (Compiler.java:759)
// com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:129)
// com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:817)
// com.google.javascript.jscomp.Compiler.stage1Passes (Compiler.java:757)
// shadow.build.closure/convert-sources*/fn--12102/fn--12103/fn--12104 (closure.clj:1431)
// shadow.build.closure/convert-sources*/fn--12102/fn--12103 (closure.clj:1418)
// shadow.build.closure/convert-sources*/fn--12102 (closure.clj:1412)
// shadow.build.closure/convert-sources* (closure.clj:1411)
// shadow.build.closure/convert-sources* (closure.clj:1294)
// shadow.build.closure/convert-sources (closure.clj:1628)
// shadow.build.closure/convert-sources (closure.clj:1556)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1016)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1009)
// shadow.build.compiler/compile-all (compiler.clj:1264)
// shadow.build.compiler/compile-all (compiler.clj:1128)
// shadow.build.api/compile-sources (api.clj:256)
// shadow.build.api/compile-sources (api.clj:248)
// shadow.build/compile (build.clj:377)
// shadow.build/compile (build.clj:368)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:304)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:290)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:887)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:850)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683/fn--14691 (util.clj:304)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683 (util.clj:303)
// shadow.cljs.devtools.server.util/server-thread/fn--14682 (util.clj:276)
// java.lang.Thread.run (Thread.java:748)
// Caused by:
// RuntimeException: INTERNAL COMPILER ERROR.
// Please report this problem.
//
// null
// Node(NAME util): ftest/myJs2.js:3:31
// export const IDENTITY = (x) => util.identity(x)
// Parent(GETPROP): ftest/myJs2.js:3:31
// export const IDENTITY = (x) => util.identity(x)
//
// com.google.javascript.jscomp.NodeUtil.newQName (NodeUtil.java:4014)
// com.google.javascript.jscomp.ModuleRenaming.replace (ModuleRenaming.java:207)
// com.google.javascript.jscomp.Es6RewriteModules$RenameGlobalVars.visit (Es6RewriteModules.java:867)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:887)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseFunction (NodeTraversal.java:926)
// com.google.javascript.jscomp.NodeTraversal.handleFunction (NodeTraversal.java:849)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:865)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:837)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:862)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:371)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:381)
// com.google.javascript.jscomp.Es6RewriteModules.visitScript (Es6RewriteModules.java:549)
// com.google.javascript.jscomp.Es6RewriteModules.visit (Es6RewriteModules.java:378)
// com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:839)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:862)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:371)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:381)
// com.google.javascript.jscomp.Es6RewriteModules.processFile (Es6RewriteModules.java:186)
// com.google.javascript.jscomp.Es6RewriteModules.hotSwapScript (Es6RewriteModules.java:175)
// com.google.javascript.jscomp.Es6RewriteModules.process (Es6RewriteModules.java:164)
// com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:328)
// com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:237)
// com.google.javascript.jscomp.Compiler.check (Compiler.java:1021)
// com.google.javascript.jscomp.Compiler.performChecksAndTranspilation (Compiler.java:829)
// com.google.javascript.jscomp.Compiler.lambda$stage1Passes$0 (Compiler.java:759)
// com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:129)
// com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:817)
// com.google.javascript.jscomp.Compiler.stage1Passes (Compiler.java:757)
// shadow.build.closure/convert-sources*/fn--12102/fn--12103/fn--12104 (closure.clj:1431)
// shadow.build.closure/convert-sources*/fn--12102/fn--12103 (closure.clj:1418)
// shadow.build.closure/convert-sources*/fn--12102 (closure.clj:1412)
// shadow.build.closure/convert-sources* (closure.clj:1411)
// shadow.build.closure/convert-sources* (closure.clj:1294)
// shadow.build.closure/convert-sources (closure.clj:1628)
// shadow.build.closure/convert-sources (closure.clj:1556)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1016)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1009)
// shadow.build.compiler/compile-all (compiler.clj:1264)
// shadow.build.compiler/compile-all (compiler.clj:1128)
// shadow.build.api/compile-sources (api.clj:256)
// shadow.build.api/compile-sources (api.clj:248)
// shadow.build/compile (build.clj:377)
// shadow.build/compile (build.clj:368)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:304)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:290)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:887)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:850)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683/fn--14691 (util.clj:304)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683 (util.clj:303)
// shadow.cljs.devtools.server.util/server-thread/fn--14682 (util.clj:276)
// java.lang.Thread.run (Thread.java:748)
// Caused by:
// NullPointerException:
// com.google.javascript.jscomp.NodeUtil.newQName (NodeUtil.java:4014)
// com.google.javascript.jscomp.ModuleRenaming.replace (ModuleRenaming.java:207)
// com.google.javascript.jscomp.Es6RewriteModules$RenameGlobalVars.visit (Es6RewriteModules.java:867)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:887)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseFunction (NodeTraversal.java:926)
// com.google.javascript.jscomp.NodeTraversal.handleFunction (NodeTraversal.java:849)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:865)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:883)
// com.google.javascript.jscomp.NodeTraversal.traverseChildren (NodeTraversal.java:999)
// com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:837)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:862)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:371)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:381)
// com.google.javascript.jscomp.Es6RewriteModules.visitScript (Es6RewriteModules.java:549)
// com.google.javascript.jscomp.Es6RewriteModules.visit (Es6RewriteModules.java:378)
// com.google.javascript.jscomp.NodeTraversal.handleScript (NodeTraversal.java:839)
// com.google.javascript.jscomp.NodeTraversal.traverseBranch (NodeTraversal.java:862)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:371)
// com.google.javascript.jscomp.NodeTraversal.traverse (NodeTraversal.java:381)
// com.google.javascript.jscomp.Es6RewriteModules.processFile (Es6RewriteModules.java:186)
// com.google.javascript.jscomp.Es6RewriteModules.hotSwapScript (Es6RewriteModules.java:175)
// com.google.javascript.jscomp.Es6RewriteModules.process (Es6RewriteModules.java:164)
// com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process (PhaseOptimizer.java:328)
// com.google.javascript.jscomp.PhaseOptimizer.process (PhaseOptimizer.java:237)
// com.google.javascript.jscomp.Compiler.check (Compiler.java:1021)
// com.google.javascript.jscomp.Compiler.performChecksAndTranspilation (Compiler.java:829)
// com.google.javascript.jscomp.Compiler.lambda$stage1Passes$0 (Compiler.java:759)
// com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread (CompilerExecutor.java:129)
// com.google.javascript.jscomp.Compiler.runInCompilerThread (Compiler.java:817)
// com.google.javascript.jscomp.Compiler.stage1Passes (Compiler.java:757)
// shadow.build.closure/convert-sources*/fn--12102/fn--12103/fn--12104 (closure.clj:1431)
// shadow.build.closure/convert-sources*/fn--12102/fn--12103 (closure.clj:1418)
// shadow.build.closure/convert-sources*/fn--12102 (closure.clj:1412)
// shadow.build.closure/convert-sources* (closure.clj:1411)
// shadow.build.closure/convert-sources* (closure.clj:1294)
// shadow.build.closure/convert-sources (closure.clj:1628)
// shadow.build.closure/convert-sources (closure.clj:1556)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1016)
// shadow.build.compiler/maybe-closure-convert (compiler.clj:1009)
// shadow.build.compiler/compile-all (compiler.clj:1264)
// shadow.build.compiler/compile-all (compiler.clj:1128)
// shadow.build.api/compile-sources (api.clj:256)
// shadow.build.api/compile-sources (api.clj:248)
// shadow.build/compile (build.clj:377)
// shadow.build/compile (build.clj:368)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:304)
// shadow.cljs.devtools.server.worker.impl/build-compile (impl.clj:290)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:887)
// shadow.cljs.devtools.server.worker.impl/do-resource-update (impl.clj:850)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683/fn--14691 (util.clj:304)
// shadow.cljs.devtools.server.util/server-thread/fn--14682/fn--14683 (util.clj:303)
// shadow.cljs.devtools.server.util/server-thread/fn--14682 (util.clj:276)
// java.lang.Thread.run (Thread.java:748)
export const identity = (v) => { return v }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment