If all you want is binary operations and comparisons on numbers and strings, then it could be a fun (and educational!) weekend project to write an infix expression evaluator and drop the V8 dependency entirely. That might be easier than trying to bend a JS engine into evaluating only such a tiny subset of JS.
- Leszek On Fri, 31 Jan 2020, 08:34 'Simon Zünd' via v8-dev, <[email protected]> wrote: > As stated earlier, V8 itself was never meant to be used this way, so there > is currently no way to specify a subset of JavaScript that V8 would allow. > > As an alternative, you could run your scripts through an existing > JavaScript parser (acorn, esprima, etc), walk the resulting AST and throw > on all the language constructs you want to forbid. Before passing the > actual source along to V8. > > On Fri, Jan 31, 2020 at 8:17 AM <[email protected]> wrote: > >> Hi Thanks for the help. Currently i am using prebuilt v8 binaries from >> nuget package https://github.com/pmed/v8-nuget in windows. >> Is there any other way rather building the V8 and generating binaries. >> >> I already have prebuilt v8 binaries and bin(snapshotblob and nativeblob) >> files from nuget package. >> can we do some thing in code to exclude those built-in functionality in >> V8 engine? >> >> for eg: >> in js script, if i type >> 1) Date(); //V8 engine should show error rather than showing date. >> >> 2) var newarray = new Array(); var arr = [1,2,3,4,5]; >> // v8 engine should not allow creating dynamic elements. >> >> 3) var newObject = { "name"="xyz", "age"=5 }; >> var newObject = Object.create( Object.prototype ); >> // v8 engine should not allow object oriented programming . >> >> 4) function add(a,b) >> { >> return a+b; >> } >> var res = add(2,3); >> // v8 engine should not allow users to create functions. >> >> My requirement is simple comparison and returning Boolean value >> >> 5 > 3 && 4==10 || "abc" =="xyz; >> >> i am gonna register the callbackfunctions in c++ and get the value after >> running the script, evaluate and print the boolean result. >> >> >> Could you please help me how can i achieve this. >> >> On Friday, January 31, 2020 at 10:50:48 AM UTC+5:30, [email protected] >> wrote: >>> >>> I am trying to embed engine in c++ application. i don't want the >>> java-script built-in Methods and functions. >>> I need it only for arithmetic and relational operators. >>> >>> after exploring much in internet ,i got to know built-ins functions are >>> de-serilized and put in from these native_blob.bin and snapshot_blob.bin . >>> I commented v8::V8::InitializeExternalStartupData(argv[0]); , but >>> throwing some run-time error. >>> >>> Could anyone please help me on this. >>> >>> Requirement : Embedding v8 engine without built-in functionality as i >>> need it only for arithmetic, relational operators. >>> I don't want these builts-in function gets de-serialized and put in heap >>> ( >>> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects >>> ) >>> >>> >>> References: >>> 1) https://v8.dev/blog/embedded-builtins. >>> 2) https://v8.dev/blog/custom-startup-snapshots >>> 3) https://v8.dev/docs/builtin-functions >>> 4) https://v8.dev/blog/lazy-deserialization >>> >>> Thanks & Regards >>> Praveen N >>> >>> >> -- >> -- >> v8-dev mailing list >> [email protected] >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/v8-dev/c7c63362-57b7-4840-b6e4-d193b96595d8%40googlegroups.com >> <https://groups.google.com/d/msgid/v8-dev/c7c63362-57b7-4840-b6e4-d193b96595d8%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/v8-dev/CACswSC2V6_%3DCNjn_ouM9LS-ZvH9Huqu3hFVFrBSW-JLQRi03JQ%40mail.gmail.com > <https://groups.google.com/d/msgid/v8-dev/CACswSC2V6_%3DCNjn_ouM9LS-ZvH9Huqu3hFVFrBSW-JLQRi03JQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAGRskv_nUU-s9EUfHUb1MsvYkfHjWS38y5phiggk9cEw6onowg%40mail.gmail.com.
