Object.getPrototypeOf would not help me at all since it would not allow me
to assign a *new* __proto__ to a function I just created, but I *am*
mistaken, Function.create() would be sufficient in my cases.

There's still more flexibility in __proto__ to reassign __proto__, which
Function.create and Object.getPrototypeOf would not provide.


On Tue, Sep 24, 2013 at 10:14 AM, Andrew Kelley <superjo...@gmail.com>wrote:

> Adam -
>
> Please read my question again:* What happens if you replace foo.__proto__
> with Object.getPrototypeOf(foo)? *
>
>
> On Tuesday, September 24, 2013 1:11:19 PM UTC-4, Adam Crabtree wrote:
>
>> The situations I'm talking about were both cases where I needed to set
>> the __proto__ of a function to inherit from another object or function. One
>> is an instance where Function.create is insufficient because I did not
>> create the originating function.
>>
>>
>> On Sat, Sep 21, 2013 at 12:31 PM, Andrew Kelley <super...@gmail.com>wrote:
>>
>>> Adam -
>>>
>>> I am interested in the code where using __proto__ was the only solution.
>>> This would be a counter-example to my initial claim #2. What happens if you
>>> replace foo.__proto__ with Object.getPrototypeOf(foo)?
>>>
>>>
>>>
>>>
>>> On Fri, Sep 20, 2013 at 4:03 PM, Adam Crabtree <atcra...@gmail.com>wrote:
>>>
>>>> Removing __proto__ is both naive and misinformed for several reasons.
>>>>
>>>> Further, there is nothing in Domenic's dict project that suggests the
>>>> presence of __proto__ is itself a problem. At best, it implies its use will
>>>> somehow "ruin your day" with a link to a google docs bug[1] that merely
>>>> illustrates the need for Object.create(null), which has *nothing* to do
>>>> with Google Docs *using* __proto__. It also doesn't address any of the
>>>> functionality __proto__ provides, which is of course expected b/c that's
>>>> not the point of the dict module.
>>>>
>>>> To be fair to Domenic, we're almost certainly recontextualizing his
>>>> points, so they especially don't apply here at all.
>>>>
>>>> At any rate, here's a list of reasons removing __proto__ is a bad idea:
>>>>
>>>> 1. Node.js === V8, and since V8 has __proto__ there's plenty of code
>>>> (both libraries and application code) that use __proto__. Do you have a
>>>> good reason why having it will cause more damage than breaking all existing
>>>> code that does?
>>>>
>>>> 2. I really hope it's not removed from strict mode until the language
>>>> provides equivalent functionality. Think Object.create is sufficient? What
>>>> about Function.create, Error.create or even Array.create? I've had handful
>>>> of cases both in library code and application code where the best solution
>>>> was to use __proto__ and several times where it was the only solution[2,3].
>>>>
>>>> 3. Even if Function.create and Error.create existed, what about
>>>> reassigning after creation in cases where your application code did not
>>>> create it?
>>>>
>>>> Let's not fork to create a handcuffed version of the language.
>>>>
>>>> Cheers,
>>>> Adam Crabtree
>>>>
>>>>
>>>>
>>>> [1] http://productforums.**google.com/forum/#!msg/docs/**
>>>> 0hQWeOvCcHU/13arVnFhU4YJ<http://productforums.google.com/forum/#!msg/docs/0hQWeOvCcHU/13arVnFhU4YJ>
>>>> [2] 
>>>> https://github.com/**CrabDude/trycatch/issues/23<https://github.com/CrabDude/trycatch/issues/23>
>>>> [3] 
>>>> https://github.com/**CrabDude/proxis/blob/master/**proxis.js#L121<https://github.com/CrabDude/proxis/blob/master/proxis.js#L121>
>>>>
>>>>
>>>> On Fri, Sep 20, 2013 at 11:35 AM, Jorge Chamorro <
>>>> jo...@jorgechamorro.com> wrote:
>>>>
>>>>> On 20/09/2013, at 15:40, mks wrote:
>>>>>
>>>>> > {} is not an hash table. Object.create(null) is more likely
>>>>>
>>>>> That, *and* kill the __proto__, if not:
>>>>>
>>>>> hash= Object.create(null);
>>>>> key= '__proto__';
>>>>>
>>>>> hash[key]= 27;
>>>>> hash[key]
>>>>> null    //What?
>>>>>
>>>>> Or worse:
>>>>>
>>>>> hash[key]= this;
>>>>> 'require' in hash
>>>>> true    //What?
>>>>> 'console' in hash
>>>>> true    //What?
>>>>> 'Array' in hash
>>>>> true    //What?
>>>>>
>>>>> etc.
>>>>> --
>>>>> ( Jorge )();
>>>>>
>>>>> --
>>>>> --
>>>>> Job Board: http://jobs.nodejs.org/
>>>>> Posting guidelines: https://github.com/joyent/**
>>>>> node/wiki/Mailing-List-**Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nodejs" group.
>>>>> To post to this group, send email to nod...@googlegroups.com
>>>>>
>>>>> To unsubscribe from this group, send email to
>>>>> nodejs+un...@**googlegroups.com
>>>>>
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nodejs" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to nodejs+un...@**googlegroups.com.
>>>>>
>>>>> For more options, visit 
>>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>>> .
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Better a little with righteousness
>>>>        than much gain with injustice.
>>>> Proverbs 16:8
>>>>
>>>> --
>>>> --
>>>> Job Board: http://jobs.nodejs.org/
>>>> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-
>>>> **Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To post to this group, send email to nod...@googlegroups.com
>>>>
>>>> To unsubscribe from this group, send email to
>>>> nodejs+un...@**googlegroups.com
>>>>
>>>> For more options, visit this group at
>>>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>>>
>>>> ---
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "nodejs" group.
>>>> To unsubscribe from this topic, visit https://groups.google.com/d/**
>>>> topic/nodejs/HvwsNAuAN2Q/**unsubscribe<https://groups.google.com/d/topic/nodejs/HvwsNAuAN2Q/unsubscribe>
>>>> .
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> nodejs+un...@**googlegroups.com.
>>>>
>>>> For more options, visit 
>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>> .
>>>>
>>>
>>>  --
>>> --
>>> Job Board: http://jobs.nodejs.org/
>>> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-*
>>> *Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To post to this group, send email to nod...@googlegroups.com
>>>
>>> To unsubscribe from this group, send email to
>>> nodejs+un...@**googlegroups.com
>>>
>>> For more options, visit this group at
>>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to nodejs+un...@**googlegroups.com.
>>>
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>> .
>>>
>>
>>
>>
>> --
>> Better a little with righteousness
>>        than much gain with injustice.
>> Proverbs 16:8
>>
>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nodejs@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to nodejs+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Better a little with righteousness
       than much gain with injustice.
Proverbs 16:8

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

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

Reply via email to