String.prototype.replace() problems with JSON.stringify() and serialization of Objects

Frankie Bagnardi f.bagnardi at gmail.com
Tue Jul 29 14:00:22 PDT 2014


Of course it's a hack :-)

So, moving forward, it'd have to be an extra method on strings, that only
provides a small change in behavior.  It's probably not going to happen
because it's such a small change.

Potentially a S.p.replaceAll which has the same behavior as split-join in
that: "a b a c a d".replaceAll("a", "X") => "X b X c X d".

But then you end up with similar concerns to those expressed in the current
.contains thread (it's inconsistent).




On Tue, Jul 29, 2014 at 1:32 PM, Rick Waldron <waldron.rick at gmail.com>
wrote:

>
>
>
> On Mon, Jul 28, 2014 at 10:29 PM, Christoph Martens <cmartensms at gmail.com>
> wrote:
>
>>  On 28.07.2014 17:24, Rick Waldron wrote:
>>
>>
>>
>>
>> On Mon, Jul 28, 2014 at 11:16 AM, Boris Zbarsky <bzbarsky at mit.edu> wrote:
>>
>>> On 7/28/14, 11:09 AM, Rick Waldron wrote:
>>>
>>>>    var y = x.replace('{{blob}}', function() {
>>>>      return data;
>>>>    });
>>>>
>>>
>>>  In fairness, that's the sort of thing that gives off a "WAT smell".
>>> Code like this without a comment that explains the indirection is just
>>> asking someone to "simplify" it, breaking it in the process...
>>
>>
>>  I don't disagree with your feedback, but JS has had special semantics
>> for "$" (with ’ or n) character in the replaceValue since ES3 (just short
>> of 15 years). I didn't say that the solution was obvious, just that it
>> required familiarity ;)
>>
>>  Rick
>>
>>
>> _______________________________________________
>> es-discuss mailing listes-discuss at mozilla.orghttps://mail.mozilla.org/listinfo/es-discuss
>>
>>
>> Hey Rick,
>>
>> To be honest, I didn't know the trick with the dummy filter function
>> returning the plain data. I expected that it was executed each time a match
>> was found (similar to Array filter functions).
>>
>> I think for external guys writing JavaScript, the WAT effect is pretty
>> huge. Either we should change the behaviour of the parameters (which is bad
>> for legacy implementations)
>>
>
> The progress of JS is limited only to non-web-breaking changes.
>
>
> Rick
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140729/24654246/attachment.html>


More information about the es-discuss mailing list