tylerjwatson / Jint.CommonJS

A CommonJS implementation for Jint, the .NET Javascript engine.
MIT License
26 stars 6 forks source link

MissingMethodException? #2

Open tedneward opened 5 years ago

tedneward commented 5 years ago

Writing a simple VSMac Jint/Jint.CommonJS console app, and I'm running into a MissingMethodException being tossed from this code:

var cjs = engine.CommonJS();
cjs.RegisterInternalModule("console", typeof(Console));

This is with 3.0beta of Jint, if that makes a difference.

The exception looks like:

System.MissingMethodException: "Method not found: 'Jint.Native.JsValue Jint.Native.JsValue.op_Implicit(Jint.Native.Object.ObjectInstance)'."
  at Jint.CommonJS.ModuleLoadingEngine.RegisterInternalModule(String id, Type clrType)\n   at JintExplorer.Program.Main(String[] args) in /Users/tedneward/Projects/JintExplorer/JintExplorer/Program.cs:46

Any insights appreciated, particularly if this is a user bug. (Just started playing with Jint.CJS.)

tylerjwatson commented 5 years ago

Hi mate,

I believe this library was not compiled against Jint 3.0. I will look at supporting it when it comes out of beta. Alternatively you're more than welcome to submit a PR introducing support for Jint 3.0.

Cheers 👍

olliejm commented 4 years ago

I took a look at this and it seems it's just this line https://github.com/tylerjwatson/Jint.CommonJS/blob/master/Jint.CommonJS/Module.cs#L103

With Jint 3.0 it wants the second parameter to be a string 'name', then the Func as the third and last required parameter. Just passing fileName as that parameter allowed the project to build and all tests pass. But not sure if that's the value that should really go there.