| Selector | S8 | VSE | comment |
| = | Yes | No | VSE primitive, pending review |
| size | Yes | No | equivalent; pending review |
| at:ifAbsent: | Yes | No | |
| argumentCount | Yes | No | |
| isLiteral | Yes | No | |
| asLiteral | Yes | No | |
| escaped | Yes | No | |
| unescaped | Yes | No | |
| escapedCode | Yes | No | |
| asEncodedURI | Yes | No | |
| asDecodedURI | Yes | No | |
| add: | Yes | No | S8's implementation of String is read only, this method returns an error, pending review to generate a solution in regards to this method |
| --> | Yes | No | |
| indexOf:startingAt: | Yes | No | pending review ( VSE's String#indexOfString:startingAt: could be a equivalent) |
| lastIndexOf: | Yes | No | pending review ( VSE's String#indexOfLastString: could be a equivalent) |
| lastIndexOf: | Yes | No | pending review ( VSE's String#indexOfLastString: could be a equivalent) |
| lastIndexOf:ifAbsent: | Yes | No | pending review |
| lastIndexOf:startingAt: | Yes | No | pending review |
| upTo:startingAt: | Yes | No | pending review (See VSE's ReadStream possible implementation) |
| upToLast: | Yes | No | |
| fromLast: | Yes | No | |
| reservedWords | Yes | No | |
| asJavascriptName | Yes | No | |
| asSelector | Yes | No | |
| asJavascript | Yes | No | |
| replaceRegexp:with: | Yes | No | uses ECMAScript's primitive |
| tokenize: | Yes | No | uses ECMAScript's primitive |
| match: | Yes | No | pending review. (has wrong documentation?) |
| between:and: | Yes | No | pending review. |
| isLetter | Yes | No | pending review. |
| isDigit | Yes | No | pending review. |
| isAlphaNumeric | Yes | No | pending review. |
| isUpperCase | Yes | No | pending review. |
| isLowerCase | Yes | No | pending review. |
| isUppercase | Yes | No | pending review. |
| isLowercase | Yes | No | pending review. |
| isBackSlash | Yes | No | pending review |
| asSmalltalkName: | Yes | No | pending review |
| asGlobalName | Yes | No | pending review |
| asLocalName | Yes | No | pending review |
| digitValue | Yes | No | pending review |
| errorReadOnly | Yes | No | pending review |
| printString | Yes | No | pending review |
| asJSONObject | Yes | No | |
| isCharacter | Yes | No | |
| asciiValue | Yes | No | |
| isSeparator | Yes | No | |
| asAsciiZ | Yes | No | |
| trimFirst:last: | Yes | No | |
| trim: | Yes | No | |
| trimFirst: | Yes | No | |
| trimLast: | Yes | No | |
| = | No | Yes | pending review (See Compiler optimization dictionary) |
| = | No | Yes | pending review (See Compiler optimization dictionary) |
| matchesHead: | No | Yes | pending review. |
| matchesHeadIgnoreCase: | No | Yes | pending review. |
| matchesTail: | No | Yes | pending review. |
| matchesTailIgnoreCase: | No | Yes | pending review. |
| remove:ifAbsent: | No | Yes | pending review (See Compiler optimization dictionary) |
| at: | Yes | Yes | VSE's implementation includes primitive |
| at:put: | Yes | Yes | S8's implementation of String is read only, this method returns an error, pending review to generate a solution in regards to this method |
| do: | Yes | Yes | pending review (Check if it is a correct implementation) |
| detect:ifNone: | Yes | Yes | pending review (Check if it is a correct implementation) |
| includes: | Yes | Yes | pending review (Check if it is a correct implementation) |
| withIndexDo: | Yes | Yes | pending review (Check if it is a correct implementation) |
| copyWithout: | Yes | Yes | pending review (Check if it is a correct implementation) |
| asSymbol | Yes | Yes | equivalent |
| occurrencesOf: | Yes | Yes | pending review of VSE's of Collections |
| , | Yes | Yes | pending review (Has diferences regarding the handling in VSE's of DoubleByteString ver cual es la necesidad) |
| copyWith: | Yes | Yes | pending review (uses self species in VSE's implementation, while in S8's uses a native ) |
| copyFrom:to: | Yes | Yes | pending review |
| shallowCopy | Yes | Yes | pending review |
| deepCopy | Yes | Yes | pending review |
| reversed | Yes | Yes | pending review |
| indexOf: | Yes | Yes | pending review ( S8 uses ECMAScript primitive) |
| indexOf:ifAbsent: | Yes | Yes | pending review ( S8 uses ECMAScript primitive) |
| upTo: | Yes | Yes | pending review |
| replace:with: | Yes | Yes | pendig review. The semantics seems to differ specially around the fact that S8's implementation uses RegularExpression to perform this replacement. See also #replaceAll:with: (used in hReader sample application. Specific reference CScanner>>unStupidize:) |
| asArrayOfSubstrings | Yes | Yes | pending review |
| asArrayOfSubstringsSeparatedBy: | Yes | Yes | pending review |
| asUppercase | Yes | Yes | pending review. uses ECMAScript's primitive |
| asUpperCase | Yes | Yes | pending review. uses ECMAScript's primitive |
| asLowercase | Yes | Yes | pending review. uses ECMAScript's primitive |
| asLowerCase | Yes | Yes | pending review. uses ECMAScript's primitive |
| asNumber | Yes | Yes | pending review. S8 uses primitive |
| isString | Yes | Yes | equivalent |
| > | Yes | Yes | pending review (See Compiler optimization dictionary) |
| | Yes | Yes | pending review (See Compiler optimization dictionary) |
| >= | Yes | Yes | pending review (See Compiler optimization dictionary) |
| = | Yes | Yes | pending review (See Compiler optimization dictionary) |
| trimBlanks | Yes | Yes | Pending review. S8's isSeparator semantics is different with VSE's |