Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 29 08:35
    @sjrd banned @8bitpitRBX_twitter
  • May 23 13:44
    @sjrd banned @BIGCRYPTO001_gitlab
  • May 01 14:31
    @sjrd banned @Certificates1_gitlab
  • Apr 22 15:31
    @sjrd banned @lerbatax
  • Jan 31 23:04
    sjrd commented #3555
  • Jan 31 22:56
    sjrd review_requested #3555
  • Jan 31 22:56
    sjrd opened #3555
  • Jan 31 21:06

    sjrd on 0.6.x

    Remove dead code: specific coll… Adapt the signature of `js.Arra… Merge pull request #3554 from s… (compare)

  • Jan 31 21:06
    sjrd closed #3554
  • Jan 31 20:54
    erikvanoosten commented #2665
  • Jan 31 16:33
    sjrd commented #3538
  • Jan 31 15:54

    sjrd on master

    Fix analyzer cycle detection to… Add toString methods to analyze… Do not provide linked ClassInfo… and 1 more (compare)

  • Jan 31 15:54
    sjrd closed #3552
  • Jan 31 15:54

    sjrd on master

    Remove Logger.success It is un… Make level helpers final Clean-up ScalaConsoleLogger cod… and 1 more (compare)

  • Jan 31 15:54
    sjrd closed #3553
  • Jan 31 15:33
    sjrd commented #2665
  • Jan 31 15:30
    erikvanoosten commented #2665
  • Jan 31 10:41
    sjrd review_requested #3554
  • Jan 31 10:41
    sjrd opened #3554
  • Jan 31 10:05
    gzm0 synchronize #3552
Mustafa Kuscu
@mcku
Yep
Anthony Cerruti
@srnb_gitlab
Nice
And you're sure you don't want Dictionary
Mustafa Kuscu
@mcku
I don't know. dictionary is good for accessing object properties, but imho literal is good for the construction part.
Anthony Cerruti
@srnb_gitlab
Well you're constructing a literal here the same way you'd construct a dictionary
Eric K Richardson
@ekrich
@sjrd In regards to the PR I am working on I had a couple of questions if you have time.
Sébastien Doeraene
@sjrd
I can spare some time now, but let's move it to https://gitter.im/scala-js/scala-js/contrib
Eric K Richardson
@ekrich
Ok, didn't know about that room.
Marc Grue
@marcgrue
Thanks for the suggestions, @jhegedus42. I can run tests from the sbt shell inside IntelliJ but the debug window shows nothing, argh. Probably some silly simple setting somewhere. Probably easier to solve with 4 eyes sitting by my computer...
jhegedus42
@jhegedus42
@marcgrue u need to attach the debugger to sbt
press that green bug button on the left
image.png
this one ^
that did the trick for me
also, try to set a breakpoint in the code somewhere, where it runs... that helps to bring up those debug windows
if the debugger is attached to the JVM process ( that should happen by pressing the green bug button )
Marc Grue
@marcgrue
I did all that. But the debug window doesn’t show anything :-(
Andrzej Sołtysik
@asoltysik
Is there a way to run tests when exporting the project as ESModule? Im getting Could not run test MainSpec: org.scalajs.testcommon.RPCCore$RPCException: scala.scalajs.js.JavaScriptException: TypeError: Cannot read property 'MainSpec' of undefined. I stumbled upon this thread: https://www.reddit.com/r/scala/comments/c84rae/unit_testing_in_scalajs/ but the solutions proposed there don't change anything for me
version is 0.6.28
Sébastien Doeraene
@sjrd
The settings will have to be in the .settings() (resp. .jsSettings()) of the relevant project (resp. crossProject)
Andrzej Sołtysik
@asoltysik
that's what I did, will try that again though
Øyvind Raddum Berg
@oyvindberg
@marcgrue I managed to run and debug my shared tests in the end in intellij. Somehow it works when running all tests in package, as opposed to running a single test. This was with utest.
Andrzej Sołtysik
@asoltysik
@sjrd it worked when i upgraded scalatest from 3.0.5 to 3.0.8
Adam Fraser
@adamgfraser
Hi. I'm trying to set global.process.exitcode to a non-zero value and then allow my program to exit gracefully. I am expecting to exit with a failure in that case but I am still exiting with a success. I have confirmed that I am using the node.js environment. Am I doing something wrong?
Frank P. Tominc
@franktominc
Hey guys, I'm having a weird behavior here. I'm trying to pass command-line arguments to a scalajs script and for some reason it doesn't work. What am I missing here?
@JSExportAll
@JSExportTopLevel("Main")
object Main {
  def main(args: Array[String]): Unit = {
    println("abc")
    args.foreach(println)
  }
}
node my-script-opt.js 3123 12312 12312312 3123123 12321312 1231231 12312312 123123
abc
aappddeevv
@aappddeevv
I think you need to use the process.argv value to access them.
Sébastien Doeraene
@sjrd
@franktominc The args of def main are always an empty array in Scala.js. The existence of the parameter is only there for reasonable compatibility with Scala/JVM. As @aappddeevv said, use Node.js' process.argv value to read command-line arguments.
Frank P. Tominc
@franktominc
Oh, so I need a MainJS and a MainJVM?
Sébastien Doeraene
@sjrd
Ah, yes, I'm afraid so.
Frank P. Tominc
@franktominc
Well, that is a bummer. What would be the impact of passing process.argv as args in the compiler? Is there a reason for that not being the standard behavior?
Sébastien Doeraene
@sjrd
The reason is that Scala.js is independent of Node.js. Passing process.argv would fail in other JS environments. Scala.js does not take sides.
aappddeevv
@aappddeevv
Don't forget that node has the node bin and then the script name so val args = process.argv.drop(2) to access the first arg. I typically have a separate project with 2-3 lines in it representing "main" and handling some major "context" instance specific to the environment. Same on the JVM side.
Frank P. Tominc
@franktominc
@aappddeevv can you share a minimal project with me, please?
Frank P. Tominc
@franktominc

Well, I got something working here.


@JSExportAll
@JSExportTopLevel("Main")
object Main {

  def test(s: Array[String]): Unit = {
    println("ABC")
    s.foreach(println)
  }
}
var main = require("./test.js");

main.Main.test(process.argv);

It prints the ABC but on the foreach it's giving me a TypeError: Cannot read property 'length' of undefined. I'm using .jsSettings(scalaJSLinkerConfig ~= { _.withModuleKind(ModuleKind.CommonJSModule) }) and calling it using:

node myScript.js 123 123 123

Any ideas?

Sébastien Doeraene
@sjrd
A JS array is not a valid Array[String], so you're running into undefined behavior. But it should have thrown an UndefinedBehaviorError. Unless you're testing in fullOpt mode?
aappddeevv
@aappddeevv
Sébastien Doeraene
@sjrd
You need to export a method that takes a js.Array[String], if you want to go the exports route.
aappddeevv
@aappddeevv
If you are just trying to access the args, use a nodejs facade, or define your own.
Frank P. Tominc
@franktominc
Oh, I'm using the fullOpt mode
Sébastien Doeraene
@sjrd
You should only use the fullOpt mode when you're happy with your testing and you want to deploy/run for real.
fullOpt is not suited for iterative development: it does not check undefined behavior, and takes way longer to compile.
Frank P. Tominc
@franktominc
I made a little parser for arithmetic expressions and I want to run some tests to convince my boss that the java result and the scalaJs result are the same(I'm using BigDecimals)
I am trying to write something minimal, so I can generate a lot of test cases, call the jar file, call the JS file and compare both outputs
aappddeevv
@aappddeevv
You may just want to setup tests, say, with scalatest and demonstrate the sameness by running the tests.
Frank P. Tominc
@franktominc
Yeah, but how can I run scalatests against the JS file?
Sébastien Doeraene
@sjrd
With theProjectJS/test. Exact same thing than theProjectJVM/test for running the tests on the JVM.
Marc Grue
@marcgrue
image.png