On Tuesday, October 24, 2017 at 7:38:44 AM UTC-7, Ben Noordhuis wrote: > > On Tue, Oct 24, 2017 at 3:32 PM, J Decker <d3c...@gmail.com <javascript:>> > wrote: > > > > On Tuesday, October 24, 2017 at 3:40:31 AM UTC-7, Ben Noordhuis wrote: > >> > >> On Tue, Oct 24, 2017 at 5:53 AM, J Decker <d3c...@gmail.com> wrote: > >> > > >> > On Thursday, August 7, 2014 at 3:52:53 PM UTC-7, Ben Noordhuis wrote: > >> >> > >> >> On Fri, Aug 8, 2014 at 12:10 AM, Flying Jester <foolki...@gmail.com> > > >> >> wrote: > >> >> > What precisely is the difference between using SetAccessor and > >> >> > SetNativeDataProperty? > >> >> > >> >> Nothing, as far as I know. The order of arguments is different but > >> >> they have identical implementations. > >> > > >> > They are not exactly the same... I've been using > SetNativeDataProperty, > >> > which works for getters, but when i started to use it for a setter, > V8 > >> > ended > >> > up setting a property on the object instead of calling the setter. > >> > Changing > >> > to SetAccessor allows the setter to be called correctly. > >> > > >> > And while I realize this is a very old thread; it's about the only > one > >> > that > >> > shows up for 'SetNativeDataProperty vs SetAccessor' > >> > > >> > I can't find any other information that would indicate that > >> > setnativedataproperty shouldn't or doesn't work; other than my code. > >> > >> Blast from the past! > >> > >> I believe what I wrote still holds (or holds again) if you start V8 > >> with `--disable_old_api_accessors`. It's currently off by default but > >> that will likely change someday. > > > > > > That option makes SetAccessor setter not work. It creates a property on > the > > object instead of calling the setter. > > > > psiTemplate2->PrototypeTemplate()->SetAccessor( String::NewFromUtf8( > > isolate, "text" ) > > , ControlObject::getControlText, ControlObject::setControlText ); > > > > So that's discouraging.... > > With `--disable_old_api_accessors` they are quite literally the same > implementation. Something else must be going on. Out-of-date V8 > version? >
M:\javascript\vfs\native>node > process.version 'v8.4.0' > process.versions { http_parser: '2.7.0', node: '8.4.0', v8: '6.0.286.52', uv: '1.13.1', zlib: '1.2.11', ares: '1.10.1-DEV', modules: '57', nghttp2: '1.22.0', openssl: '1.0.2l', icu: '59.1', unicode: '9.0', cldr: '31.0.1', tz: '2017b' } I doubt it. It's not absolute bleeding edge, but it's pretty new. I was going to include the whole thing I'm trying to test, but expect that to fail so here's a super simple test https://github.com/d3x0r/test-accessor It sets a SetAccessor called 'text' and a SetNativeDataProperty called 'native' to build npm install . test1 : ( only setter called is SetAccessor settter ) npm test (sample output) > node test.js plugin.cc: getter called... default value Default: default value plugin.cc: setter called... with newText plugin.cc: getter called... newText Default: [] newText plugin.cc: getter called... newText Default: newText Default: [ 'native' ] nativeText test2 : (passes --disable-old-api-accessors which makes neither setter get called ) npm run test2 (sample output) > node --disable-old-api-accessors test.js plugin.cc: getter called... default value Default: default value Default: [ 'text' ] newText plugin.cc: getter called... default value Default: default value Default: [ 'text', 'native' ] nativeText --------- what I would have sent --------- This is a node plugin - https://github.com/d3x0r/sack.vfs the new features I'm extending it with I can only confirm work under Windows. https://github.com/d3x0r/sack.vfs/blob/master/src/gui/sack_psi_module.cc#L415 configures accessor on prototype here Which is tested with this line... https://github.com/d3x0r/sack.vfs/blob/master/tests/sack_test4.js#L28 which should change the text in the resulting gui. -- -- 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.