Merge V8 5.3.332.45.  DO NOT MERGE

Test: Manual

FPIIM-449

Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/src/uri.h b/src/uri.h
index e41e8a2..dfa057f 100644
--- a/src/uri.h
+++ b/src/uri.h
@@ -13,23 +13,39 @@
 
 class Uri : public AllStatic {
  public:
-  static Object* EncodeUri(Isolate* isolate, Handle<String> uri) {
+  // ES6 section 18.2.6.2 decodeURI (encodedURI)
+  static MaybeHandle<String> DecodeUri(Isolate* isolate, Handle<String> uri) {
+    return Decode(isolate, uri, true);
+  }
+
+  // ES6 section 18.2.6.3 decodeURIComponent (encodedURIComponent)
+  static MaybeHandle<String> DecodeUriComponent(Isolate* isolate,
+                                                Handle<String> component) {
+    return Decode(isolate, component, false);
+  }
+
+  // ES6 section 18.2.6.4 encodeURI (uri)
+  static MaybeHandle<String> EncodeUri(Isolate* isolate, Handle<String> uri) {
     return Encode(isolate, uri, true);
   }
 
-  static Object* EncodeUriComponent(Isolate* isolate,
-                                    Handle<String> component) {
+  // ES6 section 18.2.6.5 encodeURIComponenet (uriComponent)
+  static MaybeHandle<String> EncodeUriComponent(Isolate* isolate,
+                                                Handle<String> component) {
     return Encode(isolate, component, false);
   }
 
-  // DecodeUri
-  // DecodeUriComponent
-  // escape
-  // unescape
+  // ES6 section B.2.1.1 escape (string)
+  static MaybeHandle<String> Escape(Isolate* isolate, Handle<String> string);
+
+  // ES6 section B.2.1.2 unescape (string)
+  static MaybeHandle<String> Unescape(Isolate* isolate, Handle<String> string);
 
  private:
-  static Object* Encode(Isolate* isolate, Handle<String> uri, bool is_uri);
-  // decode
+  static MaybeHandle<String> Decode(Isolate* isolate, Handle<String> uri,
+                                    bool is_uri);
+  static MaybeHandle<String> Encode(Isolate* isolate, Handle<String> uri,
+                                    bool is_uri);
 };
 
 }  // namespace internal