| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions are | 5  * modification, are permitted provided that the following conditions are | 
| 6  * met: | 6  * met: | 
| 7  * | 7  * | 
| 8  *     * Redistributions of source code must retain the above copyright | 8  *     * Redistributions of source code must retain the above copyright | 
| 9  * notice, this list of conditions and the following disclaimer. | 9  * notice, this list of conditions and the following disclaimer. | 
| 10  *     * Redistributions in binary form must reproduce the above | 10  *     * Redistributions in binary form must reproduce the above | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 32 | 32 | 
| 33 #include "modules/encoding/TextEncoder.h" | 33 #include "modules/encoding/TextEncoder.h" | 
| 34 | 34 | 
| 35 #include "bindings/v8/Dictionary.h" | 35 #include "bindings/v8/Dictionary.h" | 
| 36 #include "bindings/v8/ExceptionState.h" | 36 #include "bindings/v8/ExceptionState.h" | 
| 37 #include "wtf/text/CString.h" | 37 #include "wtf/text/CString.h" | 
| 38 #include "wtf/text/TextEncodingRegistry.h" | 38 #include "wtf/text/TextEncodingRegistry.h" | 
| 39 | 39 | 
| 40 namespace WebCore { | 40 namespace WebCore { | 
| 41 | 41 | 
| 42 DEFINE_GC_INFO(TextEncoder); | 42 PassRefPtr<TextEncoder> TextEncoder::create(const String& utfLabel, ExceptionSta
     te& exceptionState) | 
| 43 |  | 
| 44 PassRefPtrWillBeRawPtr<TextEncoder> TextEncoder::create(const String& utfLabel, 
     ExceptionState& exceptionState) |  | 
| 45 { | 43 { | 
| 46     const String& encodingLabel = utfLabel.isNull() ? String("utf-8") : utfLabel
     ; | 44     const String& encodingLabel = utfLabel.isNull() ? String("utf-8") : utfLabel
     ; | 
| 47 | 45 | 
| 48     WTF::TextEncoding encoding(encodingLabel); | 46     WTF::TextEncoding encoding(encodingLabel); | 
| 49     if (!encoding.isValid()) { | 47     if (!encoding.isValid()) { | 
| 50         exceptionState.throwTypeError("The encoding label provided ('" + encodin
     gLabel + "') is invalid."); | 48         exceptionState.throwTypeError("The encoding label provided ('" + encodin
     gLabel + "') is invalid."); | 
| 51         return 0; | 49         return 0; | 
| 52     } | 50     } | 
| 53 | 51 | 
| 54     String name(encoding.name()); | 52     String name(encoding.name()); | 
| 55     if (name != "UTF-8" && name != "UTF-16LE" && name != "UTF-16BE") { | 53     if (name != "UTF-8" && name != "UTF-16LE" && name != "UTF-16BE") { | 
| 56         exceptionState.throwTypeError("The encoding provided ('" + encodingLabel
      + "') is not one of 'utf-8', 'utf-16', or 'utf-16be'."); | 54         exceptionState.throwTypeError("The encoding provided ('" + encodingLabel
      + "') is not one of 'utf-8', 'utf-16', or 'utf-16be'."); | 
| 57         return 0; | 55         return 0; | 
| 58     } | 56     } | 
| 59 | 57 | 
| 60     return adoptRefWillBeNoop(new TextEncoder(encoding.name())); | 58     return adoptRef(new TextEncoder(encoding.name())); | 
| 61 } | 59 } | 
| 62 | 60 | 
| 63 TextEncoder::TextEncoder(const String& encoding) | 61 TextEncoder::TextEncoder(const String& encoding) | 
| 64     : m_encoding(encoding) | 62     : m_encoding(encoding) | 
| 65     , m_codec(newTextCodec(m_encoding)) | 63     , m_codec(newTextCodec(m_encoding)) | 
| 66 { | 64 { | 
| 67 } | 65 } | 
| 68 | 66 | 
| 69 TextEncoder::~TextEncoder() | 67 TextEncoder::~TextEncoder() | 
| 70 { | 68 { | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 91     else | 89     else | 
| 92         result = m_codec->encode(input.characters16(), input.length(), WTF::Ques
     tionMarksForUnencodables); | 90         result = m_codec->encode(input.characters16(), input.length(), WTF::Ques
     tionMarksForUnencodables); | 
| 93 | 91 | 
| 94     const char* buffer = result.data(); | 92     const char* buffer = result.data(); | 
| 95     const unsigned char* unsignedBuffer = reinterpret_cast<const unsigned char*>
     (buffer); | 93     const unsigned char* unsignedBuffer = reinterpret_cast<const unsigned char*>
     (buffer); | 
| 96 | 94 | 
| 97     return Uint8Array::create(unsignedBuffer, result.length()); | 95     return Uint8Array::create(unsignedBuffer, result.length()); | 
| 98 } | 96 } | 
| 99 | 97 | 
| 100 } // namespace WebCore | 98 } // namespace WebCore | 
| OLD | NEW | 
|---|