Hi Michael,
Thanks for the quick reply. About the scope of "s" - I didn't realized it
will be bound to the global object. Does the following script make a sense?
(function() {
var s = "hello "
(function(name) {
console.log(s + name)
})("John")
})()
My main point is to understand how does V8 bind "s" to the scope of the
inner function? As I said earlier, I guess V8 will introduce some new
property that will hold a reference to the "hello " string. Is that correct?
Regards,
Mihail
On Wednesday, June 11, 2014 11:37:38 AM UTC+3, Michael Starzinger wrote:
>
> Using the code snippet verbatim on the top-level (i.e. not nested within a
> closure) will make "s" be bound to a property on the global object. Since
> the global object is shared between all scripts running in the same
> context, there is no way for V8 to determine a limited lifetime for this
> variable and the string will be kept alive forever.
>
> Best regards,
> Michael
>
>
> On Wed, Jun 11, 2014 at 10:24 AM, Mihail Slavchev <[email protected]
> <javascript:>> wrote:
>
>> Hi all,
>>
>> I am reading V8 source code in order to get better understanding how V8
>> maintains object lifetime during GC. Here is a short example that I am
>> trying to understand.
>>
>> var s = "hello "
>>
>> (function(name) {
>> console.log(s + name)
>> })("John")
>>
>> Obviously, the GC won't collect the string "hello " before executing the
>> function because it is referred from within the function via the "s"
>> variable. I guess V8 creates a temporary object on the fly that actually
>> has a property, say "__s", that holds a reference to the "hello " string.
>>
>> Is that right? I will appreciate if someone points me to the right place
>> in V8 source code where I can learn the details.
>>
>> Thanks in advance,
>> Mihail
>>
>> --
>> --
>> v8-users mailing list
>> [email protected] <javascript:>
>> 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 [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
--
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.