Would be nice to use something similar that mozilla now does: replace(string, 
mix, ?flags), but so that flags are also applied for strings. It wont break 
nothing as when (string, string) is used, then usual behaviour is applied, but 
with flags the behaviour is extendible, it would be possible then:
// replace global
'foo x foo'.replace('foo', 'baz', 'g') //> 'baz x baz'

// global and case insensitive
'Foo x foo'.replace('foo', 'baz', 'gi') //> 'baz x baz'

// and now the subject, e.g. `r`(raw) flag
'foo bar`'.replace('foo', '$`', 'rg') //> '$` bar`'

​

From: f.bagna...@gmail.com
Date: Tue, 29 Jul 2014 14:00:22 -0700
Subject: Re: String.prototype.replace() problems with JSON.stringify() and      
serialization of Objects
To: waldron.r...@gmail.com
CC: es-discuss@mozilla.org

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.r...@gmail.com> wrote:





On Mon, Jul 28, 2014 at 10:29 PM, Christoph Martens <cmarten...@gmail.com> 
wrote:





  
    
  
  
    On 28.07.2014 17:24, Rick Waldron
      wrote:

    
    
      

        

          

          On Mon, Jul 28, 2014 at 11:16 AM,
            Boris Zbarsky <bzbar...@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 list
es-discuss@mozilla.org
https://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@mozilla.org

https://mail.mozilla.org/listinfo/es-discuss





_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss                                    
  
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to