[quickjs-devel] Re: A possible issue about the scope of variable in QuickJS

  • From: Mario Gliewe <mag@xxxxxxxxx>
  • To: quickjs-devel@xxxxxxxxxxxxx
  • Date: Fri, 6 Sep 2019 16:22:40 +0200

very funny,?0?2 seems to be specific to the eval() function..

i tried the following, which passed ok:

--snip--

let evil=666;
function test1(evil) {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2 console.log('the evil is ',evil);
?0?2?0?2?0?2?0?2?0?2?0?2?0?2 eval('console.log("the evil is ",evil)');
}
function test2() {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2 test1(42);
};
test2();


function test3(Object) {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2 console.log('Object is ', Object);
}
function test4() {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2 console.log('Object is ', Object);
}
function test5() {
?0?2?0?2?0?2?0?2?0?2?0?2?0?2 test3(' void');
};
test4();
test5();

--snap--

greets

maG

On 06.09.19 14:35, ?????? wrote:

Dear Sir or Madam:
?0?2 I have a doubt about QuickJS, the detailed description is as follows:


## version: quickjs-2019-08-18

## Testcase:
var NISLFuzzingFunc = function(eval) {
?0?2 ?0?2 print(eval("print(false);"));
};
var NISLParameter1 = function() {
?0?2 ?0?2 print("run to NISLParameter1");
?0?2 ?0?2 return true;
};
NISLFuzzingFunc(NISLParameter1);

## Command:
./ quickjs-2019-08-18/qjs testcase.js

## Output:
false
undefined

## Expected output:
run to NISLParameter1
true

## Description:
?0?2 ?0?2 In the testcase above, "eval"??Line 2?? should be the formal
parameter "eval", but QuickJS treats it as a global object "eval".
According to the scope of variable, I think this may be a bug in QuickJS.
?0?2 ?0?2 Do you think so? Looking forward to your reply.

your faithfully
houyou yao




Other related posts: