Is it better put Priority in EventObserver as it's a property for observer?

Maybe you can take a look at https://github.com/crosswalk-project/crosswalk/pull/963 and https://github.com/crosswalk-project/crosswalk/blob/master/tizen/appcore_context.cc as a possible example. We can make a new Event("TERMINATE") when we got AE_TERMINATE event, before some runtime observer kill the render we always want the extension instance observers have higher priorities to notify the JS callbacks.