I agree that silent nops are bad, and that's not what we have: The
implementation is

      try {
        OptimizationStatusImpl = new Function(
            "fun", "sync", "return %GetOptimizationStatus(fun, sync);");
      } catch (e) {
        throw new Error("natives syntax not allowed");
      }

leading to:

$ out/x64.release/d8 test/mjsunit/mjsunit.js -e "function f(){};
assertUnoptimized(f);"
test/mjsunit/mjsunit.js:436: Error: natives syntax not allowed


        throw new Error("natives syntax not allowed");


        ^


Error: natives syntax not allowed


    at OptimizationStatus (test/mjsunit/mjsunit.js:436:15)


    at assertUnoptimized (test/mjsunit/mjsunit.js:444:16)

The point is that mjsunit.js should still load without
--allow-natives-syntax, so that not every test must specify that flag, only
those tests that need to call %Natives.

As I said, I don't know whether we need or should have any microtasks
related helper(s) in mjsunit.js, I just wanted to point out that it's
technically possible to use %Natives there.

On Tue, May 17, 2016 at 6:29 PM, Michael Starzinger <
mstarzin...@chromium.org> wrote:

> On Tue, May 17, 2016 at 6:25 PM, Jakob Kummerow <jkumme...@chromium.org>
> wrote:
>
>> On Tue, May 17, 2016 at 1:01 AM, Caitlin Potter <caitpotte...@gmail.com>
>> wrote:
>>
>>> As part of the async functions runtime implementation, I had implemented
>>> a function in d8.cc which would call isolate->RunMicrotasks() --- but was
>>> talked down from doing this because of a worry that it might interfere with
>>> certain uses of d8 out in the wild.
>>>
>>> So, I went with using the existing %RunMicrotasks runtime function ---
>>> but of course this requires a flag to be present, so the mjsunit helpers
>>> which rely on this can't be present in mjsunit.js (which means either a lot
>>> of code duplication, or worse).
>>>
>>
>> Yes they can; grep for "%GetOptimizationStatus" in mjsunit.js.
>>
>
> I would vote for not adding yet another function like assertOptimized to
> mjsunit.js that tries to catch the "SyntaxError: Unexpected token %" an
> turns into a nop when the --allow-natives-syntax flag is not passed. This
> just hides the fact that the request (i.e. draining the microtask queue)
> can just not be fulfilled without said flag.
>
>
>>
>> (I can't comment on functionality concerns around %RunMicrotasks -- if
>> the approach is invalid in general, then the above point is obviously moot.)
>>
>>
>>> What I'd like to do is get a feel for just how dangerous something like
>>> `runMicrotasks()` in d8.cc, or if we could get away with adding it as a
>>> method of a `TestUtils` or `Utils` object instead. Something that would
>>> allow tests which rely on being able to drain the microtask queue (in order
>>> to execute quickly, predictably, and synchronously, while still verifying
>>> the correct async behaviours), without requiring a --allow-natives-syntax
>>> just to parse the script.
>>>
>>> I don't think there's a huge risk in adding these to d8.cc, and they
>>> aren't exposed in v8 itself (or Chromium) --- if you're a user of d8 and
>>> you think a global variable named "Utils", "TestUtils", "runMicrotasks", or
>>> whatever, would interfere with your uses of d8, I'd like to hear why and
>>> how.
>>>
>>> Hopefully, there's consensus that it's not dangerous to add such a
>>> method or object to d8's global object.
>>>
>>> --
>>> --
>>> v8-users mailing list
>>> v8-users@googlegroups.com
>>> http://groups.google.com/group/v8-users
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "v8-users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to v8-users+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> --
>> v8-users mailing list
>> v8-users@googlegroups.com
>> http://groups.google.com/group/v8-users
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "v8-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to v8-users+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to